CN101290585B - 一种嵌入式系统实时任务的调度方法 - Google Patents
一种嵌入式系统实时任务的调度方法 Download PDFInfo
- Publication number
- CN101290585B CN101290585B CN2007100740769A CN200710074076A CN101290585B CN 101290585 B CN101290585 B CN 101290585B CN 2007100740769 A CN2007100740769 A CN 2007100740769A CN 200710074076 A CN200710074076 A CN 200710074076A CN 101290585 B CN101290585 B CN 101290585B
- Authority
- CN
- China
- Prior art keywords
- task
- current task
- time
- processor
- speed
- 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 - Fee Related
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Abstract
本发明公开了一种嵌入式系统实时任务的调度方法,1、根据实时任务集中各任务的优先级顺序和截止时间确定就绪任务队列,并选择就绪任务队列的队首为当前任务;2、确定调度所述当前任务的速度;3、采用该速度调度当前任务,若当前任务运行结束或当前任务的截止时间到达,则进入步骤4;4、释放当前任务,若当前任务为就绪任务队列的队尾任务,则结束任务的调度,否则选择就绪任务队列中当前任务的下一个任务为新的当前任务,并回到步骤2。本发明所述技术方案在满足嵌入式系统实时性要求的同时还能实现减少系统能量消耗的目的。
Description
技术领域
本发明涉及一种嵌入式系统任务的调度方法,尤其是一种嵌入式系统实时任务的调度方法。
背景技术
嵌入式系统的电池可用能量有限,能量消耗已成为其中重要的性能参数,并且嵌入式系统经常被放置在遥远的区域,当系统中的能量耗尽时,更换的代价非常昂贵。所以,将能量消耗最小化从而使电池或电池组的寿命最大化对于嵌入式系统至关重要。
大部分嵌入式系统具有一定的实时性,这些系统必须要满足功能性和实时性两方面的需求。也就是说,这些系统的正确性不仅依赖于计算的正确性,还依赖于它是否能够按时完成任务。所以,系统中任何的调度策略都必须要满足任务调度的及时性,保证所有任务能够在截止时间前完成。能量消耗最小化为这些实时性设计增加了新的要求。虽然嵌入式系统的能量消耗最小化非常重要,但能量消耗必须满足系统实时的相应需要。
保存能量的一种途径是采用低功耗设计方法。从体系架构到晶体管,许多低功耗设计技术已经为不同的设计层次所开发。在系统层空闲功能单元可以关闭电源,基于电源优化技术的预言性停机技术在许多文献中被提及。尽管这些方法容易实现,但它们必须要与带有固定电源电压的系统相匹配。目前大多数嵌入式处理器都装备了至少能为系统提供两种不同电压的电源供给,但上述方法不能使用这一特性。而且,由于这些方法通常在设计/合成阶段被采用并固化在系统中,使用更改它们很不方便,因而无法适应变化的工作流环境。
另一种节约能量的途径是采用DPM(Dynamic Power Management,动态电源管理)技术,减少能量消耗由操作系统负责。由于针对桌面和笔记本系统的ACPI标准(Advanced Configuration and PowerInterface,高级配置与电源接口)的引入,DPM基本上是可行的。ACPI标准允许操作系统通过系统调用来控制硬件电源状态,从而有效地将功耗减少的责任从硬件(基本输入输出系统)转移到软件(操作系统)。ACPI标准有助于增加可变速处理器的可用性,这些处理器的速度可以通过操作系统的系统调用动态改变。
在带有可变速处理器的嵌入式系统中,操作系统可通过适当地调度任务减少能量消耗。众所周知,CMOS(Complementary Metal-OxideSemiconductor,互补金属氧化物半导体)电路的功耗与处理器电压存在着二次方的关系,因而任务每个指令周期所消耗的电量与处理器电压的平方成正比。换句话说,执行任务所产生的功耗随着处理器电压的平方与该任务所包含的指令周期数目的乘积正比例变化。而大多数情况下,处理器速度的提高是通过增加电压供给实现的。同样,当处理器的工作量低时,操作系统可以潜在地减少对处理器的电压供给,利用能耗对处理器电压的平方依赖可以有效减少能耗。
目前,采用DPM技术减少能量消耗的系统种类繁多,具体的实现方法也各有特色,大多数都基于处理器可以在连续变化的电压层次上运行。然而,在现有公开的方法中,有一些主要是针对系统低功耗设计合成,并不能解决任务在执行期间能量最小化的问题。还有一部分实现方法只是单纯地从减少功耗的角度来研究DPM技术,并没有把降低功耗与满足系统实时性结合起来,无法弄清这些方法如何在嵌入式实时系统中应用和它们能获得怎样有效的结果。
发明内容
本发明要解决的技术问题是提供一种在满足嵌入式系统实时性要求的同时能减少系统能量消耗的嵌入式系统实时任务的调度方法。
本发明解决其技术问题所采用的技术方案是:
一种嵌入式系统实时任务的调度方法,包括以下步骤:
1.1根据实时任务集中各任务的优先级顺序和截止时间确定就绪任务队列,并选择所述就绪任务队列的队首任务为当前任务;
1.2根据所述当前任务的截止时间和处理器可提供的速率确定调度所述当前任务的速度;
1.3采用所述速度调度所述当前任务,若所述当前任务运行结束或所述当前任务的截止时间到达,则进入步骤1.4;
1.4释放所述当前任务,若所述当前任务为所述就绪任务队列的队尾任务,则结束任务的调度,否则选择所述就绪任务队列中所述当前任务的下一个任务为新的当前任务,并回到步骤1.2。
上述方案中,所述步骤1.1中确定就绪任务队列包括以下步骤:
2.1根据所述实时任务集中各任务的优先级顺序按照递减的顺序排列确定任务优先级队列;
2.2在所述任务优先级队列中,对于具有相同优先级的等优先级任务,根据所述各等优先级任务的截止时间按照递增的顺序进行排列以确定所述就绪任务队列。
上述方案中,所述步骤1.2包括以下步骤:
3.1获取所述当前任务的任务执行长度,根据处理器提供的速率按照由高到低的顺序计算得到所述当前任务的执行时间集;
3.2获取所述当前任务的截止时间,将所述执行时间集中各执行时间与所述截止时间相比较,选择小于所述截止时间的执行时间组成备选执行时间集;
3.3从所述备选执行时间集中选择与所述截止时间差值的绝对值最小的执行时间所对应的处理器速度为调度所述当前任务的速度。
上述方案中,所述的处理器为可变电压处理器。
本发明的有益效果主要表现在:本发明提供的技术方案使用简单的调度策略而无需其它的辅助结构,从而减少了对内存和存储空间的需求。通过使用快速的优先级排序方法和高效的处理器电压分配算法,使得调度过程中延时稳定,运行高效,并且提高了操作系统电源管理的灵活性。通过这些技术特点达到在满足嵌入式系统实时性要求的同时还减少系统能量消耗的目的。
附图说明
图1为本发明所述调度方法的流程图;
图2为KLinux的软件体系结构图;
图3为本发明一实施例的任务集调度状态图。
具体实施方式
本发明所提出的方法是嵌入式实时操作系统内核的一部分,下面以Embsys KLinux嵌入式实时操作系统,基于AMD Athlon4处理器的硬件平台环境为例,说明本发明任务调度方法的实现方案。
AMD(超威半导体)的PowerNow!技术运用分段式的低频率和低电压,能够提供了可变的处理器运行速度,大大提高了能量运用的效率。硬件平台采用的是1.1GHz的AMD移动Athlon4处理器,它的核心电压可以在1.2V到1.4V的范围内以0.05V的增量连续变化。尽管更低的时钟频率可以使用,但对于每个核心电压都有一个预定的最大时钟频率。表1为Athlon4处理器电源状态设置情况。本实施例即使用表1所示的电源状态和电压设置。
表1
在不同电源状态上产生的功耗可以采用CMOS功耗等式来计算,即 ,等式中P是能量,f是运行频率,a是平均转换频率,C是转换电容,Vdd是运行电压。对于相同的处理器和软件,转换容量和平均转换频率是固定的,所以我们只需要考虑运行频率与核心电压的平方。由表1所列数据通过计算可知,电源状态2所产生的功耗大约是电源状态1所产生功耗的76%,电源状态3产生的功耗则占状态1的51%,而该处理器12V的最低电源配置仅仅消耗最高电源状态20%的能量。可见,处理器电源电压的降低会大大减少系统功耗。
嵌入式系统能量驱动的主要目标是为了在应用程序、操作系统、底层硬件之间产生连续的对话环境,这个对话环境能够在可行的能量限制下建立功能和性能的预期,中兴Embsys KLinux操作系统就是基于这种理解而实现的,下面我们简单描述一下KLinux的软件体系结构。
如图2所示,运行在AMD硬件平台上的KLinux嵌入式实时操作系统采用分层式体系结构,主要的软件层次从上到下分别包括:能量驱动API(Application Programmer Interface,应用程序接口)、K-Libc(KLinux C函数)库;KTH(Kernel Thread,内核线程)库、修改后的Linux标准内核以及能量驱动HAL(Hardware Abstract Layer,硬件抽象层)。总的说来,上面的软件层作为操作系统和应用程序之间的接口,下面的软件层为操作系统提供了与能量相关的硬件抽象,这两层通过相应的能量驱动操作系统服务连接。
在最上面的软件层,能量驱动API为应用程序提供了关于能量驱动的功能调用,这部分的某些功能是特别针对于特定的能量调度技术;嵌入式应用程序调用API接口函数并利用一系列的服务,使得在执行自己特定的功能中更为有效地使用能量。能量驱动API层包含以下主要的函数接口:用于设置与实时性相关的参数的创建任务实例和类型接口、通知任务开始和结束接口和通知应用程序由操作系统预测的执行时间和告知操作系统由应用程序估计的预测执行时间接口。
K-Libc库是标准Libc库的一个子集,它的主要功能是为上层应用提供标准的C语言函数库,方便应用程序更有效地调用操作系统功能。
KTH库负责嵌入式强实时操作系统所需的基本功能管理,包括线程管理、信号量管理、内存管理、日志机制以及电源管理。KTH库为应用程序提供了一条通道,以便访问操作系统内核和能量驱动相关操作系统服务。无法在操作系统内核中实现的某些功能也在这层被实现(如:创建可以帮助操作系统管理电源的线程)。在KTH库中,提供了操作与能量驱动调度策略相关信息的函数,这些调度策略在内核中运行。
为提供修改后的操作系统内核与底层能量驱动硬件之间的接口,KLinux中还定义了能量驱动HAL。能量驱动HAL为操作系统提供了使用与能量相关硬件的“手柄”,这种方式也使得能量驱动HAL独立于硬件。能量驱动HAL函数可以控制处理器频率、电压层次和系统提供的低能量状态。这些函数能够被操作系统内核的调度器所调用,用于降低处理器速度或关闭处理器。
给出一个在系统中运行的实时任务集,任务集中每一个任务都包含以下参数:
(1)截止时间,任务的终止时间,在此之后,若该任务还未完成,也不再调度;
(2)任务执行长度,由任务所包含的指令周期数目来表示;
(3)任务优先级,指示任务重要性和调配可用性的标记。
则如图2所示,实时任务的调度按下述方法进行:
首先,根据实时任务集中各任务的优先级顺序按照递减的顺序排列确定任务优先级队列,并在任务优先级队列中,对于具有相同优先级的等优先级任务,根据各等优先级任务的截止时间按照递增的顺序进行排列以确定所述就绪任务队列。此时,KLinux系统内核的调度器会选择任务优先级队列中的队首任务并准备运行。
在该当前任务运行之前,一个检查线程会被启动:首先,获取当前任务的任务执行长度及截止时间后,根据可变电压处理器提供的速率按照由高到低的顺序计算得到当前任务的执行时间集,并将执行时间集中各执行时间与截止时间相比较,选择小于截止时间的执行时间组成备选执行时间集;最后,从备选执行时间集中选择与截止时间差值的绝对值最小的执行时间所对应的可变电压处理器速度为调度所述当前任务的速度。
检查线程结束后,KLinux系统内核的调度器为当前任务分配与可变电压处理器调度当前任务的速度相应的电压,同时开始执行当前任务,在任务执行期间,其它任务保持就绪状态。若当前任务运行结束或当前任务的截止时间到达,则释放当前任务。此时,若当前任务为就绪任务队列的队尾,则结束任务的调度,否则调度器将选择就绪任务队列中当前任务的下一个任务,作为新的当前任务并再次准备运行。
测试中采用在单电源状态下运行结果作为比较版本,即在单一的电源状态1上运行实时任务集,这样能同时测试出完成一定工作量时系统所需花费的最大能量开销。试验中,分别基于2速可变电压处理器和、3速可变电压处理器对本发明进行了测试,通过这种方式可以更好地观察增加额外电源状态时的准确性和有效性。2速处理器版本使用了700MHZ和1100MHz的处理器运行频率,3速处理器版本则在2速版本的基础上增加了900MHz的处理器运行频率。处理器的利用率从10%到80%以10%的增量变化。附图3为3速处理器版本下一个具有14个任务的随机任务集的运行状态,从图中可以看出,本发明方法可有效地控制运行任务的能量消耗并满足任务的截止时间。测试结果表明,本发明方法在2速和3速处理器环境下产生的功耗要比无电源管理调度策略产生的功耗低5%-20%,大大减少了系统能量消耗。同时,3速版本能够比2速版本更准确地控制电量,进一步减小系统功耗。
Claims (2)
1.一种嵌入式系统实时任务的调度方法,其特征在于包括以下步骤:
1.1根据实时任务集中各任务的优先级顺序和截止时间确定就绪任务队列,即按照递减的顺序排列确定任务优先级队列,对于具有相同优先级的等优先级任务,按照递增的截止时间顺序进行排列以确定所述就绪任务队列,并选择所述就绪任务队列的队首任务为当前任务;
1.2根据所述当前任务的截止时间和处理器可提供的速率确定调度所述当前任务的速度;即根据处理器提供的速率按照由高到低的顺序计算得到当前任务的执行时间集,并将执行时间集中各执行时间与截止时间相比较,选择小于截止时间的执行时间组成备选执行时间集;最后,从备选执行时间集中选择与截止时间差值的绝对值最小的执行时间所对应的处理器速度为调度所述当前任务的速度;
1.3采用所述速度调度所述当前任务,若所述当前任务运行结束或所述当前任务的截止时间到达,则进入步骤1.4;
1.4释放所述当前任务,若所述当前任务为所述就绪任务队列的队尾任务,则结束任务的调度,否则选择所述就绪任务队列中所述当前任务的下一个任务为新的当前任务,并回到步骤1.2。
2.如权利要求1所述的嵌入式系统实时任务的调度方法,其特征在于:所述的处理器为可变电压处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100740769A CN101290585B (zh) | 2007-04-19 | 2007-04-19 | 一种嵌入式系统实时任务的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100740769A CN101290585B (zh) | 2007-04-19 | 2007-04-19 | 一种嵌入式系统实时任务的调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101290585A CN101290585A (zh) | 2008-10-22 |
CN101290585B true CN101290585B (zh) | 2011-09-21 |
Family
ID=40034852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100740769A Expired - Fee Related CN101290585B (zh) | 2007-04-19 | 2007-04-19 | 一种嵌入式系统实时任务的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101290585B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499019B (zh) * | 2009-03-24 | 2011-01-12 | 武汉烽火网络有限责任公司 | 电信级以太网系统及用于该系统的实时任务调度方法 |
CN101923487A (zh) * | 2010-08-06 | 2010-12-22 | 西华师范大学 | 一种综合嵌入式实时周期任务调度方法 |
CN102455934A (zh) * | 2010-10-25 | 2012-05-16 | 北大方正集团有限公司 | 工作流的调度方法和装置 |
CN102514080A (zh) * | 2011-12-28 | 2012-06-27 | 刘国文 | 一种注浆机的控制方法及系统 |
CN102541642B (zh) * | 2011-12-30 | 2013-12-18 | 中国科学院软件研究所 | 一种增强实时性能的任务管理方法 |
CN103888827A (zh) * | 2012-12-20 | 2014-06-25 | 中山大学深圳研究院 | 一种基于嵌入式内核的数字电视应用管理层系统及方法 |
CN104486250A (zh) * | 2014-12-03 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种面向Deadline满足时间确定性的调度方法 |
CN104536835B (zh) * | 2014-12-12 | 2018-02-06 | 北京控制工程研究所 | 一种热备份实时控制系统中自适应任务调度方法 |
CN107291548B (zh) * | 2016-03-31 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 任务的资源调度方法及装置 |
CN107544886A (zh) * | 2016-06-27 | 2018-01-05 | 上海中兴软件有限责任公司 | 一种模块流程化调度方法及装置 |
CN106292976A (zh) * | 2016-07-21 | 2017-01-04 | 张升泽 | 电子芯片内部电压分配方法及系统 |
CN106293007B (zh) * | 2016-08-16 | 2018-08-21 | 华中科技大学 | 一种支持非抢占实时任务集的节能调度方法 |
CN107333282B (zh) * | 2017-06-05 | 2021-02-19 | 惠州Tcl移动通信有限公司 | 一种基于gpp的5g终端通用平台优化方法及系统 |
CN110673937B (zh) * | 2019-09-19 | 2022-11-15 | 惠州志顺电子实业有限公司 | 单片机及其同步异步控制方法 |
CN111176821A (zh) * | 2019-12-31 | 2020-05-19 | 青岛海尔科技有限公司 | 操作系统的多任务调度方法及装置 |
CN113672412A (zh) * | 2021-08-31 | 2021-11-19 | 杭州安恒信息安全技术有限公司 | linux应用libc库调用方法、系统、装置及存储介质 |
CN113722076B (zh) * | 2021-10-29 | 2022-03-29 | 华南理工大学 | 基于QoS和能耗协同优化的实时工作流调度方法 |
CN117421098A (zh) * | 2022-07-11 | 2024-01-19 | 中科寒武纪科技股份有限公司 | 用于任务调度的方法、设备、板卡及其计算机可读存储介质 |
CN115695330B (zh) * | 2022-11-15 | 2023-04-28 | 北京凯思昊鹏软件工程技术有限公司 | 嵌入式系统中微程的调度系统、方法、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1075021A (zh) * | 1992-01-31 | 1993-08-04 | 国际商业机器公司 | 多媒体计算机操作系统及方法 |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
CN1615471A (zh) * | 2000-06-27 | 2005-05-11 | 皇家菲利浦电子有限公司 | 确定一个进度表的方法、调度器和系统 |
CN1877534A (zh) * | 2006-06-30 | 2006-12-13 | 浙江大学 | 一种嵌入式实时文件系统任务调度的实现方法 |
-
2007
- 2007-04-19 CN CN2007100740769A patent/CN101290585B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1075021A (zh) * | 1992-01-31 | 1993-08-04 | 国际商业机器公司 | 多媒体计算机操作系统及方法 |
CN1615471A (zh) * | 2000-06-27 | 2005-05-11 | 皇家菲利浦电子有限公司 | 确定一个进度表的方法、调度器和系统 |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
CN1877534A (zh) * | 2006-06-30 | 2006-12-13 | 浙江大学 | 一种嵌入式实时文件系统任务调度的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101290585A (zh) | 2008-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101290585B (zh) | 一种嵌入式系统实时任务的调度方法 | |
US8190939B2 (en) | Reducing power consumption of computing devices by forecasting computing performance needs | |
CN100416463C (zh) | 面向嵌入式系统低功耗实时任务参数模型调度方法 | |
Kim et al. | Racing and pacing to idle: Theoretical and empirical analysis of energy optimization heuristics | |
Spiliopoulos et al. | Green governors: A framework for continuously adaptive dvfs | |
Ghor et al. | A real-time scheduling framework for embedded systems with environmental energy harvesting | |
KR101629155B1 (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
CN101379453B (zh) | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 | |
AlEnawy et al. | Energy-constrained scheduling for weakly-hard real-time systems | |
Bhatti et al. | An inter-task real time DVFS scheme for multiprocessor embedded systems | |
CN103597449A (zh) | 操作系统解耦的异构计算 | |
CN101493761B (zh) | 处理器流水线处理指令的方法及相应的处理器 | |
CN109324880A (zh) | 一种适用于实时系统周期任务模型的低功耗调度方法 | |
Shieh et al. | Energy and transition-aware runtime task scheduling for multicore processors | |
Liu et al. | A waterfall model to achieve energy efficient tasks mapping for large scale GPU clusters | |
Shafique et al. | Agent-based distributed power management for Kilo-core processors: Special session:“Keeping Kilo-core chips cool: New directions and emerging solutions” | |
Xiang et al. | Run-time management for multicore embedded systems with energy harvesting | |
Qi et al. | Energy efficient block-partitioned multicore processors for parallel applications | |
CN103049314A (zh) | 一种开放式系统实时调度方法 | |
CN101290509B (zh) | 一种嵌入式系统低功耗实时任务的调度方法 | |
CN101685335A (zh) | 基于seda的应用服务器及其节能装置和方法 | |
Gruian et al. | Uncertainty-based scheduling: energy-efficient ordering for tasks with variable execution time | |
Huo et al. | An energy efficient task scheduling scheme for heterogeneous GPU-enhanced clusters | |
He et al. | Enhanced schedulability analysis of hard real-time systems on power manageable multi-core platforms | |
Tchamgoue et al. | Dynamic voltage scaling for power-aware hierarchical real-time scheduling framework |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110921 Termination date: 20150419 |
|
EXPY | Termination of patent right or utility model |