CN100351792C - 一种实时任务管理与调度方法 - Google Patents
一种实时任务管理与调度方法 Download PDFInfo
- Publication number
- CN100351792C CN100351792C CNB2004100568247A CN200410056824A CN100351792C CN 100351792 C CN100351792 C CN 100351792C CN B2004100568247 A CNB2004100568247 A CN B2004100568247A CN 200410056824 A CN200410056824 A CN 200410056824A CN 100351792 C CN100351792 C CN 100351792C
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- waiting list
- tasks
- current operation
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000011084 recovery Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实时任务管理与调度方法,在保持原方法调度能力的前提下,引入资源回收策略,将当前资源需求无法满足的任务加入等待队列。该队列中的任务将等待,直到系统已收集足够的剩余资源供其使用,或因到达等待时限而被放弃。本发明与传统方法相比:当前未能获得足够资源的任务不是立刻放弃,而是加入等待队列,通过获得其他任务释放的资源完成自身操作。本方法将任务分为关键和普通两类,又根据连续执行的次数将普通任务分为必须执行和可以放弃两类,分别采用不同的处理方式,从而确保系统性能和可靠性目标的到达。本发明可在保证传统方法调度能力的前提下,提高了系统的资源利用率,增大了系统的任务吞吐率,同时还能有效地保障系统的性能和可靠性。
Description
技术领域
本发涉及计算机领域,具体地说,涉及一种实时操作系统中实时任务的管理与调度方法。
背景技术
一个具有实用价值的实时操作系统必须具有良好的实时性能和高的任务吞吐率,而任务的管理与调度在其中起着决定性的作用(良好的实时性能是指系统中的每个任务都能在其截至时间前执行完成,高的任务吞吐率是指系统在单位时间内能处理尽可能多的任务)。任务管理与调度作为实时操作系统的重要组成部分,不但负责为实时任务分配系统资源(主要是CPU执行时间),保证实时性能,而且还决定着系统在单位时间内能处理的任务数量,即系统的任务吞吐率。
传统的任务管理与调度方法主要考虑如何保证系统的实时性能,而对于系统资源利用率、任务吞吐率等影响系统性能的关键因素考虑不多。随着实时系统功能的日趋复杂,规模的日益庞大,对系统资源的需求越来越大,为了降低成本开销,如何提高系统资源的利用率已成为一个日趋重要的问题。
系统运行过程中,当某新任务到达后,传统的处理方法如图1所示:以某个给定的条件作为判断新任务能否进入系统的判断标准,进行调度分析,若条件满足,则允许新任务进入系统,新任务进入就绪队列,然后进行任务调度;否则,禁止新任务进入系统,该新任务被丢弃。
传统的处理方法是以任务在最坏情况下的运行时间为分析依据的,对于不满足判断条件的任务立刻丢弃,因此,现有技术存在以下缺点:一、系统资源得不到充分利用;二、任务吞吐率较低;三、任务的丢弃影响系统的性能和可靠性。
发明内容
本发明的目的在于克服现有技术中系统资源利用率较低以及任务吞吐率较低的缺点,提出一种实时任务管理与调度方法。
传统的方法以任务在最坏情况下的运行时间作为判断新任务能否进入系统的参数,而任务的实际运行时间往往小于该值,从而致使系统资源得不到充分利用,部分资源被浪费,任务吞吐率低下。本发明的核心思想是:在保持原方法调度能力的前提下,引入资源回收策略,将当前资源需求无法满足的任务加入等待队列。该队列中的任务将等待,直到系统已收集足够的剩余资源供其使用,或因到达等待时限而被放弃。本方法将采用特殊的机制确定被放弃的任务,使放弃操作对系统性能和可靠性影响最小。
本发明的技术方案为:一种实时任务管理与调度方法,首先增加定义实时任务的属性,包括关键性、必要运行数、当前运行数和最长等待时间;所述实时任务的关键性包括关键任务和普通任务,关键任务是指影响系统性能指标和可靠性的任务,不能被系统丢弃,除关键任务以外的任务为普通任务;所述必要运行数是指,每个普通任务必须连续运行的次数;所述当前运行数是指,普通任务从上一次被放弃到目前为止运行的次数;所述最长等待时间是指,普通任务在等待队列中可以驻留的最长时间;所述管理与调度方法具体包括并行的两个过程:对新任务的处理过程和单个任务执行完毕后的处理过程;所述对新任务的处理过程包括:
步骤一、判断系统中的剩余资源能否满足新任务的资源需求,如果能则执行步骤六;
步骤二、如果不能,则判断该新任务是否为关键任务,如果是则执行步骤四;
步骤三、判断该新任务的当前运行数是否大于或等于必要运行数,如果是则执行步骤五;
步骤四、选择就绪队列中当前运行数等于必要运行数且优先级最低的普通任务,将其当前运行数置零,计算其最长等待时间,并将其转入等待队列后执行步骤一;
步骤五、将该新任务的当前运行数置零,计算其最长等待时间,将其插入等待队列后执行步骤七;
步骤六、将该新任务加入就绪队列,该新任务进入系统;
步骤七、系统从就绪队列中选择任务执行;
所述单个任务执行完毕后的处理过程包括:
步骤A、回收该任务释放的系统资源;
步骤B、该任务的当前运行数加1;
步骤C、判断系统当前的剩余资源能否满足等待队列中第一个任务的资源需求,如果能则执行步骤D,否则执行步骤E;
步骤D、等待队列中的第一个任务转入就绪队列,执行步骤C;
步骤E、系统从就绪队列中选择任务执行。
当系统每经过一个时间单位后,还执行下列操作:
步骤F1、更新等待队列中各任务的等待时间;
步骤F2、取等待队列中的第一个任务,判断其是否到达最大等待时间,如果是则执行步骤F3,否则执行步骤F5;
步骤F3、丢弃等待队列中的第一个任务,并将其当前运行数置零;
步骤F4、更新等待队列,执行步骤F2;
步骤F5、执行系统的其它操作。
上述任务的关键性和必要运行数根据系统的实际需要由用户设定,当前运行数根据任务运行情况动态设定,最长等待时间根据系统当前状态动态设定。
由上述可见,本发明提出的方法与传统方法比较,不同之处在于:当前未能获得足够资源的任务不是立刻放弃,而是加入等待队列,通过获得其他任务释放的资源完成自身操作。本方法将任务分为关键和普通两类,又根据连续执行的次数将普通任务分为必须执行和可以放弃两类,分别采用不同的处理方式,从而确保系统性能和可靠性目标的到达。与现有技术相比,本发明可在保证传统方法调度能力的前提下,提高了系统的资源利用率,增大了系统的任务吞吐率,同时还能有效地保障系统的性能和可靠性。
附图说明
图1是现有技术中实时任务管理与调度方法的流程图;
图2是本发明所提出方法的核心思想示意图;
图3是本发明技术方案中对新任务的处理流程图;
图4是本发明技术方案中单个任务执行完毕后的处理图;
图5是本发明技术方案中每个时间单位结束后的处理流程图。
具体实施方式
下面结合附图,以本发明在RMS(Rate-Monotonic Scheduling单调比率调度)调度中的应用为例对本发明做进一步的详细说明。
图1已在背景技术中进行过说明。
图2是本发明所提出方法的核心思想示意图。如图2所示,本方法新增一个任务等待队列,在任务集的运行过程中,若当前系统资源紧缺,将一部分任务放入等待队列进行等待。等待队列中的任务将在系统已收集足够的、由其它任务释放的剩余资源后才进入系统,或因为超过了最大等待时间而被放弃。本方法根据任务的重要性和对系统性能和可靠性影响的大小,选择放弃哪些任务。在这里,本发明引入了非精确计算的思想,并假设普通任务的偶尔一次运行失败不会对整个系统的性能和可靠性产生严重影响。例如,图象处理中偶尔丢失一帧数据对系统的整体性能影响不大。本发明提出的方法需要对任务的属性进行必要的扩充。除包括任务周期和执行时间外,还应至少包括以下几个属性:关键性、必要运行数、当前运行数和最长等待时间。关键性将实时任务分为两类:关键任务和普通任务。关键任务是影响系统的性能指标和可靠性的主要因素,它不能被系统丢弃。普通任务在一定的情况下可以被放弃。必要运行数是指,每个普通任务必须连续运行的次数。当前运行数是指,普通任务从上一次被放弃到目前为止,共经过了多少次运行。最长等待时间是指,普通任务在等待队列中可以驻留的最长时间。处于等待队列中的普通任务,当其停留时间超过了最长等待时间,将被系统放弃。其中,任务的关键性和必要运行数根据系统的实际需要由用户设定,当前运行数根据任务运行情况动态设定,最长等待时间根据系统当前状态动态设定。
图3是本发明技术方案中对新任务的处理流程图。如图3所示,对新任务的处理过程包括:
步骤一、判断系统中的剩余资源能否满足新任务的资源需求,如果能则执行步骤六;步骤二、如果不能,则判断该新任务是否为关键任务,如果是则执行步骤四;步骤三、判断该新任务的当前运行数是否大于或等于必要运行数,如果是则执行步骤五;步骤四、选择就绪队列中当前运行数等于必要运行数且优先级最低的普通任务,将其当前运行数置零,计算其最长等待时间,并将该任务转入等待队列后执行步骤一;步骤五、将该新任务的当前运行数置零,计算其最长等待时间,将其插入等待队列后执行步骤七;步骤六、将该新任务加入就绪队列,该新任务进入系统;步骤七、系统从就绪队列中选择任务执行。
在实施例中,一个新任务达到系统时,本发明所述方法利用RMS调度提供的判断条件来判断新任务能否进入系统。若能进入,则将新任务加入就绪队列。否则,根据新任务属性不同,有以下两种可能:
情况1:如果新到达的任务是普通任务,且当前运行数等于必要运行数。在这种情况下,计算该任务的最大等待时间,并将其放入等待队列。
情况2:如果新到达的任务是关键任务,或者是当前运行数小于必要运行数的普通任务。在这种情况下,必须将部分就绪队列中的任务转移到等待队列,以便保证新任务能进入系统。选择就绪队列中,当前运行数等于必要运行数且优先级最低的普通任务,计算其最大等待时间,并使其转入等待队列。本发明所述方法移动满足上述条件的普通任务,直到释放的处理器资源满足新到达任务的需要,将新任务加入就绪队列。
图4是本发明技术方案中单个任务执行完毕后的处理图。如图4所示,本发明中单个任务执行完毕后的处理过程包括:步骤A、回收该任务释放的系统资源;步骤B、该任务的当前运行数加1;步骤C、判断系统当前的剩余资源能否满足等待队列中第一个任务的资源需求,如果能则执行步骤D,否则执行步骤E;步骤D、等待队列中的第一个任务转入就绪队列,执行步骤C;步骤E、系统从就绪队列中选择任务执行。
某单个任务运行结束时,本发明提出的方法将回收该任务释放的系统资源,同时递加该任务的当前运行数。然后判断等待队列的第一个任务能否进入系统,若能,将其转移到就绪队列。本发明提出的方法将反复执行上述步操作,直到等待队列的第一个任务不能进入系统为止。
图5是本发明技术方案中每个时间单位结束后的处理流程图。如图5所示,当系统每经过一个时间单位后,执行下列操作:步骤F1、更新等待队列中各任务的等待时间;步骤F2、取等待队列中的第一个任务,判断其是否到达最大等待时间,如果是则执行步骤F3,否则执行步骤F5;步骤F3、丢弃等待队列中的第一个任务,并将其当前运行数置零;步骤F4、更新等待队列,执行步骤F2;步骤F5、执行系统的其它操作。这里所说的“时间单位”是指实时操作系统的一个时基,或称tick,如在linux操作系统中,一个tick大小为10毫秒。通常来说,操作系统在每经过一个tick后,将会触发一次时钟中断,然后执行相应的中断服务程序,此处的F1到F5操作就是在时钟中断的服务程序中执行的。
Claims (4)
1、一种实时任务管理与调度方法,其特征在于首先增加定义实时任务的属性,包括关键性、必要运行数、当前运行数和最长等待时间;所述实时任务的关键性包括关键任务和普通任务,关键任务是指影响系统性能指标和可靠性的任务,不能被系统丢弃,除关键任务以外的任务为普通任务;所述必要运行数是指,每个普通任务必须连续运行的次数;所述当前运行数是指,普通任务从上一次被放弃到目前为止运行的次数;所述最长等待时间是指,普通任务在等待队列中可以驻留的最长时间;所述管理与调度方法具体包括并行的两个过程:对新任务的处理过程和单个任务执行完毕后的处理过程;所述对新任务的处理过程包括:
步骤一、判断系统中的剩余资源能否满足新任务的资源需求,如果能则执行步骤六;
步骤二、如果不能,则判断该新任务是否为关键任务,如果是则执行步骤四;
步骤三、判断该新任务的当前运行数是否大于或等于必要运行数,如果是则执行步骤五;
步骤四、选择就绪队列中当前运行数等于必要运行数且优先级最低的普通任务,将其当前运行数置零,计算其最长等待时间,并将其转入等待队列后执行步骤一;
步骤五、将该新任务的当前运行数置零,计算其最长等待时间,将其插入等待队列后执行步骤七;
步骤六、将该新任务加入就绪队列,该新任务进入系统;
步骤七、系统从就绪队列中选择任务执行;
所述单个任务执行完毕后的处理过程包括:
步骤A、回收该任务释放的系统资源;
步骤B、该任务的当前运行数加1;
步骤C、判断系统当前的剩余资源能否满足等待队列中第一个任务的资源需求,如果能则执行步骤D,否则执行步骤E;
步骤D、等待队列中的第一个任务转入就绪队列,执行步骤C;
步骤E、系统从就绪队列中选择任务执行。
2、根据权利要求1所述的方法,其特征在于所述方法还包括:当系统每经过一个时间单位后,执行下列操作:
步骤F1、更新等待队列中各任务的等待时间;
步骤F2、取等待队列中的第一个任务,判断其是否到达最大等待时间,如果是则执行步骤F3,如果未达到最大等待时间则执行步骤F5;
步骤F3、丢弃等待队列中的第一个任务,并将其当前运行数置零;
步骤F4、更新等待队列,执行步骤F2;
步骤F5、执行系统的其它操作。
3、根据权利要求2所述的方法,其特征在于:所述时间单位为实时操作系统的一个时基。
4、根据权利要求1所述的方法,其特征在于:所述任务的关键性和必要运行数根据系统的实际需要由用户设定,当前运行数根据任务运行情况动态设定,最长等待时间根据系统当前状态动态设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100568247A CN100351792C (zh) | 2004-08-23 | 2004-08-23 | 一种实时任务管理与调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100568247A CN100351792C (zh) | 2004-08-23 | 2004-08-23 | 一种实时任务管理与调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1740973A CN1740973A (zh) | 2006-03-01 |
CN100351792C true CN100351792C (zh) | 2007-11-28 |
Family
ID=36093375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100568247A Expired - Lifetime CN100351792C (zh) | 2004-08-23 | 2004-08-23 | 一种实时任务管理与调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100351792C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100365544C (zh) * | 2006-03-10 | 2008-01-30 | 浙江大学 | 嵌入式系统外部设备带有等待超时判断的节能切换方法 |
CN101094193B (zh) * | 2006-06-23 | 2010-04-14 | 阿里巴巴集团控股有限公司 | 一种对多种来源的多类投递请求进行处理的方法和系统 |
CN100465857C (zh) * | 2006-10-12 | 2009-03-04 | 浙江大学 | 一种面向嵌入式系统低功耗实时任务调度的简化方法 |
CN100416463C (zh) * | 2006-10-12 | 2008-09-03 | 浙江大学 | 面向嵌入式系统低功耗实时任务参数模型调度方法 |
CN101847115B (zh) * | 2009-03-26 | 2012-10-31 | 晨星软件研发(深圳)有限公司 | 一种可监控本身系统资源的方法与电子装置 |
CN101609417B (zh) * | 2009-07-17 | 2012-07-04 | 西安电子科技大学 | 基于VxWorks操作系统的混合任务集调度方法 |
CN101799770B (zh) * | 2010-01-19 | 2012-07-25 | 湖南大学 | 基于单位面积加速比的可重构资源管理方法 |
CN102012845B (zh) * | 2010-12-16 | 2012-08-08 | 迈普通信技术股份有限公司 | 一种提高自动化测试资源利用率的方法 |
CN102135913A (zh) * | 2011-03-18 | 2011-07-27 | 宇龙计算机通信科技(深圳)有限公司 | 应用的响应方法和装置 |
US10318345B2 (en) * | 2015-04-20 | 2019-06-11 | Hisense Usa Corp. | Dynamic priority queue |
CN105722187A (zh) * | 2016-03-28 | 2016-06-29 | 青岛大学 | 一种一对多的信息无线传输方法 |
CN105893119A (zh) * | 2016-03-31 | 2016-08-24 | 广东美的厨房电器制造有限公司 | 基于单片机系统的事件处理方法、装置和单片机系统 |
CN109783273B (zh) * | 2017-11-14 | 2022-12-13 | 阿里巴巴集团控股有限公司 | 分布式处理中的容错方法及设备 |
CN109857539B (zh) * | 2017-11-30 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 资源调度方法和终端 |
CN110618857A (zh) * | 2019-08-14 | 2019-12-27 | 中国电力科学研究院有限公司 | 一种校准平台的多任务测控方法、以及资源分配方法 |
CN118245200B (zh) * | 2024-05-30 | 2024-09-17 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 实时任务调度方法、装置、设备、存储介质和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505229B1 (en) * | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
CN1409029A (zh) * | 2001-09-13 | 2003-04-09 | 帝人制机株式会社 | 偏心摆动型减速器 |
US6601083B1 (en) * | 1996-08-29 | 2003-07-29 | Frederick John Reznak | Multitasking data processing system and method of controlling allocation of a shared resource |
US6721775B1 (en) * | 1999-08-12 | 2004-04-13 | International Business Machines Corporation | Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue |
-
2004
- 2004-08-23 CN CNB2004100568247A patent/CN100351792C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601083B1 (en) * | 1996-08-29 | 2003-07-29 | Frederick John Reznak | Multitasking data processing system and method of controlling allocation of a shared resource |
US6505229B1 (en) * | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
US6721775B1 (en) * | 1999-08-12 | 2004-04-13 | International Business Machines Corporation | Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue |
CN1409029A (zh) * | 2001-09-13 | 2003-04-09 | 帝人制机株式会社 | 偏心摆动型减速器 |
Also Published As
Publication number | Publication date |
---|---|
CN1740973A (zh) | 2006-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100351792C (zh) | 一种实时任务管理与调度方法 | |
CN100557570C (zh) | 多处理器系统 | |
Casanova | Benefits and drawbacks of redundant batch requests | |
CN101751289B (zh) | 一种嵌入式实时操作系统的混合调度方法 | |
CN104298550B (zh) | 一种面向Hadoop的动态调度方法 | |
CN1116639C (zh) | 带任务切换的零开销计算机中断 | |
CN1601477A (zh) | 用于自主自适应互斥体的方法和系统 | |
CN103150259A (zh) | 一种内存回收方法和装置 | |
CN111258746A (zh) | 资源分配方法和服务设备 | |
CN1855055A (zh) | 减小java虚拟机中由无用单元收集造成的时延的方法 | |
Yu et al. | CaaS-LSM: compaction-as-a-service for LSM-based key-value stores in storage disaggregated infrastructure | |
CN1783020A (zh) | 基于PowerPC体系结构的嵌入式操作系统的中断管理方法 | |
CN112596895B (zh) | 一种sql语义感知的弹性倾斜处理方法及系统 | |
CN101059765A (zh) | 一种数字家庭网络多任务并发执行的装置及方法 | |
CN1287290C (zh) | 嵌入式实时操作系统中非缓冲内存动态分配方法 | |
CN1825288A (zh) | 嵌入式sram操作系统进程多队列调度的实现方法 | |
CN109308216B (zh) | 一种针对不精确计算的单核系统实时任务调度方法 | |
CN111506407A (zh) | Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质 | |
Kravetz et al. | Enhancing Linux scheduler scalability | |
WO2023015787A1 (zh) | 一种高吞吐云计算资源回收系统 | |
CN100336346C (zh) | 并行计算集群电源的能耗控制方法 | |
KR101725408B1 (ko) | 실시간 운영체제의 태스크 스케줄링 방법 | |
CN1302412C (zh) | 一种计算机机群系统及其作业管理方法 | |
KR102204032B1 (ko) | 비대칭 멀티코어 기반 스마트 모바일 단말의 에너지 소모를 줄이기 위한 실시간 태스크의 코어 할당 방법 및 그 장치 | |
Chan et al. | Nonclairvoyant sleep management and flow-time scheduling on multiple processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20071128 |
|
CX01 | Expiry of patent term |