CN103365710B - 实时任务调度装置和方法以及计算机系统 - Google Patents
实时任务调度装置和方法以及计算机系统 Download PDFInfo
- Publication number
- CN103365710B CN103365710B CN201210101734.XA CN201210101734A CN103365710B CN 103365710 B CN103365710 B CN 103365710B CN 201210101734 A CN201210101734 A CN 201210101734A CN 103365710 B CN103365710 B CN 103365710B
- Authority
- CN
- China
- Prior art keywords
- task
- time
- real
- current
- frequency
- 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
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
Abstract
提供了实时任务调度装置和方法以及计算机系统。该实时任务调度装置用于执行计算机系统中包括多个实时任务的任务集,包括:任务参数获取单元,用于获取所述任务集中每个实时任务的初始时间参数;状态参数记录单元,用于记录所述每个实时任务执行时的状态参数;以及实时任务调度单元,用于在要执行所述任务集中的当前任务时,依据所获取的每个实时任务的初始时间参数和所记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。通过根据本发明实施例的实时任务调度装置和方法以及计算机系统,可以在保证任务集中的任务的实时性的同时,使任务在执行过程中的系统能耗最小化。
Description
技术领域
本发明涉及计算机系统领域,且更具体地说涉及实时任务调度装置和方法以及计算机系统。
背景技术
当前的计算机系统中的一类为嵌入式系统,并且,由于嵌入式系统一般都在比较特定的环境下工作,所以系统的供电方式受到很大的局限性。由于大多数嵌入式系统都是采用电池供电,且电池的容量有限,因此系统持续正常工作的时间比较短,并且更换电池非常麻烦。因此,如果从系统的任务调度的角度来看,在保证系统实时性的前提下,应该尽可能地减少系统的能耗,从而延长系统工作时间。目前,减少嵌入式系统功耗的常用技术是动态能耗管理(DPM:Dynamic Power Management)技术和动态调频(DVS:Dynamic VoltageScaling)技术。并且,现在的绝大多数处理都支持这两种节能技术。
DPM是通过改变处理器状态来减少能耗的方法,具体地说,当处理器有任务要处理时,DPM使处理器处于工作状态,以保证这些任务在规定的截止时间内完成,而当处理器没有任务要处理时,DPM使处理器处于休眠状态,从而使嵌入式系统的能耗降低。但是,在处理器处于休眠状态时,只能保存嵌入式系统的基本执行环境,不能处理任务。
DVS是通过改变处理器的频率来实现节能的方法,具体地说,当处理器的负载比较重时,DVS提高处理器的频率,从而保证这些任务在规定的截止时间内完成,而当处理器的负载比较低时,DVS降低处理器的频率,这样既能保证任务的实时性,又能够减少能耗。与DPM不同的是,无论在高频率还是低频率,处理器都会继续处理任务,而不会中止。
在上述嵌入式系统中,实时任务的调度算法是根据嵌入式系统的负载来动态地调整处理器的频率。这类算法通过分析任务属性,而在保证实时任务的截止时间的前提下,利用DVS技术使处理器保持最低速度执行,从而达到降低系统功耗的目的。因此,随着嵌入式系统的广泛应用以及系统中对实时任务的处理要求的提高,需要能够有效地降低系统功耗的实时任务调度装置和方法。
发明内容
因此,针对上述现有技术中存在的问题和需求做出本发明。
本发明的目的是提供实时任务调度装置和方法以及计算机系统,其能够在保证任务的实时性的同时,使得任务执行过程中的功耗降低,从而节省整个系统的功耗。
根据本发明实施例的一个方面,提供了一种实时任务调度装置,用于执行计算机系统中包括多个实时任务的任务集,所述实时任务调度装置包括:任务参数获取单元,用于获取所述任务集中每个实时任务的初始时间参数;状态参数记录单元,用于记录所述每个实时任务执行时的状态参数;以及,实时任务调度单元,用于在要执行所述任务集中的当前任务时,依据所述任务参数获取单元获取的每个实时任务的初始时间参数和所述状态参数记录单元记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
在上述实时任务调度装置中,所述实时任务调度单元具体包括:任务选择模块,用于从需要执行的任务集中选择要执行的当前任务;理论完成时刻计算模块,用于计算前一任务的理论完成时刻;单独频率调整模块,用于依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及任务执行模块,用于以任务集中所有任务的单独执行频率之和来执行当前任务。
在上述实时任务调度装置中,所述任务参数获取单元具体用于获取每个任务i的最坏执行周期数Ci以及工作到达间隔时间Pi。
在上述实时任务调度装置中,所述状态参数记录单元具体记录每个任务i的如下参数:单独执行频率fi;截止时间Di;最近一次执行的开始时间STi;以及有效性标识位Vi。
在上述实时任务调度装置中,当任务集新到达时,所述单独频率调整模块依据如下公式调整所述任务集中的每个任务i的单独频率fi:所述状态参数记录单元记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;所述任务选择模块从所述任务集中选择要执行的当前任务k;所述状态参数记录单元记录所述任务k的STk=current_time;以及所述任务执行模块以频率执行任务k。
在上述实时任务调度装置中,当任意一个任务i完成时,所述状态参数记录单元修改任务i的状态参数:Vi=0;所述理论完成时刻计算模块计算前一任务i的理论完成时刻tc:所述任务选择模块从所述任务集中选择要执行的当前任务k;所述单独频率调整模块计算所述当前任务k单独执行频率fk:其中current_time是所述计算机系统的当前时间;所述状态参数记录单元记录所述任务k的STk=current_time;以及所述任务执行模块以频率执行任务k。
在上述实时任务调度装置中,所述任务选择模块基于最早截止时间优先策略从有效性标识位Vi=1的所有任务中选择要执行的当前任务。
在上述实时任务调度装置中,所述任务集中的实时任务包括硬实时任务和软实时任务,在任务i是硬实时任务的情况下,所述任务参数获取单元获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;以及在任务i是软实时任务的情况下,所述任务参数获取单元获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi;
在上述实时任务调度装置中,所述状态参数记录单元进一步记录每个任务i的如下参数:实时性标识位Ri:以及实际执行周期数Ai。
在上述实时任务调度装置中,当任务集新到达时,在所述任务集中的任务i为软实时任务的情况下,所述任务参数获取单元获取所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;所述单独频率调整模块依据如下公式调整所述任务集中的每个任务i的单独频率fi:其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数。
在上述实时任务调度装置中,当任意一个任务i完成时,在所述任务集中的任务i为软实时任务的情况下,所述状态参数记录单元记录所述任务i的实际执行周期数Ai。
根据本发明实施例的另一方面,提供了一种实时任务调度方法,用于执行计算机系统中包括多个实时任务的任务集,所述实时任务调度方法包括:获取所述任务集中每个实时任务的初始时间参数;记录所述每个实时任务执行时的状态参数;以及,在要执行所述任务集中的当前任务时,依据所获取的每个实时任务的初始时间参数和所记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
在上述实时任务调度方法中,所述根据所述完成时刻调整当前任务的执行频率的步骤具体包括:从需要执行的任务集中选择要执行的当前任务;计算前一任务的理论完成时刻;依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及以任务集中所有任务的单独执行频率之和来执行当前任务。
在上述实时任务调度方法中,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取每个任务i的最坏执行周期数Ci以及工作到达间隔时间Pi。
在上述实时任务调度方法中,所述记录所述每个实时任务执行时的状态参数的步骤具体记录每个任务i的如下参数:单独执行频率fi;截止时间Di;最近一次执行的开始时间STi;以及有效性标识位Vi。
在上述实时任务调度方法中,当任务集新到达时,所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤具体依据如下公式调整所述任务集中的每个任务i的单独频率fi:所述记录所述每个实时任务执行时的状态参数的步骤具体记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;所述从需要执行的任务集中选择要执行的当前任务的步骤从所述任务集中选择要执行的当前任务k;所述记录所述每个实时任务执行时的状态参数的步骤记录所述任务k的STk=current_time;以及所述以任务集中所有任务的单独执行频率之和来执行当前任务的步骤具体以频率执行任务k。
在上述实时任务调度方法中,当任意一个任务i完成时,所述记录所述每个实时任务执行时的状态参数的步骤修改任务i的状态参数:Vi=0;所述计算前一任务的理论完成时刻的步骤具体计算模块计算前一任务i的理论完成时刻tc:所述从需要执行的任务集中选择要执行的当前任务的步骤从所述任务集中选择要执行的当前任务k;所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤计算所述当前任务k单独执行频率fk:其中current_time是所述计算机系统的当前时间;所述记录所述每个实时任务执行时的状态参数的步骤记录所述任务k的STk=current_time;以及所以任务集中所有任务的单独执行频率之和来执行当前任务的步骤具体以频率执行任务k。
在上述实时任务调度方法中,所从需要执行的任务集中选择要执行的当前任务的步骤具体基于最早截止时间优先策略从有效性标识位Vi=1的所有任务中选择要执行的当前任务。
在上述实时任务调度方法中,所述任务集中的实时任务包括硬实时任务和软实时任务,在任务i是硬实时任务的情况下,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;以及在任务i是软实时任务的情况下,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi;
在上述实时任务调度方法中,所述记录所述每个实时任务执行时的状态参数的步骤进一步记录每个任务i的如下参数:实时性标识位Ri:以及实际执行周期数Ai。
在上述实时任务调度方法中,当任务集新到达时,在所述任务集中的任务i为软实时任务的情况下,所述记录所述每个实时任务执行时的状态参数的步骤具体记录所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤具体依据如下公式调整所述任务集中的每个任务i的单独频率fi:其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数。
在上述实时任务调度方法中,当任意一个任务i完成时,在所述任务集中的任务i为软实时任务的情况下,所述记录所述每个实时任务执行时的状态参数的步骤具体记录所述任务i的实际执行周期数Ai。
根据本发明实施例的又一方面,提供了一种计算机系统,其中执行包括多个实时任务的任务集,所述计算机系统包括:控制器,被配置为:获取所述任务集中每个实时任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;所述记录所述每个实时任务i执行时的如下状态参数:单独执行频率fi;截止时间Di;最近一次执行的开始时间STi;以及有效性标识位Vi;当任务集新到达时:依据如下公式调整所述任务集中的每个任务i的单独频率fi:记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;从所述任务集中选择要执行的当前任务k;记录所述任务k的STk=current_time;以及以频率执行任务k;当任意一个任务i完成时:修改任务i的状态参数:Vi=0;计算前一任务i的理论完成时刻tc:从所述任务集中选择要执行的当前任务k;计算所述当前任务k单独执行频率fk:其中current_time是所述计算机系统的当前时间;记录所述任务k的STk=current_time;以及以频率执行任务k。
在上述计算机系统中,所述任务集中的实时任务包括硬实时任务和软实时任务,所述控制器配置为:在任务i是硬实时任务的情况下,获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;在任务i是软实时任务的情况下,获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi;记录每个任务i的如下参数:实时性标识位Ri:以及实际执行周期数Ai;当任务集新到达时:在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;依据如下公式调整所述任务集中的每个任务i的单独频率fi:其中在任务i是软实时任务的情况下,Ci是所述预测执行时间,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数;当任意一个任务i完成时:在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的实际执行周期数Ai。
通过根据本发明实施例的实时任务调度装置和方法以及计算机系统,可以在保证任务集中的任务的实时性的同时,使任务在执行过程中的系统能耗最小化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是示出了根据本发明第一实施例的实时任务调度装置的示意性框图;
图2是示出了根据本发明第一实施例的实时任务调度单元的示意性框图;
图3是示出了根据本发明第二实施例的实时任务调度装置的示意性框图;
图4是示出了根据本发明第二实施例的实时任务调度单元的示意性框图;
图5是示出根据本发明实施例的实时任务调度方法在任务集新到达的情况下的示意性流程图;以及
图6是示出根据本发明实施例的实时任务调度方法在任意一个任务完成的情况下的示意性流程图。
具体实施方式
下面,将结合附图详细描述根据本发明实施例的实时任务调度装置和方法以及计算机系统。
根据本发明的第一实施例,提供了一种实时任务调度装置,该装置包括:任务参数获取单元,用于获取系统的任务集中每个实时任务的初始时间参数;状态参数记录单元,用于记录系统中每个实时任务执行时的状态参数;以及,实时任务调度单元,用于在要执行所述任务集中的当前任务时,依据任务参数获取单元获取的每个实时任务的初始时间参数和状态参数记录单元记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
这样,通过根据本发明第一实施例的实时任务调度装置,可以在前面一个任务的完成时间超过其截止时间的情况下,通过调整后面一个任务的执行频率,来减少该任务的超时对整个系统的实时性造成的影响,从而在保证系统中任务集的执行的实时性的同时,降低系统的功耗。
图1是示出了根据本发明第一实施例的实时任务调度装置的示意性框图。如图1所示,根据本发明第一实施例的实时任务调度装置100包括:任务参数获取单元101,用于获取系统中实时任务的初始时间参数;状态参数记录单元102,用于记录系统中实时任务执行时的状态参数;以及,实时任务调度单元103,用于在要执行所述任务集中的当前任务时,依据任务参数获取单元101获取的每个实时任务的初始时间参数和状态参数记录单元102记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
下面,将详细描述图1所示的实时任务调度装置100的每个功能单元。
在根据本发明实施例的嵌入式系统的工作环境中,假设总共有n个任务需要执行,则任务的集合可以表示为J={J0,J1,...,Jn-1}。任务参数获取单元101用于获取每个任务Ji的最坏执行周期数Ci和工作到达间隔时间Pi。这里,任务的最坏执行周期数Ci是在计算机领域中的一个常见概念,其是一个无量纲的值。并且,由于在嵌入式系统中,执行的任务通常都是周期性任务,因此周期性任务到达的间隔时间定义为Pi。在本发明的实施例中,在任务是周期性任务的情况下,任务的相对截止时间等于工作到达间隔时间。这里,在本发明的实施例中,任务参数获取单元101可以通过对应用程序的分析来获得每个任务的上述初始时间参数。
由于一个任务执行时的状态参数,例如,剩余工作量、剩余可用时间等是在其执行过程中动态改变的,为了设计有效的任务调度算法来保证系统中各个任务的实时性,需要记录每个任务执行时的状态。在根据本发明实施例的状态参数记录单元102中,设置其记录每个任务i的如下参数:
单独执行频率fi:当没有其它任务时,任务i以该频率fi执行;
截止时间Di:任务i的绝对截止时间,即任务执行的可允许的最长时间,其不同于上述的任务i的相对截止时间;
最近一次执行的开始时间STi:每次根据本发明实施例的实时任务调度装置令任务i执行时,就将STi更新为当前系统时间;
有效性标识位Vi:当任务i的执行未完成时,Vi为1;当任务i的工作完成时,Vi为0。
在本发明的实施例中,如果任务i是硬实时任务,则其必须在Di之前完成,而如果任务i是软实时任务,则其完成时间可以超过Di,关于硬实时任务和软实时任务之间的单独处理将在后面进行具体描述。在下文中,假定每个任务i都是硬实时任务,从而必须在Di之前完成任务i的执行。
在根据本发明实施例的实时任务调度装置中,当任意一个任务集新到达并且在当前系统中并没有任务正在执行的情况,不需要考虑前一任务的完成时间,而可以直接由上述调度装置对该任务集中的任务的执行进行调度;或者,当在系统中多个任务正在顺序执行的情况,后一任务在前一任务完成之后开始执行,这时,就需要考虑前一任务的完成时间,从而触发上述调度装置进行调度。这里,在本发明的实施例中,调度的主要内容包括:修改任务执行时的状态参数、选择下一个任务以及计算下一个任务的执行频率。下面,将参考图2,以任务集新到达和任意一个任务完成时的情况为例,对根据本发明实施例的实时任务调度装置100中的实时任务调度单元103的功能和操作进行详细介绍。
图2是示出根据本发明第一实施例的实时任务调度单元的示意性框图。如图2所示,实时任务调度单元103进一步包括:任务选择模块110,用于从需要执行的任务集中选择要执行的当前任务;理论完成时刻计算模块111,用于计算前一任务的理论完成时刻;单独频率调整模块112,用于依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及任务执行模块113,用于与任务集中所有任务的单独执行频率之和来执行当前任务。
首先,当任务集到达时,实时任务调度单元103执行的具体操作如下:
1)由单独频率调整模块112修改任务集中的每个任务i的状态参数fi:其中Ci是由时间参数获取单元101获取的任务i的最坏执行周期数,且Pi是任务i的工作到达的间隔时间;并且,状态参数记录单元102记录截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是系统的当前时间;
2)由任务选择模块110根据最早截止时间优先(EDF:)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,这里,最早截止时间优先策略是计算机领域的常用策略,为了避免冗余便不再详细介绍,这里,假设被选择出来的任务是任务k;
3)由状态参数记录单元102记录任务k的STk=current_time;
4)由任务执行模块113以频率执行任务k。
这里,当任务集新到达时,由于没有受到先前完成的任务的时间的影响,实际上不改变任务集中的每个任务i的初始时间参数,并且依据当前时间来记录每个任务i的状态参数。并且,通过EDF来选择下一个需要执行的任务k,并且以所有任务的单独执行的频率fi之和来执行任务k。这时,实际上理论完成时刻计算模块111和单独频率调整模块112仅需要以初始时间参数来调整任务集中每一任务的单独执行频率即可,而并没有涉及前一任务的理论完成时刻的计算。
并且,当任务集新到达时,其每个任务的截止时间是固定的,即Di=current_time+Pi,但是其最后一次执行的开始时间STi则是不确定的,因为在任务集到达后,并不一定会被立即执行。因此,当任务真正开始执行时,再将STi更新为当时的计算机系统的时间,即记录选择出来要执行的任务k的STk=current_time。
之后,当任意一个任务i完成时,实时任务调度单元103执行的具体操作如下:
1)由状态参数记录单元102修改任务i的状态参数:Vi=0;
2)由理论完成时刻计算模块111计算任务i的理论完成时刻tc:
3)由任务选择模块110根据最早截止时间优先(EDF)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,假设被选择出来的任务是任务k;
4)由单独频率调整模块112计算任务k单独执行频率fk:
其中current_time是系统的当前时间;
5)由状态参数记录单元102设置任务k的STk=current_time;
6)由任务执行模块113以频率执行任务k。
这里,当任意一个任务i完成时,首先计算该任务i的理论完成时刻,并在根据EDF选择了下一个需要执行的任务k之后,根据该理论完成时刻调整任务k的单独执行频率fk,并且以所有任务的单独执行的频率fi之和来执行任务k。这样,实际上根据前一任务的理论完成时刻来调整下一任务的执行频率。
需要注意的是,上述current_time是系统的当前时间,因此是一个变量,在新任务集到达时,这个系统的当前时间就是任务集到达的时间,此时任务集中所有任务的截止时间Di=current_time+Pi。此后,当第一个任务完成之后,从第二个任务开始,其最近一次执行的开始时间STi就不再是任务集到达的时间,而是前一任务的完成时间。相应地,在完成时刻tc的计算中,Di-STi的值也就不是该任务的工作到达的间隔时间Pi,而是取决于前一任务的完成时间而改变了。
上面实质上仅讨论了执行两个任务的情况,这里,本领域技术人员可以理解,在执行了任务k之后执行下一任务时,对于任务k单独执行频率fk的改变也将被代入任务k的理论完成时刻的计算中,从而调整了下一任务,例如任务m的单独执行频率fm。并且,当以所有任务的单独执行的频率fi之和来执行任务m时,对于任务k单独执行频率fk的改变以及对于任务m单独执行频率fm的改变也被带入了任务m的执行频率的计算中。这样,当周期性地执行系统的任务集时,如果某一任务的执行时间超时,即如果任务i的完成时间超过了截止时间,则可以通过计算该任务i的理论完成时刻来将该任务i造成的延迟分散到接下来要执行的各个任务当中,从而根据n个任务中每一任务的执行时间来动态地调整每一任务的执行频率,以达到减少功耗的效果。
并且,本领域技术人员可以注意到,在根据本发明第一实施例的实时任务调度装置100中,如果任务i提前完成,即Tc>current_time,则由单独频率调整模块112计算出的任务k单独执行频率fk将减小,从而使得该任务的执行频率减小,从而将这种提前量分散到接下来要执行的任务当中,以使得对于每一任务的执行频率的计算更加合理。
在上述根据本发明第一实施例的描述中,实时任务调度单元103依据EDF来选择下一个要执行的任务,但是,这里本领域技术人员可以理解,当对实时任务进行调度时,也可以采用其它方法来选择下一个要执行的任务,例如,以任务到达的时间顺序,或者随机选择。这里,依据EDF策略来进行选择显然更加有助于保证任务完成的实时性,但是对于根据本发明实施例的实时任务调度装置来说并不是必须的。
在上文中已经提到,计算机系统中的实时任务可以认为硬实时任务和软实时任务,其中,如果任务是硬实时任务,则其必须在截止时间之前完成,而如果任务是软实时任务,则其完成时间可以超过截止时间。下面,将参考本发明第二实施例描述针对周期性的软实时任务和硬实时任务的实时任务调度装置。
根据本发明的第二实施例,提供了一种实时任务调度装置,该装置包括:任务参数获取单元,用于获取系统的任务集中每个实时任务的初始时间参数,其中,所述实时任务包括硬实时任务和软实时任务;状态参数记录单元,用于记录系统中每个实时任务执行时的状态参数;以及,实时任务调度单元,用于在要执行所述任务集中的当前任务时,依据任务参数获取单元获取的每个实时任务的初始时间参数和状态参数记录单元记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
这样,通过根据本发明第二实施例的实时任务调度装置,可以基于实时任务是硬实时任务或软实时任务,在前面一个任务的完成时间超过其截止时间的情况下,通过调整后面一个任务的执行频率,来减少该任务的超时对整个系统的实时性造成的影响,从而在保证系统中任务集的执行的实时性的同时,降低系统的功耗。
图3是示出了根据本发明第二实施例的实时任务调度装置的示意性框图。如图3所示,根据本发明第一实施例的实时任务调度装置200包括:任务参数获取单元201,用于获取系统中实时任务的初始时间参数;状态参数记录单元202,用于记录系统中实时任务执行时的状态参数;以及,实时任务调度单元203,用于在要执行所述任务集中的当前任务时,依据任务参数获取单元201获取的每个实时任务的初始时间参数和状态参数记录单元202记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
图3中的任务参数获取单元201与图1中的任务参数获取单元101的功能基本相同,在任务的集合表示为J={J0,J1,...,Jn-1}的情况下,任务参数获取单元201获取每个任务Ji的最坏执行周期数Ci以及工作到达间隔时间Pi。不同之处在于,如果任务Ji是硬实时任务,则Ci表示其最坏执行周期数;而如果任务Ji是软实时任务,则Ci表示其预测执行周期数。
与图1中的状态参数记录单元102相同,图3中的状态参数记录单元202用于记录每个任务i的状态参数。在本发明的第二实施例中,状态参数记录单元202除了记录图1中的状态参数记录单元102所记录的每个任务i的单独执行频率fi、截止时间Di、最近一次执行的开始时间STi和有效性标识位Vi之外,还记录如下参数:
实时性标识位Ri:如果任务Ji为软实时任务,则Ri为1;而如果任务Ji为硬实时任务,则Ri为0;
实际执行周期数Ai:任务Ji的上一个工作的实际执行周期数,其初始值为Ci。
这里,状态参数记录单元202所记录的每个任务i的单独执行频率fi、截止时间Di、最近一次执行的开始时间STi和有效性标识位Vi的含义与图1的状态参数记录单元102所记录的相同。
如上所述,在本发明实施例中,当任意一个任务集新到达或者任意一个任务完成时,就会触发调度器进行调度。本发明第二实施例的实时任务调度单元所执行的调度的主要内容包括:预测软实时任务的实际执行周期数,修改任务运行时的状态参数、选择下一个任务、计算下一个任务的执行频率。其中,预测软实时任务的实际执行周期数的权重因子w,可以在算法开始运行前根据实际需要进行设置。
下面,仍然将以任务集新到达和任务集中的任意一个任务完成的情况为例,对根据本发明实施例的实时任务调度装置200中的实时任务调度单元203的功能和操作进行详细介绍。
图4是示出根据本发明第二实施例的实时任务调度单元的示意性框图。如图4所示,实时任务调度单元203进一步包括:任务选择模块210,用于从需要执行的任务集中选择要执行的当前任务;理论完成时刻计算模块211,用于计算前一任务的理论完成时刻;单独频率调整模块212,用于依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及任务执行模块213,用于与任务集中所有任务的单独执行频率之和来执行当前任务。
首先,当任务集新到达时,实时任务调度单元203执行的具体操作如下:
1)如果任务集中的任务i为软实时任务,由任务参数获取单元201预测其实际执行周期数:Ci=w*Ai+(1-w)*Ci,如上所述,w是预测软实时任务的实际执行周期数的权重因子;
2)单独频率调整模块212修改任务i的状态参数fi:其中如果任务i是软实时任务,则Ci是上述任务参数获取单元201预测的实际执行周期数,而如Ci是硬实时任务,则Ci是由时间参数获取单元201获取的任务i的最坏执行周期数,Pi是任务i的工作到达间隔时间;并且,状态参数记录单元202记录截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是系统的当前时间;
3)任务选择模块210根据最早截止时间优先(EDF:)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,这里,最早截止时间优先策略是计算机领域的常用策略,为了避免冗余便不再详细介绍,这里,假设被选择出来的任务是任务k;
4)状态参数记录单元202设置任务k的STk=current_time;
5)任务执行模块213以频率执行任务k。
这里,当任务集新到达时,由于没有受到先前完成的任务的时间的影响,实际上不改变任务集中每个任务i的初试时间参数,并且依据当前时间来记录任务i的状态参数。并且,通过EDF来选择下一个需要执行的任务k,并且以所有任务的单独执行的频率fi之和来执行任务k。
之后,当任意一个任务i完成时,实时任务调度单元203执行的具体操作如下:
1)状态参数记录单元202记录任务i的实际执行周期数Ai;
2)状态参数记录单元202修改任务i的状态参数:Vi=0;
3)理论完成时刻计算模块211计算任务i的理论完成时刻tc:
4)任务选择模块210根据最早截止时间优先(EDF)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,假设被选择出来的任务是任务k;
5)单独频率调整模块212计算任务k单独执行频率fk:
其中current_time是系统的当前时间;
6)状态参数记录单元202设置任务k的STk=current_time;
7)任务执行模块213以频率执行任务k。
这里,当任意一个任务i完成时,首先计算该任务i的理论完成时刻,并在根据EDF选择了下一个需要执行的任务k之后,根据该理论完成时刻调整任务k的单独执行频率fk,并且以所有任务的单独执行的频率fi之和来执行任务k。这样,实际上根据前一任务的理论完成时刻来调整下一任务的执行频率。
本领域技术人员可以理解,之前在本发明第一实施例中关于实时任务调度装置的描述而可以等效地应用于本发明第二实施例的实时任务调度装置,这里为了避免冗余将不再重复。
下面,将对根据本发明实施例的实时任务调度方法进行描述。在以下描述中,与之前关于根据本发明实施例的实时任务调度装置的描述相同,将分别根据任务集新到达的情况和任务集中任意一个任务完成时的情况进行描述。
根据本发明实施例的另一方面,提供了一种实时任务调度方法,用于执行计算机系统中包括多个实时任务的任务集,所述实时任务调度方法包括:获取所述任务集中每个实时任务的初始时间参数;记录所述每个实时任务执行时的状态参数;以及,在要执行所述任务集中的当前任务时,依据所获取的每个实时任务的初始时间参数和所记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率。
图5是示出根据本发明实施例的实时任务调度方法在任务集新到达的情况下的示意性流程图。如图5所示,在任务集新到达的情况下,根据本发明实施例的实时任务调度方法执行以下步骤:S10,设置任务集中每个任务的初始时间参数;S11,记录每个任务的状态参数;S12,选择要执行的当前任务k;S13,以所有任务的单独执行频率之和为频率执行当前任务k。
在根据本发明实施例的嵌入式系统的工作环境中,假设总共有n个任务需要执行,则任务的集合可以表示为J={J0,J1,...,Jn-1}。在步骤S10,获取每个任务Ji的最坏执行周期数Ci,工作到达的间隔时间Pi。这里,最坏执行周期数Ci和工作到达的间隔时间Pi的含义与上述相同,且可以通过对应用程序的分析来获得每个任务的上述初始时间参数。
在步骤S11,记录每个任务i的如下参数:
单独执行频率fi:当没有其它任务时,任务i以该频率fi执行;
截止时间Di:任务i的绝对截止时间,即任务执行的可允许的最长时间,其不同于上述的任务i的相对截止时间;
最近一次执行的开始时间STi:每次根据本发明实施例的实时任务调度装置令任务i执行时,就将STi更新为当前系统时间;
有效性标识位Vi:当任务i的执行未完成时,Vi为1;当任务i的工作完成时,Vi为0。
同样,如果任务i是硬实时任务,则其必须在Di之前完成,而如果任务i是软实时任务,则其完成时间可以超过Di,这将在后面进行具体描述。在下文中,假定每个任务i都是硬实时任务,从而必须在Di之前完成任务i的执行。
在步骤S12,从任务集中选择要执行的当前任务k,例如,可以根据最早截止时间优先(EDF:)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务。并且,也可以通过其它策略选择要执行的当前任务k,例如时间顺序策略、随机策略等。在以下描述中,假设被选择出来的当前任务是任务k
在步骤S13,计算任务k的执行频率,包括:
1)修改任务集中的每个任务i的状态参数fi:其中Ci是在步骤S1获取的任务i的最坏执行周期数,Pi是任务i的工作到达的间隔时间;并且,设置在步骤S2记录的每个任务的状态参数:截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是系统的当前时间;
2)设置任务k的STk=current_time;
3)以频率执行任务k。
与上面关于根据本发明第一实施例的实时任务调度装置的描述相同。当任务集新到达时,由于没有受到先前完成的任务的时间的影响,实际上不改变任务集中的每个任务i的初始时间参数,并且依据当前时间来记录每个任务i的状态参数,并以所有任务的单独执行的频率fi之和来执行任务k。
图6是示出根据本发明实施例的实时任务调度方法在任意一个任务完成的情况下的示意性流程图。如图6所示,当任意一个任务i完成时,根据本发明实施例的实时任务调度方法执行以下步骤:
步骤S20,修改任务i的状态参数:Vi=0;
步骤S21,计算任务i的理论完成时刻tc:
步骤S22,根据最早截止时间优先(EDF)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,假设被选择出来的任务是任务k;
步骤S23,计算任务k单独执行频率fk:其中current_time是系统的当前时间;
步骤S24,设置任务k的STk=current_time;
步骤S25,以频率执行任务k。
这里,如图5和图6所述的根据本发明实施例的实时任务调度方法的其它细节与参考图1和图2描述的根据本发明第一实施例的实时任务调度装置的细节相同,为了避免冗余在此便不再赘述。
与根据本发明第二实施例的实时任务调度装置对应地,根据本发明实施例的实时任务调度方法也可以应用于实时任务既包括硬实时任务,也包括软实时任务的情况。
并且,与根据本发明第二实施例的实时任务调度装置对应地,当任务集新到达时,根据本发明实施例的实时任务调度方法判断任务集中的任务i是否为软实时任务,并且,如果是软实时任务,则预测其实际执行周期数:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;之后,修改任务i的状态参数fi:其中如果任务i是软实时任务,则Ci是上述预测的实际执行周期数,而如果任务i是硬实时任务,则Ci是上述获取的任务i的最坏执行周期数,Pi是任务i的工作到达的间隔时间;并且,截止时间Di=current_time+Pi,有效性标识位Vi=1,,其中current_time是系统的当前时间;
3)根据最早截止时间优先(EDF:)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,这里,最早截止时间优先策略是计算机领域的常用策略,为了避免冗余便不再详细介绍,这里,假设被选择出来的任务是任务k;
4)设置任务k的STk=current_time;
5)以频率执行任务k。
之后,当任意一个任务i完成时,根据本发明实施例的实时任务调度方法执行下述操作:
1)记录任务i的实际执行周期数Ai;
2)修改任务i的状态参数:Vi=0;
3)计算任务i的理论完成时刻tc:
4)根据最早截止时间优先(EDF)策略,从有效性标识位Vi=1的所有任务中,选择截止时间Di最小的任务作为下一个任务,假设被选择出来的任务是任务k;
5)计算任务k单独执行频率fk:其中current_time是系统的当前时间;
6)设置任务k的STk=current_time;
7)以频率执行任务k。
根据本发明实施例的实时任务调度方法当应用于硬实时任务和软实时任务时的其它细节与之前参考图3和图4描述的根据本发明第二实施例的实时任务调度装置的细节相同,为了避免冗余便不再赘述。
根据本发明实施例的实时任务调度方法可以针对周期性的软实时任务和硬实时任务,在保证系统实时性的前提下,尽量降低处理器的执行频率,从而降低系统能耗。这里,如上所述,根据本发明实施例的实时任务调度方法不仅能够调度同时存在软实时任务和硬实时任务的嵌入式系统,而且也适用于仅存在软实时任务或者仅存在硬实时任务的嵌入式系统。
根据本发明实施例的又一方面,提供了一种计算机系统,其中执行包括多个实时任务的任务集,所述计算机系统包括:控制器,被配置为:获取所述任务集中每个实时任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;所述记录所述每个实时任务i执行时的如下状态参数:单独执行频率fi;截止时间Di;最近一次执行的开始时间STi;以及有效性标识位Vi;当任务集新到达时:依据如下公式调整所述任务集中的每个任务i的单独频率fi:记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;从所述任务集中选择要执行的当前任务k;记录所述任务k的STk=current_time;以及以频率执行任务k;当任意一个任务i完成时:修改任务i的状态参数:Vi=0;计算前一任务i的理论完成时刻tc:
从所述任务集中选择要执行的当前任务k;计算所述当前任务k单独执行频率fk:其中current_time是所述计算机系统的当前时间;记录所述任务k的STk=current_time;以及以频率执行任务k。
在上述计算机系统中,所述任务集中的实时任务包括硬实时任务和软实时任务,所述控制器配置为:在任务i是硬实时任务的情况下,获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;在任务i是软实时任务的情况下,获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi;记录每个任务i的如下参数:实时性标识位Ri:以及实际执行周期数Ai;当任务集新到达时:在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;依据如下公式调整所述任务集中的每个任务i的单独频率fi:其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数;当任意一个任务i完成时:在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的实际执行周期数Ai。
通过根据本发明实施例的实时任务调度装置和方法以及计算机系统,可以在保证任务集中的任务的实时性的同时,使任务在执行过程中的系统能耗最小化。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种实时任务调度装置,用于执行计算机系统中包括多个实时任务的任务集,所述实时任务调度装置包括:
任务参数获取单元,用于获取所述任务集中每个实时任务的初始时间参数;
状态参数记录单元,用于记录所述每个实时任务执行时的状态参数;以及,
实时任务调度单元,用于在要执行所述任务集中的当前任务时,依据所述任务参数获取单元获取的每个实时任务的初始时间参数和所述状态参数记录单元记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率;
其中,所述实时任务调度单元具体包括:
任务选择模块,用于从需要执行的任务集中选择要执行的当前任务;
理论完成时刻计算模块,用于计算前一任务的理论完成时刻;
单独频率调整模块,用于依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及
任务执行模块,用于以任务集中所有任务的单独执行频率之和来执行当前任务;
其中,所述状态参数记录单元具体记录每个任务i的如下参数:
单独执行频率fi;
截止时间Di;
最近一次执行的开始时间STi;以及
有效性标识位Vi;
当任意一个任务i完成时,
所述状态参数记录单元修改任务i的状态参数:Vi=0;
所述理论完成时刻计算模块计算前一任务i的理论完成时刻tc:
所述任务选择模块从所述任务集中选择要执行的当前任务k;
所述单独频率调整模块计算所述当前任务k单独执行频率fk:
其中current_time是所述计算机系统的当前时间;
所述状态参数记录单元记录所述任务k的STk=current_time;以及
所述任务执行模块以频率执行任务k。
2.如权利要求1所述的实时任务调度装置,其中,所述任务参数获取单元具体用于获取每个任务i的最坏执行周期数Ci以及工作到达间隔时间Pi。
3.如权利要求2所述的实时任务调度装置,其中,当任务集新到达时,
所述单独频率调整模块依据如下公式调整所述任务集中的每个任务i的单独频率fi:
所述状态参数记录单元记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;
所述任务选择模块从所述任务集中选择要执行的当前任务k;
所述状态参数记录单元记录所述任务k的STk=current_time;以及
所述任务执行模块以频率执行任务k。
4.如权利要求1到3中任意一项所述的实时任务调度装置,其中,
所述任务选择模块基于最早截止时间优先策略从有效性标识位Vi=1的所有任务中选择要执行的当前任务。
5.如权利要求3所述的实时任务调度装置,其中,所述任务集中的实时任务包括硬实时任务和软实时任务,
在任务i是硬实时任务的情况下,所述任务参数获取单元获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;以及
在任务i是软实时任务的情况下,所述任务参数获取单元获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi。
6.如权利要求5所述的实时任务调度装置,其中,
所述状态参数记录单元进一步记录每个任务i的如下参数:
实时性标识位Ri:以及
实际执行周期数Ai。
7.如权利要求6所述的实时任务调度装置,其中,当任务集新到达时,
在所述任务集中的任务i为软实时任务的情况下,所述任务参数获取单元获取所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;
所述单独频率调整模块依据如下公式调整所述任务集中的每个任务i的单独频率fi:
其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数。
8.如权利要求7所述的实时任务调度装置,其中,当任意一个任务i完成时,
在所述任务集中的任务i为软实时任务的情况下,所述状态参数记录单元记录所述任务i的实际执行周期数Ai。
9.一种实时任务调度方法,用于执行计算机系统中包括多个实时任务的任务集,所述实时任务调度方法包括:
获取所述任务集中每个实时任务的初始时间参数;
记录所述每个实时任务执行时的状态参数;以及,
在要执行所述任务集中的当前任务时,依据所获取的每个实时任务的初始时间参数和所记录的每个实时任务执行的状态参数来计算前一任务的完成时刻,并根据所述完成时刻调整当前任务的执行频率;
其中,所述根据所述完成时刻调整当前任务的执行频率的步骤具体包括:
从需要执行的任务集中选择要执行的当前任务;
计算前一任务的理论完成时刻;
依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率;以及
以任务集中所有任务的单独执行频率之和来执行当前任务;
其中,所述记录所述每个实时任务执行时的状态参数的步骤具体记录每个任务i的如下参数:
单独执行频率fi;
截止时间Di;
最近一次执行的开始时间STi;以及
有效性标识位Vi;
其中,当任意一个任务i完成时,
所述记录所述每个实时任务执行时的状态参数的步骤修改任务i的状态参数:Vi=0;
所述计算前一任务的理论完成时刻的步骤具体计算模块计算前一任务i的理论完成时刻tc:
所述从需要执行的任务集中选择要执行的当前任务的步骤从所述任务集中选择要执行的当前任务k;
所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤计算所述当前任务k单独执行频率fk:
其中current_time是所述计算机系统的当前时间;
所述记录所述每个实时任务执行时的状态参数的步骤记录所述任务k的STk=current_time;以及
所述以任务集中所有任务的单独执行频率之和来执行当前任务的步骤具体以频率执行任务k。
10.如权利要求9所述的实时任务调度方法,其中,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取每个任务i的最坏执行周期数Ci以及工作到达间隔时间Pi。
11.如权利要求10所述的实时任务调度方法,其中,当任务集新到达时,
所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤具体依据如下公式调整所述任务集中的每个任务i的单独频率fi:
所述记录所述每个实时任务执行时的状态参数的步骤具体记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;
所述从需要执行的任务集中选择要执行的当前任务的步骤从所述任务集中选择要执行的当前任务k;
所述记录所述每个实时任务执行时的状态参数的步骤记录所述任务k的STk=current_time;以及
所述以任务集中所有任务的单独执行频率之和来执行当前任务的步骤具体以频率执行任务k。
12.如权利要求9到11中任意一项所述的实时任务调度方法,其中,
所述从需要执行的任务集中选择要执行的当前任务的步骤具体基于最早截止时间优先策略从有效性标识位Vi=1的所有任务中选择要执行的当前任务。
13.如权利要求11所述的实时任务调度方法,其中,所述任务集中的实时任务包括硬实时任务和软实时任务,
在任务i是硬实时任务的情况下,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;以及
在任务i是软实时任务的情况下,所述获取所述任务集中每个实时任务的初始时间参数的步骤具体获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi。
14.如权利要求13所述的实时任务调度方法,其中,
所述记录所述每个实时任务执行时的状态参数的步骤进一步记录每个任务i的如下参数:
实时性标识位Ri:以及
实际执行周期数Ai。
15.如权利要求14所述的实时任务调度方法,其中,当任务集新到达时,
在所述任务集中的任务i为软实时任务的情况下,所述记录所述每个实时任务执行时的状态参数的步骤具体记录所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;
所述依据前一任务的理论完成时刻来调整任务集中每一任务的单独执行频率的步骤具体依据如下公式调整所述任务集中的每个任务i的单独频率fi:
其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数。
16.如权利要求15所述的实时任务调度方法,其中,当任意一个任务i完成时,
在所述任务集中的任务i为软实时任务的情况下,所述记录所述每个实时任务执行时的状态参数的步骤具体记录所述任务i的实际执行周期数Ai。
17.一种计算机系统,其中执行包括多个实时任务的任务集,所述计算机系统包括:
控制器,被配置为:
获取所述任务集中每个实时任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;
记录所述每个实时任务i执行时的如下状态参数:
单独执行频率fi;
截止时间Di;
最近一次执行的开始时间STi;以及
有效性标识位Vi;
当任务集新到达时:
依据如下公式调整所述任务集中的每个任务i的单独频率fi:
记录每个任务i的截止时间Di=current_time+Pi,有效性标识位Vi=1,其中current_time是所述计算机系统的当前时间;
从所述任务集中选择要执行的当前任务k;
记录所述任务k的STk=current_time;以及
以频率执行任务k;
当任意一个任务i完成时:
修改任务i的状态参数:Vi=0;
计算前一任务i的理论完成时刻tc:
从所述任务集中选择要执行的当前任务k;
计算所述当前任务k单独执行频率fk:
其中current_time是所述计算机系统的当前时间;
记录所述任务k的STk=current_time;以及
以频率执行任务k。
18.如权利要求17所述的计算机系统,其中,所述任务集中的实时任务包括硬实时任务和软实时任务,
所述控制器配置为:
在任务i是硬实时任务的情况下,获取任务i的最坏执行周期数Ci以及工作到达间隔时间Pi;
在任务i是软实时任务的情况下,获取任务i的预测执行周期数Ci以及工作到达间隔时间Pi;
记录每个任务i的如下参数:
实时性标识位Ri:以及
实际执行周期数Ai;
当任务集新到达时:
在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的预测执行周期数为:Ci=w*Ai+(1-w)*Ci,其中w是预测软实时任务的实际执行周期数的权重因子;
依据如下公式调整所述任务集中的每个任务i的单独频率fi:
其中在任务i是软实时任务的情况下,Ci是所述预测执行周期数,而在Ci是硬实时任务的情况下,Ci是所述最坏执行周期数;
当任意一个任务i完成时:
在所述任务集中的任务i为软实时任务的情况下,记录所述任务i的实际执行周期数Ai。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101734.XA CN103365710B (zh) | 2012-03-31 | 2012-03-31 | 实时任务调度装置和方法以及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101734.XA CN103365710B (zh) | 2012-03-31 | 2012-03-31 | 实时任务调度装置和方法以及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365710A CN103365710A (zh) | 2013-10-23 |
CN103365710B true CN103365710B (zh) | 2018-11-06 |
Family
ID=49367137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210101734.XA Expired - Fee Related CN103365710B (zh) | 2012-03-31 | 2012-03-31 | 实时任务调度装置和方法以及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365710B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685541B (zh) * | 2013-12-23 | 2016-10-05 | 重庆广播电视大学 | IaaS云系统运行速率动态控制装置、系统及方法 |
JP6344010B2 (ja) * | 2014-03-28 | 2018-06-20 | 富士通株式会社 | 生産計画作成支援プログラム、生産計画作成支援方法および生産計画作成支援装置 |
CN105629873B (zh) * | 2014-11-07 | 2018-08-24 | 中国科学院沈阳计算技术研究所有限公司 | 一种适用于数控系统的混合任务调度方法 |
GB2545508B (en) * | 2015-12-18 | 2019-04-10 | Imagination Tech Ltd | Controlling operation of a GPU |
CN106570585B (zh) * | 2016-05-25 | 2019-10-18 | 清华大学 | 一种面向自供能系统的任务调度方法及能量管理装置 |
CN108073446B (zh) * | 2016-11-10 | 2020-11-17 | 华为技术有限公司 | 超时预判方法及装置 |
CN106708242B (zh) * | 2016-12-08 | 2019-06-04 | 华侨大学 | 一种硬实时系统能耗最优方法 |
CN107291946B (zh) * | 2017-07-13 | 2020-03-17 | 深圳乐信软件技术有限公司 | 大数据etl任务调度方法及装置 |
CN109298917B (zh) * | 2017-07-25 | 2020-10-30 | 沈阳高精数控智能技术股份有限公司 | 一种适用于实时系统混合任务的自适应调度方法 |
CN109660625B (zh) * | 2018-12-26 | 2021-09-17 | 深圳大学 | 一种边缘设备控制方法、边缘设备及计算机可读存储介质 |
CN111176814B (zh) * | 2019-12-29 | 2022-06-17 | 山东英信计算机技术有限公司 | 一种任务执行方法及相关装置 |
CN112068940A (zh) * | 2020-09-02 | 2020-12-11 | 微医云(杭州)控股有限公司 | 实时任务调度方法、装置、调度系统及存储介质 |
CN111935309B (zh) * | 2020-09-17 | 2020-12-29 | 武汉中科通达高新技术股份有限公司 | 一种循环任务管理方法及装置 |
CN112231353B (zh) * | 2020-10-15 | 2023-05-23 | 中电工业互联网有限公司 | 一种数据采集方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936776A (zh) * | 2006-10-12 | 2007-03-28 | 浙江大学 | 面向嵌入式系统低功耗实时任务调度的简化方法 |
CN101226421A (zh) * | 2008-01-16 | 2008-07-23 | 浙江大学 | 实时嵌入式系统edf低功耗调度的msr方法 |
CN101271406A (zh) * | 2008-02-22 | 2008-09-24 | 浙江大学 | 嵌入式系统rm低功耗调度中松弛时间在线重分配方法 |
-
2012
- 2012-03-31 CN CN201210101734.XA patent/CN103365710B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936776A (zh) * | 2006-10-12 | 2007-03-28 | 浙江大学 | 面向嵌入式系统低功耗实时任务调度的简化方法 |
CN101226421A (zh) * | 2008-01-16 | 2008-07-23 | 浙江大学 | 实时嵌入式系统edf低功耗调度的msr方法 |
CN101271406A (zh) * | 2008-02-22 | 2008-09-24 | 浙江大学 | 嵌入式系统rm低功耗调度中松弛时间在线重分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103365710A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365710B (zh) | 实时任务调度装置和方法以及计算机系统 | |
US8959509B1 (en) | Techniques for virtual machine backup scheduling | |
Calheiros et al. | Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN102122252B (zh) | 一种保证时间连续性的线程池设计方法 | |
EP2399183B1 (en) | Energy-aware server management | |
Shi et al. | Empirical evaluation of vector bin packing algorithms for energy efficient data centers | |
US8230249B2 (en) | Dynamic selection of server states for servers in a cluster of servers | |
Cheng et al. | Heterogeneity-aware workload placement and migration in distributed sustainable datacenters | |
CN103458052B (zh) | 一种基于IaaS云平台的资源调度方法和装置 | |
CN104657220A (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
CN105677000B (zh) | 动态电压频率调整的系统及方法 | |
CN104765640B (zh) | 一种智能服务调度方法 | |
CN104516475A (zh) | 用于管理多核片上系统上的全局芯片功率的方法和装置 | |
US8788864B2 (en) | Coordinated approach between middleware application and sub-systems | |
CN104065745A (zh) | 云计算动态资源调度系统和方法 | |
WO2016115000A1 (en) | Hybrid scheduler and power manager | |
CN106775932B (zh) | 一种云计算系统中随机事件触发的实时工作流调度方法 | |
Hu et al. | QoS promotion in energy-efficient datacenters through peak load scheduling | |
Xiao et al. | An energy-aware heuristic scheduling for data-intensive workflows in virtualized datacenters | |
Mehta et al. | Energy conservation in cloud infrastructures | |
CN104063282B (zh) | IaaS云可变规模资源池管理方法、装置和服务器 | |
CN106570585B (zh) | 一种面向自供能系统的任务调度方法及能量管理装置 | |
Zhang et al. | A data center demand response policy for real-world workload scenarios in HPC | |
Aziz et al. | Power efficient scheduling heuristics for energy conservation in computational grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181106 Termination date: 20210331 |