CN106802825B - 一种基于实时系统的动态任务调度方法与系统 - Google Patents
一种基于实时系统的动态任务调度方法与系统 Download PDFInfo
- Publication number
- CN106802825B CN106802825B CN201611127571.7A CN201611127571A CN106802825B CN 106802825 B CN106802825 B CN 106802825B CN 201611127571 A CN201611127571 A CN 201611127571A CN 106802825 B CN106802825 B CN 106802825B
- Authority
- CN
- China
- Prior art keywords
- event
- priority
- current
- execution
- received
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于实时系统的动态任务调度方法与系统,基于实时系统的动态任务调度方法的系统,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所述一种基于实时系统的动态任务调度方法的系统,设计模块化架构,在系统整个动态运行过程中,能够随时处理外部随机事件,不会耽误重要随机事件的执行,能够有效提高系统资源的利用率,大大节约了系统处理事件的时间,有效提高了实际工作效率。
Description
技术领域
本发明涉及一种基于实时系统的动态任务调度方法与系统,属于任务调度技术领域。
背景技术
随着计算机应用范围的日益扩大,实时任务系统的应用范围则越来越广泛,例如航空航天控制、工业控制、机器人智能控制、云计算、智能微电网、嵌入式开发系统等。
实时系统是能及时响应外部发生的随机事件,并以较快的速度完成对事件处理的计算机应用系统。根据建立调度表和可调度性分析是脱机还是联机实现分为静态调度和动态调度,静态调度无论是单处理器调度还是分布式调度,一般是以RMS算法为基础;动态调度则以EDF、LLF为主。最优静态调度算法是RMS,RMS是指任务按单调速率优先级(RMPA)进行分配,RMPA是指任务的优先级按任务周期来进行划分。执行任务所使用的周期越长,优先级越低;执行任务所使用的优先级越短,优先级越高。RMS算法的一大优点就是可通过对系统资源利用率的计算来进行任务可调度性进行分析,算法简单、有效,便于实现;缺点也很明显:(1)系统出现随机事件,有些随机事件可能优先级更高,未考虑队列问题;(2)有些事件可能在前一个事件结束后再进行后一个事件才有意义,未考虑各个任务之间的依赖性;(3)系统预定时间内事件并不能结束,未考虑到系统是动态变化的。最优静态调度算法是EDF、LLF,最早截止时间优先算法(EDF)也称为截止时间驱动调度算法(DDS),是一种动态调度算法;EDF指在调度时,任务的优先级根据任务的截止时间动态分配。截止时间越短,优先级越高。最短空闲时间优先算法(LLF)也是一种动态调度算法,LLF指在调度时刻,任务的优先级根据任务的空闲时间动态分配。空闲时间越短,优先级越高。空闲时间=deadline-任务剩余执行时间。理论上,EDF和LLF算法的可调度条件相同,是动态算法中的最优调度算法,但是也并未考虑到随机插入事件对系统的影响。
发明内容
本发明所要解决的技术问题是提供一种解决上述现有技术缺点,能够有效提高任务调度效率的基于实时系统的动态任务调度方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于实时系统的动态任务调度方法,针对系统所接收到的事件实现动态调度,包括如下步骤:
步骤001.判断当前执行事件的数量是否达到系统当前执行任务数上限,是则进入步骤002,否则系统直接将所接收到的事件作为当前执行事件进行执行;
步骤002.判断系统所接收到的事件为系统随机事件或人工添加事件,若系统所接收到的事件是系统随机事件,则进入步骤003;若系统所接收到的事件是人工添加事件,则定义人工添加事件的优先级为最高优先级,并进入步骤005;
步骤003.获得系统所接收事件的优先级,并判断当前各执行事件中,是否存在优先级小于系统所接收事件优先级的当前执行事件,是则进入步骤005,否则进入步骤004;
步骤004.将系统所接收事件按优先级降序顺序排列在待执行任务序列当中,动态调度结束;
步骤005.判断优先级小于系统所接收事件优先级的各个当前执行事件中,是否存在可中断事件,是则进入步骤006,否则返回步骤004;
步骤006.针对优先级小于系统所接收事件优先级的各个当前执行事件中的各个可中断事件,暂停最小优先级所对应的任意一个当前执行事件,并将该当前执行事件和该当前执行事件的暂停节点进行保存,同时将系统所接收事件作为当前执行事件进行执行,并进入步骤007;
步骤007.待任意一个当前执行事件完成执行,然后判断待执行任务序列当中是否存在事件,是则进入步骤008;否则进入步骤009;
步骤008.判断所保存暂停节点对应暂停事件的优先级是否小于待执行任务序列当中第一个事件的优先级,是则将待执行任务序列当中的第一个事件作为当前执行事件进行执行,并返回步骤007;否则将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束;
步骤009.将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束。
作为本发明的一种优选技术方案:当各个当前执行事件出现变化后,针对所述各个当前执行事件,按优先级降序顺序进行排序,获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源。
作为本发明的一种优选技术方案:针对当前执行事件排序中优先级相同的各个当前执行事件,按剩余执行时间升序顺序进行排序,更新获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源。
作为本发明的一种优选技术方案:所述步骤004中,将系统所接收事件按优先级降序顺序排列在待执行任务序列当中,且系统所接收事件位于待执行任务序列当中相同优先级的事件之后。
本发明所述一种基于实时系统的动态任务调度方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计基于实时系统的动态任务调度方法,在系统整个动态运行过程中,能够随时处理外部随机事件,不会耽误重要随机事件的执行,能够有效提高系统资源的利用率,大大节约了系统处理事件的时间。
与之相应,本发明还要解决的技术问题是提供一种基于本发明所设计动态任务调度方法,设计模块化架构,能够有效提高实际工作效率的基于实时系统的动态任务调度方法的系统。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于实时系统的动态任务调度方法的系统,包括如下各单元:
接收单元:用于接收事件;
判优单元:用于实现事件优先级的比较;
队列单元:用于实现事件的排序;
执行单元:用于针对当前执行事件进行执行处理;
检测单元:用于检测执行单元中当前执行事件的数量,然后根据当前执行事件的数量进行系统资源分配;
中断存储单元:用于存储暂停事件和暂停事件的暂停节点,等待中断恢复单元查找并恢复执行;
中断恢复单元:用于查找中断存储单元中暂停事件和暂停事件的节点,并用于恢复执行暂停事件;
插入单元:用于实现接收事件向待执行任务序列中的插入。
本发明所述一种基于实时系统的动态任务调度方法的系统,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所述一种基于实时系统的动态任务调度方法的系统,设计模块化架构,在系统整个动态运行过程中,能够随时处理外部随机事件,不会耽误重要随机事件的执行,能够有效提高系统资源的利用率,大大节约了系统处理事件的时间,有效提高了实际工作效率。
附图说明
图1是本发明设计的基于实时系统的动态任务调度方法的流程示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
如图1所示,本发明设计了一种基于实时系统的动态任务调度方法,针对系统所接收到的事件实现动态调度,实际应用过程当中,具体包括如下步骤:
步骤001.判断当前执行事件的数量是否达到系统当前执行任务数上限,是则进入步骤002,否则系统直接将所接收到的事件作为当前执行事件进行执行。
步骤002.判断系统所接收到的事件为系统随机事件或人工添加事件,若系统所接收到的事件是系统随机事件,则进入步骤003;若系统所接收到的事件是人工添加事件,则定义人工添加事件的优先级为最高优先级,并进入步骤005。
步骤003.获得系统所接收事件的优先级,并判断当前各执行事件中,是否存在优先级小于系统所接收事件优先级的当前执行事件,是则进入步骤005,否则进入步骤004。
步骤004.将系统所接收事件按优先级降序顺序排列在待执行任务序列当中,且系统所接收事件位于待执行任务序列当中相同优先级的事件之后,动态调度结束。
步骤005.判断优先级小于系统所接收事件优先级的各个当前执行事件中,是否存在可中断事件,是则进入步骤006,否则返回步骤004。
步骤006.针对优先级小于系统所接收事件优先级的各个当前执行事件中的各个可中断事件,暂停最小优先级所对应的任意一个当前执行事件,并将该当前执行事件和该当前执行事件的暂停节点进行保存,同时将系统所接收事件作为当前执行事件进行执行,并进入步骤007。
步骤007.待任意一个当前执行事件完成执行,然后判断待执行任务序列当中是否存在事件,是则进入步骤008;否则进入步骤009。
步骤008.判断所保存暂停节点对应暂停事件的优先级是否小于待执行任务序列当中第一个事件的优先级,是则将待执行任务序列当中的第一个事件作为当前执行事件进行执行,并返回步骤007;否则将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束。
步骤009.将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束。
在上述过程执行的同时,系统还要针对各个当前执行事件进行系统资源的分配,具体为当各个当前执行事件出现变化后,针对所述各个当前执行事件,按优先级降序顺序进行排序,获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源,其中,针对当前执行事件排序中优先级相同的各个当前执行事件,按剩余执行时间升序顺序进行排序,更新获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源。
上述针对各个当前执行事件进行系统资源的分配,在实际应用的具体过程当中,比如原先只有一个当前执行事件A,则系统为当前执行事件A分配100%的系统资源,此时,若有一个当前执行事件B加入,则系统比较当前执行事件A与当前执行事件B的优先级,若当前执行事件A的优先级大于当前执行事件B的优先级,则系统针对当前执行事件A和当前执行事件B按优先级降序排列,并由最高优先级对应的当前执行事件开始,依序针对各个当前执行事件递减分配系统资源,这里比如,系统为当前执行事件A分配70%的系统资源,系统为当前执行事件B分配30%的系统资源;在存在当前执行事件A和当前执行事件B的基础上,若又有一个当前执行事件C加入,此时首先判断当前执行事件C的优先级,若当前执行事件C的优先级等于当前执行事件B的优先级,则进一步判断针对剩余执行时间进行判断,并按剩余执行时间升序进行排序,若当前执行事件C的剩余执行时间小于当前执行事件B的剩余执行时间,则针对各个当前执行事件的排序为A、C、B,则系统进一步针对三个当前执行事件进行系统资源分配,具体可以为,系统为当前执行事件A分配50%的系统资源,系统为当前执行事件C分配35%的系统资源,系统为当前执行事件B分配15%的系统资源。
针对上述具体所设计的基于实时系统的动态任务调度方法,本发明还进一步设计了基于上述动态任务调度方法的系统,具体包括接收单元;接收单元;判优单元;队列单元;执行单元;检测单元;中断存储单元;中断恢复单元;插入单元;并且针对上述各单元做具体设计,其中,接收单元:用于接收事件;判优单元:用于实现事件优先级的比较;队列单元:用于实现事件的排序;执行单元:用于针对当前执行事件进行执行处理;检测单元:用于检测执行单元中当前执行事件的数量,然后根据当前执行事件的数量进行系统资源分配;中断存储单元:用于存储暂停事件和暂停事件的暂停节点,等待中断恢复单元查找并恢复执行;中断恢复单元:用于查找中断存储单元中暂停事件和暂停事件的节点,并用于恢复执行暂停事件;插入单元:用于实现接收事件向待执行任务序列中的插入。
上述技术方案所设计基于实时系统的动态任务调度方法与系统,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所述一种基于实时系统的动态任务调度方法的系统,设计模块化架构,在系统整个动态运行过程中,能够随时处理外部随机事件,不会耽误重要随机事件的执行,能够有效提高系统资源的利用率,大大节约了系统处理事件的时间,有效提高了实际工作效率。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (4)
1.一种基于实时系统的动态任务调度方法,其特征在于,针对系统所接收到的事件实现动态调度,包括如下步骤:
步骤001.判断当前执行事件的数量是否达到系统当前执行任务数上限,是则进入步骤002,否则系统直接将所接收到的事件作为当前执行事件进行执行;
步骤002.判断系统所接收到的事件为系统随机事件或人工添加事件,若系统所接收到的事件是系统随机事件,则进入步骤003;若系统所接收到的事件是人工添加事件,则定义人工添加事件的优先级为最高优先级,并进入步骤005;
步骤003.获得系统所接收事件的优先级,并判断当前各执行事件中,是否存在优先级小于系统所接收事件优先级的当前执行事件,是则进入步骤005,否则进入步骤004;
步骤004.将系统所接收事件按优先级降序顺序排列在待执行任务序列当中,且系统所接收事件位于待执行任务序列当中相同优先级的事件之后,动态调度结束;
步骤005.判断优先级小于系统所接收事件优先级的各个当前执行事件中,是否存在可中断事件,是则进入步骤006,否则返回步骤004;
步骤006.针对优先级小于系统所接收事件优先级的各个当前执行事件中的各个可中断事件,暂停最小优先级所对应的任意一个当前执行事件,并将该当前执行事件和该当前执行事件的暂停节点进行保存,同时将系统所接收事件作为当前执行事件进行执行,并进入步骤007;
步骤007.待任意一个当前执行事件完成执行,然后判断待执行任务序列当中是否存在事件,是则进入步骤008;否则进入步骤009;
步骤008.判断所保存暂停节点对应暂停事件的优先级是否小于待执行任务序列当中第一个事件的优先级,是则将待执行任务序列当中的第一个事件作为当前执行事件进行执行,并返回步骤007;否则将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束;
步骤009.将所保存执行节点对应的暂停事件作为当前执行事件,由执行节点位置继续执行,同时删除所保存的暂停节点,动态调度结束。
2.根据权利要求1所述一种基于实时系统的动态任务调度方法,其特征在于:当各个当前执行事件出现变化后,针对所述各个当前执行事件,按优先级降序顺序进行排序,获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源。
3.根据权利要求2所述一种基于实时系统的动态任务调度方法,其特征在于:针对当前执行事件排序中优先级相同的各个当前执行事件,按剩余执行时间升序顺序进行排序,更新获得当前执行事件排序,然后按当前执行事件排序,依次为各个当前执行事件递减分配系统资源。
4.一种基于权利要求1至3中任意一项所述实时系统的动态任务调度方法的系统,其特征在于,包括如下各单元:
接收单元:用于接收事件;
判优单元:用于实现事件优先级的比较;
队列单元:用于实现事件的排序;
执行单元:用于针对当前执行事件进行执行处理;
检测单元:用于检测执行单元中当前执行事件的数量,然后根据当前执行事件的数量进行系统资源分配;
中断存储单元:用于存储暂停事件和暂停事件的暂停节点,等待中断恢复单元查找并恢复执行;
中断恢复单元:用于查找中断存储单元中暂停事件和暂停事件的节点,并用于恢复执行暂停事件;
插入单元:用于实现接收事件向待执行任务序列中的插入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611127571.7A CN106802825B (zh) | 2016-12-09 | 2016-12-09 | 一种基于实时系统的动态任务调度方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611127571.7A CN106802825B (zh) | 2016-12-09 | 2016-12-09 | 一种基于实时系统的动态任务调度方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106802825A CN106802825A (zh) | 2017-06-06 |
CN106802825B true CN106802825B (zh) | 2019-11-05 |
Family
ID=58984614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611127571.7A Active CN106802825B (zh) | 2016-12-09 | 2016-12-09 | 一种基于实时系统的动态任务调度方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106802825B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107221014A (zh) * | 2017-06-26 | 2017-09-29 | 上海联影医疗科技有限公司 | 医学图像重建任务的调度方法和装置以及医学成像系统 |
CN108304492B (zh) * | 2018-01-09 | 2020-07-31 | 武汉斗鱼网络科技有限公司 | 一种搜索列表更新方法、存储介质、设备及系统 |
CN108377480B (zh) * | 2018-01-30 | 2020-10-23 | 浙江大学 | 基于无人机的应急物联通信方法 |
CN112513646B (zh) * | 2018-08-22 | 2024-04-16 | 深圳迈瑞生物医疗电子股份有限公司 | 一种流水线上的仪器状态控制方法及系统、分析装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451255B2 (en) * | 2005-09-28 | 2008-11-11 | Intel Corporation | Hardware port scheduler (PTS) having register to indicate which of plurality of protocol engines PTS is to support |
CN105068865A (zh) * | 2015-07-28 | 2015-11-18 | 新华瑞德(北京)网络科技有限公司 | 任务调度方法和装置 |
CN106201672B (zh) * | 2016-06-22 | 2020-05-12 | 武汉斗鱼网络科技有限公司 | 一种定时任务设置系统及其定时任务运行方法 |
-
2016
- 2016-12-09 CN CN201611127571.7A patent/CN106802825B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106802825A (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802825B (zh) | 一种基于实时系统的动态任务调度方法与系统 | |
CN106293919B (zh) | 一种时间触发的嵌入式任务调度装置与方法 | |
CN109901926A (zh) | 基于大数据行为调度应用任务的方法、服务器及存储介质 | |
CN105320570B (zh) | 资源管理方法和系统 | |
US9104500B1 (en) | Lock-free job scheduler for multi-processor systems | |
US10157155B2 (en) | Operating system-managed interrupt steering in multiprocessor systems | |
CN101923487A (zh) | 一种综合嵌入式实时周期任务调度方法 | |
CN102541642B (zh) | 一种增强实时性能的任务管理方法 | |
CN101452404A (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
CN102270156A (zh) | 一种实时嵌入式系统定时器管理方法 | |
CN109684060A (zh) | 一种多类型时间关键任务的混合调度方法 | |
CN108536531A (zh) | 一种基于单片机的任务调度和电源管理方法 | |
CN106445659A (zh) | 一种空间飞行器周期性混成随机任务调度方法 | |
CN109254582A (zh) | 一种移动机器人提升任务执行效率的实现方法 | |
Ye et al. | SHWS: Stochastic hybrid workflows dynamic scheduling in cloud container services | |
CN106534312B (zh) | 一种面向移动设备的服务请求选择与调度方法 | |
Dziurzanski et al. | Implementing digital twins of smart factories with interval algebra | |
CN108845870B (zh) | 一种基于pWCET整形的概率性实时任务调度方法 | |
Chishiro et al. | Global semi-fixed-priority scheduling on multiprocessors | |
Yao et al. | Streaming Data Priority Scheduling Framework for Autonomous Driving by Edge | |
Salmani et al. | A fuzzy-based multi-criteria scheduler for uniform multiprocessor real-time systems | |
Andrei et al. | An improved upper-bound algorithm for non-preemptive task scheduling | |
Fan et al. | A survey on task scheduling method in heterogeneous computing system | |
Aida et al. | Performance enhancement of scheduling algorithm in heterogeneous distributed computing systems | |
Xia et al. | Research on Task Scheduling Algorithm Based on Multi-Time Period Merging |
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 |