CN111045799A - 基于回收再分配的低安全关键任务调度方法 - Google Patents

基于回收再分配的低安全关键任务调度方法 Download PDF

Info

Publication number
CN111045799A
CN111045799A CN201911092361.2A CN201911092361A CN111045799A CN 111045799 A CN111045799 A CN 111045799A CN 201911092361 A CN201911092361 A CN 201911092361A CN 111045799 A CN111045799 A CN 111045799A
Authority
CN
China
Prior art keywords
task
time
idle
execution
slot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911092361.2A
Other languages
English (en)
Other versions
CN111045799B (zh
Inventor
朱怡安
李孟豪
李联
史先琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201911092361.2A priority Critical patent/CN111045799B/zh
Publication of CN111045799A publication Critical patent/CN111045799A/zh
Application granted granted Critical
Publication of CN111045799B publication Critical patent/CN111045799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种基于回收再分配的低安全关键任务调度方法,用于解决现有低安全关键任务调度方法处理器利用率低的技术问题。技术方案是对系统中产生的slack时隙进行保存,记录其空闲时段长度length和死限时间ds,将slack时隙按照死限时间ds递增的顺序保存在时隙队列SQ中;同时对被迫中止执行的低安全关键任务进行回收,并记录其剩余执行时间cs和任务死限时间dw,按照任务优先级递减的顺序保存在任务回收队列REQ_C中。取出任务回收队列REQ_C中优先级最高的任务,根据任务死限时间和空闲时隙slack的死限时间的比较,找到可以对任务进行调度的slack时隙,对任务进行再分配。本发明采用回收再分配方法提高了低安全关键任务的调度成功率,同时,slack空闲时隙的利用,提高了处理器的利用率。

Description

基于回收再分配的低安全关键任务调度方法
技术领域
本发明涉及一种低安全关键任务调度方法,特别涉及一种基于回收再分配的低安全关键任务调度方法。
背景技术
发表于IEEE The 20th Asia and South Pacific Design AutomationConference 2015年版630-635的文章“Enhanced partitioned scheduling of Mixed-Criticality Systems onmulticore platforms”提出了一种双分区混合关键任务(Dual-Partitioned Mixed-Criticality,DPM)调度方法。该调度方法针对低安全关键任务采用核间迁移的方法来保证低安全关键任务的调度成功率。
该方法虽然能够在一定程度上提高低安全关键任务的调度成功率,但是有很大一部分低安全关键任务并满足其提出的核间迁移的条件,因此会有一部分低安全关键任务仍无法顺利执行,且其没有利用任务执行过程中产生的slack时隙,增加了处理器的空转期,降低了处理器的利用率。
发明内容
为了克服现有低安全关键任务调度方法处理器利用率低的不足,本发明提供一种基于回收再分配的低安全关键任务调度方法。该方法在系统开始运行时,对系统中由于任务执行而产生的slack时隙进行保存,每一个要保存的slack时隙都需要记录其空闲时段长度length和死限时间ds,将slack时隙按照死限时间ds递增的顺序保存在时隙队列SQ中;同时对被迫中止执行的低安全关键任务进行回收,每一个被回收的任务需要记录其剩余执行时间cs和任务死限时间dw,按照任务优先级递减的顺序保存在任务回收队列REQ_C中。取出任务回收队列REQ_C中优先级最高的任务,根据任务死限时间和空闲时隙slack的死限时间的比较,找到可以对任务进行调度的slack时隙,对任务进行再分配。本发明采用回收再分配方法可以提高低安全关键任务的调度成功率,同时,slack空闲时隙的利用减少了处理器的空转期,提高了处理器的利用率。
本发明解决其技术问题所采用的技术方案:一种基于回收再分配的低安全关键任务调度方法,其特点是包括以下步骤:
步骤一、在系统开始运行时,使用一个全局的空闲时隙队列SQ对任务执行产生的slack时隙sq进行回收。当一个任务执行完毕后,记录其空闲时隙长度length,由公式(1)计算得到;同时记录空闲时隙的死限时间ds。将空闲时隙sq以死限时间ds递增的顺序存放在空闲时隙队列SQ中。
Figure BDA0002267226040000021
式中,ci表示任务的最坏执行时间,
Figure BDA0002267226040000022
表示任务的实际执行时间,di表示任务的死限时间,t表示任务开始执行的时刻。
步骤二、在任务调度过程中,对被迫中止执行的低安全关键任务进行回收,在进行回收时,记录任务的剩余执行时间
Figure BDA0002267226040000023
由公式(2)计算得到;同时记录任务的死限时间di,然后,按任务优先级递减的顺序存放在回收队列REQ_C中。
Figure BDA0002267226040000024
式中,
Figure BDA0002267226040000025
表示任务的剩余执行时间,
Figure BDA0002267226040000026
表示任务执行需要的总时间,
Figure BDA0002267226040000027
表示任务已经执行的时间。
步骤三、判断回收队列REQ_C是否为空,若为空,则表示被迫终止的低安全关键任务都已经完成再分配,跳转步骤九;若不为空,跳转步骤四。
步骤四、从回收队列REQ_C中取出优先级最高的低安全关键任务wlsk,同时找出空闲时隙队列SQ中死限时间大于任务wlsk死限时间的空闲时段sq。
步骤五、判断在空闲时段sq的时间区间内,任务wlsk是否获取到执行所需的资源,如果获取到执行所需资源,跳转步骤六;如果未获取到执行所需资源,跳转步骤九。
步骤六、判断空闲时段sq的时段长度是否大于任务剩余执行时间,如果空闲时段时间小于任务剩余执行时间,跳转步骤七;如果空闲时段时间大于任务剩余执行时间,跳转步骤八;如果空闲时段时间等于任务剩余执行时间,跳转步骤十。
步骤七、将任务wlsk分配到该空闲时段sq执行,这种情况下,空闲时段sq会被消耗完,但是任务并没有执行完毕。在回收队列REQ_C中更新任务wlsk的剩余执行时间
Figure BDA0002267226040000028
由公式(3)计算得到;在空闲时段队列SQ中删除该空闲时段sq,跳转步骤三。
Figure BDA0002267226040000031
式中,
Figure BDA0002267226040000032
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间,lengtho表示空闲时段sq执行任务wlsk之前的长度。
步骤八、将任务wlsk分配到该空闲时段sq执行,这种情况下,任务wlsk会执行完毕,但是空闲时段sq并不会被消耗完。在空闲时段队列SQ中更新空闲时段sq的长度信息lengthn,由公式(4)计算得到;跳转步骤十。
Figure BDA0002267226040000033
式中,lengthn表示空闲时段sq执行任务wlsk之后的长度,lengtho表示空闲时段sq执行任务wlsk之前的长度,
Figure BDA0002267226040000034
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间。
步骤九、任务再分配失败。
步骤十、任务再分配成功。
本发明的有益效果是:该方法在系统开始运行时,对系统中由于任务执行而产生的slack时隙进行保存,每一个要保存的slack时隙都需要记录其空闲时段长度length和死限时间ds,将slack时隙按照死限时间ds递增的顺序保存在时隙队列SQ中;同时对被迫中止执行的低安全关键任务进行回收,每一个被回收的任务需要记录其剩余执行时间cs和任务死限时间dw,按照任务优先级递减的顺序保存在任务回收队列REQ_C中。取出任务回收队列REQ_C中优先级最高的任务,根据任务死限时间和空闲时隙slack的死限时间的比较,找到可以对任务进行调度的slack时隙,对任务进行再分配。本发明采用回收再分配方法可以提高低安全关键任务的调度成功率,同时,slack空闲时隙的利用减少了处理器的空转期,提高了处理器的利用率。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明基于回收再分配的低安全关键任务调度方法的流程图。
具体实施方式
参照图1。本发明基于回收再分配的低安全关键任务调度方法具体步骤如下:
步骤一、在系统开始运行的时候,使用一个全局的空闲时隙队列SQ对任务执行产生的slack时隙sq进行回收。当一个任务执行完毕后,记录其空闲时隙长度length,由公式(1)计算得到;同时还要记录空闲时隙的死限时间ds。将空闲时隙sq以死限时间ds递增的顺序存放在空闲时隙队列SQ中。
Figure BDA0002267226040000041
式中,ci表示任务的最坏执行时间,
Figure BDA0002267226040000042
表示任务的实际执行时间,di表示任务的死限时间,t表示任务开始执行的时刻。
步骤二、在任务调度的过程中,对被迫中止执行的低安全关键任务进行回收,在进行回收时,记录任务的剩余执行时间
Figure BDA0002267226040000043
由公式(2)计算得到;同时记录任务的死限时间di,然后,按任务优先级递减的顺序存放在回收队列REQ_C中。
Figure BDA0002267226040000044
式中,
Figure BDA0002267226040000045
表示任务的剩余执行时间,
Figure BDA0002267226040000046
表示任务执行需要的总时间,
Figure BDA0002267226040000047
表示任务已经执行的时间。
步骤三、判断回收队列REQ_C是否为空,若为空,则表示被迫终止的低安全关键任务都已经完成再分配,跳转步骤九;若不为空,跳转步骤四。
步骤四、从回收队列REQ_C中取出优先级最高的低安全关键任务wlsk,同时找出空闲时隙队列SQ中死限时间大于任务wlsk死限时间的空闲时段sq。
步骤五、判断在空闲时段sq的时间区间内,任务wlsk是否可以获取到执行所需的资源,如果可以,跳转步骤六;如果不可以,跳转步骤九。
步骤六、判断空闲时段sq的时段长度是否大于任务剩余执行时间,如果空闲时段时间小于任务剩余执行时间,跳转步骤七;如果空闲时段时间大于任务剩余执行时间,跳转步骤八;如果空闲时段时间等于任务剩余执行时间,跳转步骤十。
步骤七、将任务wlsk分配到该空闲时段sq执行,这种情况下,空闲时段sq会被消耗完,但是任务并没有执行完毕。在回收队列REQ_C中更新任务wlsk的剩余执行时间
Figure BDA0002267226040000048
由公式(3)计算得到;在空闲时段队列SQ中删除该空闲时段sq,跳转步骤三。
Figure BDA0002267226040000051
式中,
Figure BDA0002267226040000052
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间,lengtho表示空闲时段sq执行任务wlsk之前的长度。
步骤八、将任务wlsk分配到该空闲时段sq执行,这种情况下,任务wlsk会执行完毕,但是空闲时段sq并不会被消耗完。在空闲时段队列SQ中更新空闲时段sq的长度信息lengthn,由公式(4)计算得到;跳转步骤十。
Figure BDA0002267226040000053
式中,lengthn表示空闲时段sq执行任务wlsk之后的长度,lengtho表示空闲时段sq执行任务wlsk之前的长度,
Figure BDA0002267226040000054
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间。
步骤九、任务再分配失败。
步骤十、任务再分配成功。

Claims (1)

1.一种基于回收再分配的低安全关键任务调度方法,其特征在于包括以下步骤:
步骤一、在系统开始运行时,使用一个全局的空闲时隙队列SQ对任务执行产生的slack时隙sq进行回收;当一个任务执行完毕后,记录其空闲时隙长度length,由公式(1)计算得到;同时记录空闲时隙的死限时间ds;将空闲时隙sq以死限时间ds递增的顺序存放在空闲时隙队列SQ中;
Figure FDA0002267226030000011
式中,ci表示任务的最坏执行时间,
Figure FDA0002267226030000012
表示任务的实际执行时间,di表示任务的死限时间,t表示任务开始执行的时刻;
步骤二、在任务调度过程中,对被迫中止执行的低安全关键任务进行回收,在进行回收时,记录任务的剩余执行时间
Figure FDA0002267226030000013
由公式(2)计算得到;同时记录任务的死限时间di,然后,按任务优先级递减的顺序存放在回收队列REQ_C中;
Figure FDA0002267226030000014
式中,
Figure FDA0002267226030000015
表示任务的剩余执行时间,
Figure FDA0002267226030000016
表示任务执行需要的总时间,
Figure FDA0002267226030000017
表示任务已经执行的时间;
步骤三、判断回收队列REQ_C是否为空,若为空,则表示被迫终止的低安全关键任务都已经完成再分配,跳转步骤九;若不为空,跳转步骤四;
步骤四、从回收队列REQ_C中取出优先级最高的低安全关键任务wlsk,同时找出空闲时隙队列SQ中死限时间大于任务wlsk死限时间的空闲时段sq;
步骤五、判断在空闲时段sq的时间区间内,任务wlsk是否获取到执行所需的资源,如果获取到执行所需资源,跳转步骤六;如果未获取到执行所需资源,跳转步骤九;
步骤六、判断空闲时段sq的时段长度是否大于任务剩余执行时间,如果空闲时段时间小于任务剩余执行时间,跳转步骤七;如果空闲时段时间大于任务剩余执行时间,跳转步骤八;如果空闲时段时间等于任务剩余执行时间,跳转步骤十;
步骤七、将任务wlsk分配到该空闲时段sq执行,这种情况下,空闲时段sq会被消耗完,但是任务并没有执行完毕;在回收队列REQ_C中更新任务wlsk的剩余执行时间
Figure FDA0002267226030000021
由公式(3)计算得到;在空闲时段队列SQ中删除该空闲时段sq,跳转步骤三;
Figure FDA0002267226030000022
式中,
Figure FDA0002267226030000023
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间,lengtho表示空闲时段sq执行任务wlsk之前的长度;
步骤八、将任务wlsk分配到该空闲时段sq执行,这种情况下,任务wlsk会执行完毕,但是空闲时段sq并不会被消耗完;在空闲时段队列SQ中更新空闲时段sq的长度信息lengthn,由公式(4)计算得到;跳转步骤十;
Figure FDA0002267226030000024
式中,lengthn表示空闲时段sq执行任务wlsk之后的长度,lengtho表示空闲时段sq执行任务wlsk之前的长度,
Figure FDA0002267226030000025
表示任务wlsk被分配到该空闲时段sq执行之前的剩余执行时间;
步骤九、任务再分配失败;
步骤十、任务再分配成功。
CN201911092361.2A 2019-11-11 2019-11-11 基于回收再分配的低安全关键任务调度方法 Active CN111045799B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911092361.2A CN111045799B (zh) 2019-11-11 2019-11-11 基于回收再分配的低安全关键任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911092361.2A CN111045799B (zh) 2019-11-11 2019-11-11 基于回收再分配的低安全关键任务调度方法

Publications (2)

Publication Number Publication Date
CN111045799A true CN111045799A (zh) 2020-04-21
CN111045799B CN111045799B (zh) 2023-03-14

Family

ID=70232633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911092361.2A Active CN111045799B (zh) 2019-11-11 2019-11-11 基于回收再分配的低安全关键任务调度方法

Country Status (1)

Country Link
CN (1) CN111045799B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459648A (zh) * 2020-06-17 2020-07-28 北京机电工程研究所 面向应用程序的异构多核平台资源优化方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088706A1 (en) * 2008-10-07 2010-04-08 Futurewei Technologies, Inc. User Tolerance Based Scheduling Method for Aperiodic Real-Time Tasks
CN103984595A (zh) * 2014-05-16 2014-08-13 哈尔滨工程大学 一种异构cmp的静态任务调度方法
US20160034314A1 (en) * 1999-06-21 2016-02-04 Jia Xu Method of computing latest start times to allow real-time process overruns
CN105700941A (zh) * 2015-12-18 2016-06-22 西安工业大学 三维调度器模型及其调度算法
CN108701055A (zh) * 2016-04-28 2018-10-23 日立汽车系统株式会社 车辆控制装置和车辆系统
CN109308216A (zh) * 2018-03-27 2019-02-05 天津大学 一种针对不精确计算的单核系统实时任务调度方法
CN109558227A (zh) * 2018-11-12 2019-04-02 中国航空工业集团公司西安飞行自动控制研究所 一种基于任务执行预算的单调速率任务调度方法
CN110187956A (zh) * 2019-05-07 2019-08-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160034314A1 (en) * 1999-06-21 2016-02-04 Jia Xu Method of computing latest start times to allow real-time process overruns
US20100088706A1 (en) * 2008-10-07 2010-04-08 Futurewei Technologies, Inc. User Tolerance Based Scheduling Method for Aperiodic Real-Time Tasks
CN103984595A (zh) * 2014-05-16 2014-08-13 哈尔滨工程大学 一种异构cmp的静态任务调度方法
CN105700941A (zh) * 2015-12-18 2016-06-22 西安工业大学 三维调度器模型及其调度算法
CN108701055A (zh) * 2016-04-28 2018-10-23 日立汽车系统株式会社 车辆控制装置和车辆系统
CN109308216A (zh) * 2018-03-27 2019-02-05 天津大学 一种针对不精确计算的单核系统实时任务调度方法
CN109558227A (zh) * 2018-11-12 2019-04-02 中国航空工业集团公司西安飞行自动控制研究所 一种基于任务执行预算的单调速率任务调度方法
CN110187956A (zh) * 2019-05-07 2019-08-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. MANZAK: ""Variable voltage task scheduling algorithms for minimizing energy/power"", 《 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 *
RONI_I: ""多级反馈队列调度算法"", 《HTTPS://WWW.CNBLOGS.COM/RONI-I/P/10291822.HTML》 *
刘樑骄: ""异构系统双关键级分布式功能的动态调度"", 《计算机研究与发展》 *
朱怡安: ""多核平台下分区操作系统的安全关键任务调度方法"", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459648A (zh) * 2020-06-17 2020-07-28 北京机电工程研究所 面向应用程序的异构多核平台资源优化方法和装置

Also Published As

Publication number Publication date
CN111045799B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
US9563470B2 (en) Backfill scheduling for embarrassingly parallel jobs
CN101599027B (zh) 一种线程池管理方法及其系统
US8261269B2 (en) System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment
CN107368362B (zh) 一种对于磁盘读写数据的多线程/多进程无锁处理方法及系统
US20150121388A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US10783163B2 (en) Instance-based distributed data recovery method and apparatus
US8484649B2 (en) Amortizing costs of shared scans
JP2020095441A (ja) 演算制御装置
US8458710B2 (en) Scheduling jobs for execution on a computer system
CN104932933A (zh) 一种获取自旋锁的方法及装置
CN101178701A (zh) 一种多处理器间通信的方法及系统
CN111045799B (zh) 基于回收再分配的低安全关键任务调度方法
CN104252386A (zh) 数据更新的加锁方法和设备
CN107357640B (zh) 多线程数据库的请求处理方法及装置、电子设备
CN109614222B (zh) 一种多线程资源分配方法
CN116244085A (zh) Kubernetes集群容器组调度方法、装置及介质
US11816534B2 (en) Hotswapping qubits for resource-limited quantum computing devices
CN114297002A (zh) 一种基于对象存储的海量数据备份方法及系统
CN112256418B (zh) 一种大数据任务调度方法
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN117555816A (zh) 内存回收方法、装置、计算设备及计算机存储介质
CN110349635B (zh) 一种基因测序数据质量分数的并行压缩方法
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
US8689222B2 (en) Controlling priority of multi-threaded hardware resources by system calls
CN115686789A (zh) 一种离散事件并行处理方法、终端设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant