可调度性确定方法和实时系统的制作方法

文档序号:6649392阅读:197来源:国知局
专利名称:可调度性确定方法和实时系统的制作方法
技术领域
本发明涉及一种实时系统,其在多个处理器中通过实时调度执行多个周期性任务。
背景技术
实时系统是一种通过时间约束的计算机系统,即,“任务的处理必须在设置用于该任务的时间限制内完成”。通常,对于每个任务设置的时间限制被称作“截止时间”,由该截止时间未完成的任务处理被称作“截止时间错过”。在实时系统中截止时间错过不应该出现。
该实时系统的典型实例是空中交通管制系统、工厂控制监控系统和医疗系统。例如,空中交通管制系统在飞机之间和在飞机和障碍物之间设置一个安全间隔,以便避免任何的碰撞。给出确定是否飞行器将在1秒、2秒任务处理内彼此碰撞的任务是无用的。该空中交通管制系统必须在严格的时间的限制之下运行。在严格的时间的限制之下操作一个设备,以便防止任何的截止时间错过被称作“实时调度”,其包括以下的二种方法1、调度方法2、实时可调度性确定方法下面将首先解释该调度方法。由“检测飞行器碰撞的处理”代表的任务是通过安装在该实时系统上有限数量的处理器执行的。由于一个处理器一次仅仅可以处理一个任务,当存在多个要由该实时系统处理的任务的时候,这些任务被在有限数量的处理器之间以时间划分共享,并且定时、处理器和要执行的任务被调度。这种方法在本说明书中将被称作调度方法。
下面将接着解释该实时可调度性确定方法。为了在严格的时间的限制之下操作该实时系统,以便防止任何的截止时间错过,不可接受超出该系统性能的任务。由于这个缘故,当一组任务和调度方法,并且该给出的任务是通过该调度方法调度的时候,该实时系统确定是否可以观察到所有任务的该时间的限制(是否存在截止时间错过),并且基于该确定结果判定由该系统接受的任务。这个确定方法将被称作实时可调度性确定方法。
是否可以观察到任务的时间约束取决于该任务,并且同时取决于该调度方法。当对执行任务说来是必需的总的性能比该实时系统的性能低得多的时候,在大多数情况下,不考虑该调度方法,该系统可以没有任何截止时间错过执行任务。与此相反,如果对执行任务说来是必需的总的性能超过该实时系统的性能,该系统不能通过任何的调度方法防止截止时间错过。但是,当对于执行任务说来是必需的总的性能等于或者略微地低于该实时系统的性能的时候,该调度方法判定是否该系统可以没有任何的截止时间错过或者存在截止时间错过执行任务。为了对付这二种情况,按照该实时可调度性确定方法,二个输入,即,一组任务和调度方法被输入,并且确定是否实时调度是可能的或者不可能的结果被返回。
如果一个发出新任务的请求抵达该实时系统,该系统执行以下的步骤。首先,该系统确定是否当该新任务被接受的时候,在该实时系统中处于执行之中的该新任务和所有的任务的时间的限制可以通过该调度方法(不存在截止时间错过)观察到。如果是这样的话,该实时系统接受该新任务的发出。
其次,该实时系统通过使用调度方法调度在该实时系统中处于执行之中的该新任务和所有的任务,并且按照该调度的结果执行该任务。
在该调度方法中,重要的是以恰当的周期分配恰当的处理器给恰当的任务,以便不引起任何的截止时间错过执行每个任务。通过调度用于每个任务的处理器实现没有任何的截止时间错过的任务执行,以便通过该时间限制完成该任务的过程。
周期性任务调度方法的具体例子是EDF(最早的截止时间开始)算法(例如,参见参考文件1)。该EDF算法是一种优先地分配处理器一个在及早的时间上及早的截止时间的任务。
一种该实时可调度性确定方法已知的例子是通过该EDF算法(例如,参见参考文件2)确定是否实时调度是可能的方法。
另一种已知的实时可调度性确定方法的例子是通过实际地使用该调度方法,并且在任务的所有周期中检查是否不存在截止时间错过,实质上调度任务的方法(例如,参见参考文件3)。
在参考文件2中描述的该确定方法假定,可同时地分配给一个任务的处理器的数目是一个,并且不考虑一个任务同时地需要多个处理器。某些任务同时地需要多个处理器以便提高处理的效率。因此,必须提供一种甚至当多个处理器需要同时地分配给一个任务时可利用的可调度性确定方法。此外,在参考文件2中描述的该确定方法可以确定实时调度是不可能的,虽然实时调度实际上是可能的,并且这个方法的确定精确性是低的。
通过实际上使用该调度方法和检查是否在任务的所有周期中不存在截止时间错过,实质上调度任务的方法花费长的计算时间用于确定,并且是不实际的。
通常地,当多个周期性任务是由多个处理器执行的时候,其不能以高速精确地确定是否实时调度是可能的。
已经提出本发明以克服常规的缺点,并且把其目的作为是提供一种可调度性确定方法,该方法能够精确地以高速确定是否多个周期性任务可以被在多个处理器上实时调度,和使用该方法的实时系统。
J.W.S.Liu,“Real-Time Systems”,Prentice Hall,2000[参考文件2]T.P.Baker,“An Analysis of EOF Schedulability on aMultiprocessor”,FSU计算机科学技术报告TR-030202,2003[参考文件3]J.F.Hermant等等,“Real-Time Fixed and DynamicPriority Driven Scheduling Algorithms原理和经验”,Inria技术报告,1996年。

发明内容
按照本发明的第一个方面,该实时系统包括多个处理器,用于执行多个周期性任务的作业,所述周期性任务每个具有预定的周期;将在每个任务的周期内的每个作业分配给该处理器;在分配的作业被在该处理器中执行期间计算分配的执行时间;基于该分配,确定是否该作业的每个在一个在该周期内的截止时间之前完成;当该作业的一个被确定不在该截止时间之前完成的时候,确定调度是不可能的;确定是否每个确定在该截止时间之前完成的作业的执行时间的分配收敛;和当该分配收敛的时候,确定调度是可能的。
按照本发明的第二个方面,该实时系统确定是否在所述任务的释放时间当中,在最近的释放时间之后存在网格时间,该网格时间的每个是一个时间点,在其上该任务的周期开始时间相互重合;当该网格时间存在并且由第二网格时间分配的作业被确定去由其截止时间完成的时候,确定调度是可能的;和当该网格时间存在并且由第二网格时间分配的一个作业被确定不由其截止时间完成的时候,确定调度是不可能的。


图1是一个示出按照第一个实施例的实时系统结构例子的方框图;图2是一个用于解释可调度性确定过程略述的图;图3是一个示出周期性任务的具体例子的时间图;图4是一个示出周期性任务的参数信息例子的表;图5是一个示出当二个任务(任务A和B)被使用该EOF算法调度的时候的作业执行模式的图;图6是一个用于解释输入的图;图7是一个用于解释按照第一个实施例的实时可调度性确定过程(第一可调度性确定过程)的流程图;图8是一个更详细地示出在图7中的该实时可调度性确定过程的流程图;图9是一个用于解释按照第一个实施例的另一个实时可调度性确定过程(第一可调度性确定过程)的流程图;图10是一个用于解释输入单调性的图形;图11是一个示出按照第二个实施例的实时系统结构例子的方框图;图12是一个用于解释网格和网格时间的时间图;图13是一个用于解释按照第二个实施例的实时可调度性确定过程(第二可调度性确定过程)的流程图;图14是一个用于解释按照第一个实施例的实时系统的处理操作略述的流程图;和图15是一个用于解释按照第二个实施例的实时系统的处理操作略述的流程图。
具体实施例方式
在下面将参考伴随的附图的若干视图来描述本发明的优选实施例。
第一个和第二个实施例在下面将描述一种实时系统,其在多个处理器中实时调度多个周期性任务。
图1是一个示出按照本发明第一个实施例的实时系统结构例子的方框图。该实时系统例如是一种用作嵌入式系统的计算机系统,并且在其时间的限制之下实时执行多个任务。
该实时系统包括一个MPU(主处理单元)1、多个(在这种情况下,例如,三个)VPU(多用途处理单元)2a至2c(如果它们不需要被区别,被称为VPU 2)、总线3、共用存储器4、I/O(输入/输出)控制器5和I/O设备6。
MPU 1、VPUs 2、共用存储器4和I/O控制器5被经由该总线3彼此相连接。
该MPU 1是一个主处理器,其控制该实时系统的操作,并且执行一个存储在该共用存储器4中的操作系统(OS)10。每个VPU 2是一个处理器,其在该MPU 1的管理之下执行各种各样的处理。多个需要实时操作的任务被在该VPUs 2中执行。这些任务的每个同时地需要一个或者多个处理器。该操作系统10实时分配给每个任务一个或者多个VPUs。
该操作系统10包括一个实时可调度性确定程序10a和调度程序10b。该程序10a和10b被该MPU 1执行,以导致该计算机系统去执行实时可调度性确定功能(在下文中,也简单地被称为可调度性确定功能)和调度器功能。
该实时可调度性确定功能执行确定是否多个周期性任务的可调度性确定处理,该需要实时操作的该多个周期性任务可以被在该VPUs 2中通过使用例如该EDF算法来实时调度。该可调度性确定处理的每个步骤被在该可调度性确定程序10a中描述。该可调度性确定处理在该共用存储器4中产生作业执行时间表,同时由该调度程序10b执行调度。其基于该时间表确定是否实时调度是可允许的。
如果其确定该实时调度是可允许的,该调度器功能实际上在该VPUs 2中通过使用例如该EOF算法来调度多个任务。如上所述,该EOF算法优先地分配处理器一个在及早的时间上及早截止时间的任务。一种用于执行该调度器功能(例如,一个基于其优先权调度多个任务的算法,类似该EOF算法)的算法被在该调度程序10b中描述。
当例如一个执行某个应用程序的请求被发出的时候,该可调度性确定处理被执行。例如,当检测到一个来自该计算机系统的输入/输出设备(I/O设备6)(例如连接到该总线3)的请求,或者例如,由该操作系统(OS)10按照应用程序的执行检测到一个“中断”请求执行新的应用程序(新任务)的时候,该实时可调度性确定程序10a被该MPU执行。
图14是一个当在图1的该计算机系统中,例如检测到一个执行某个应用程序(新任务)的请求的时候,用于解释处理操作的流程图。
如果检测到一个执行新的应用程序(新任务)的请求(步骤S101),新任务的参数信息包括充当该新任务的执行开始时间的该任务的释放时间,用于周期性地执行该任务的循环时间(或者一个周期),用于执行该任务的处理器的数目(供使用的处理器的数目),每个循环时间要处理的作业的处理时间,和每个循环时间从处理作业开始到该处理时间的完成的允许时间(截止时间)被加载进在该共用存储器4中用于OS 10的执行预先划定的工作区中。因此,如图4所示的参数信息被存储在该工作区中,用于在新的应用程序中包含多个任务(新任务)的任务集的每个任务,和用于在运行应用程序中的多个任务。
当加载如图4所示的该参数信息时,该MPU 1执行实时可调度性确定程序10a(步骤S102)。
如果其确定调度是对于该任务集的每个任务可允许的(在步骤S103,是),该调度程序10b被执行,并且当调度是对于包含新任务和现有任务的该任务集进行时(步骤S104),该任务被该VPUs 2a以2c执行。
如果包含新任务和现有任务的该任务集甚至包括一个任务,其被确定很可能产生截止时间错过,新任务的执行被拒绝(步骤S105),和该调度器功能在该新的应用程序中没有调度该任务(新任务)。当该调度程序10b被执行去执行调度时,该VPUs 2a至2c在该运行应用程序中保持执行该任务(步骤S106)。这可以防止预先产生任何的截止时间错过。
图2是一个用于解释该可调度性确定处理略述的图。
该实时可调度性确定功能接收一组要调度的任务和调度算法。每个任务的任务参数信息被从对应于该任务的应用程序中加载进在该共用存储器4中的预定的区域中,并且传送给该OS,即,该MPU 1,其执行该实时可调度性确定程序。该实时可调度性确定功能利用该输入信息去执行实时可调度性确定过程。该实时可调度性确定功能返回一个确定结果(实时调度是可允许的/实时调度是不可能的)给该OS。该调度器功能基于该确定结果执行调度。
下面将详细说明在第一个和第二个实施例中的目标任务。该目标任务是一个周期性任务,并且每个任务具有参数信息,包括该释放时间、该循环时间、供使用的处理器的数目、每个循环时间要处理的作业的处理时间,和从该循环时间开始到该作业完成的允许的时间(截止时间)。每个任务是由每个循环时间多个称作“作业”的重复性任务执行单元组成的。
对于一个在“释放时间(release time)”上释放进该实时系统中的任务,在每个等于该“循环时间”的时间上,该任务的一个新的作业被释放。当在作业释放上存在对应于“供使用的处理器的数目”以上的空闲处理器的时候,开始该作业的执行,否则,该作业进入等待状态。做为选择,通过悬挂低优先级的运行作业,开始该作业的执行。在该作业释放时间(该循环时间的开始时间)之后,通过同时地在等于“截止时间”的时间内使用在数目上等于“供使用的处理器的数目”的处理器,每个释放的作业必须被执行一段等于“处理时间”的时间。通过将该截止时间添加给该作业释放时间获得的该时间(利用该时间作业的执行必须完成)将被称作“绝对截止时间”。当存在多个任务的时候,该释放时间、循环时间、供使用的处理器的数目、该处理时间和该截止时间可以对于每个任务改变。
图3示出一个周期性任务的例子,该横坐标代表时间轴,和该纵坐标代表处理器。在图3中,一个具有释放时间“0”、循环时间“100ms”、供使用的处理器的数目“2”、处理时间“50ms”和截止时间“80ms”的任务被在实时系统中执行,其中用于调度可利用的处理器的总数是“3”。
该任务的执行状态是通过从该任务释放时间开始的三个周期举例说明的。在每个循环时间中,具有处理时间“50ms”的作业是通过使用二个处理器同时地执行的。在图3中,在其上每个作业执行的时间(执行完成时间)落在从作业释放时间到绝对截止时间(不存在截止时间错过)的周期内。
下面将解释由该调度器功能执行的调度方法。通常,当在执行的过程中作业完成或者等待执行的作业被添加的时候,该调度方法在处理器中重复在执行中管理作业的顺序和等待执行的作业,在执行的过程中搜索一个空闲处理器或者挂起在作业之中低优先级的作业,并且开始执行在等待执行的作业之中最高优先级的作业。此外,作业、其定时和一个供使用的处理器被调度。
特别是,第一个和第二个实施例采用一种满足以下条件的调度方法。让L是在周期性任务集中的所有任务的循环时间的最小的公倍数。届时任务i1的二个作业j1和j2和任务i2的二个作业j3和j4满足以下的关系该作业j2的释放时间-该作业j1的释放时间
=该作业j4的释放时间-该作业j3的释放时间=L的整数倍数无论如何去选择该任务i1的二个作业j1和j2,以及该任务i2的二个作业j3和j4,1、当该作业j1被优先于该作业j3执行的时候,该调度方法优先于该作业j4执行该作业j2。
2、当该作业j3被优先于该作业j1执行的时候,该调度方法优先于该作业j2执行该作业j4。
这些条件将被称作“与任务的优先级有关的条件”。第一个和第二个实施例仅仅指向一种满足“与任务的优先级有关的条件”的调度方法。
该EOF算法优先地执行及早截止时间的作业(绝对截止时间)。存在一种具有限制条件的EOF算法,当作业具有相同的绝对截止时间的时候,始终优先地执行的该特定任务的作业是一种满足以上所述条件的调度方法。就不存在纷扰而言,具有该限制条件的该EOF算法简单地被称为一种EOF算法。该EOF算法是满足“与任务的优先级有关的条件”的该调度方法。
下面将通过作为该调度方法示范该EOF算法描述一种确定是否可以实时调度一组任务的方法。
通过实际上使用该EOF算法和检查是否在与任务的执行有关的“所有”循环时间中不存在截止时间错过(检查是否对于所有的作业不存在截止时间错过),实质上调度任务的方法花费长的计算时间用于确定,并且因此是不实际的。
因此,在第一个实施例中,任务实质上是通过实际地使用该EOF算法调度的,并且检查是否不在任务的所有循环时间中,而是在“某些”及早的循环时间中存在截止时间错过。通过使用该结果,其确定是否实时调度是可能的。
在这种情况下,虽然该实时可调度性确定程序10a是由该MPU 1执行以实质上调度一组给定的任务,当该作业是由该VPUs 2a至2c执行的时候,计算的分配作业的执行时间包括在每个循环时间中的执行开始时间和执行完成时间,并且如图5所示的时间表被在该共享存储器4中产生。这个过程将被称作模拟。
该可调度性确定过程执行这个模拟,以确定是否实时调度是可能的或不可能的。
当实质上调度的作业是由该VPUs 2a至2c(处理器)执行的时候,该产生的时间表显示在每个循环时间中分配的作业的执行时间。当作业是由多个处理器执行的时候,执行时间的分配(图5)将被称作一个作业执行模式(稍后描述)。
更具体地说,实时可调度性是由以下的方法确定的。在对于一组任务的模拟中,当在执行的过程中作业完成或者在等待执行的过程中新的作业被发出以增加作业的数目的时候,该EOF算法在处理器中重复在执行中管理作业的顺序和等待执行的作业,在执行的过程中搜索一个空闲处理器或者挂起在作业之中低优先级的作业,并且开始执行在等待执行的过程中最高优先级的作业。此时,该实时可调度性确定方法还管理在执行的过程中在处理器中的作业,和在等待执行的过程中的作业,并且检查二个条件1、使L是所有任务的周期的最小的公倍数,通过使用时间间隔L作为准则,该任务的执行模式收敛,和2、是否作业在执行中产生一个截止时间。
严格地说,在时间T上该作业执行模式的收敛指的是,以下的条件满足所有的任务i1、当任务i的作业被在时间t(T≤t)上执行的时候,该任务i的作业也在时间t-L上执行,和2、当该任务i的作业没有在时间t上执行的时候,该任务i的作业也没有在时间t-L上执行。
该作业执行模式是在多个处理器中的每个任务作业的执行时间的分配,如图5所示。注意到,图5举例说明一个用于一个处理器的作业执行模式。
按照该实时可调度性确定方法,当由多个处理器执行的作业不产生任何的截止时间错过并且作业执行模式收敛的时候,其确定在收敛之后无需调度任务,实时调度是可能的。当作业产生一个截止时间错过的时候,其确定实时调度是不可能的。
下面将解释一种情况,其中任务A和任务B被使用该EOF算法调度,如图4所示,任务A具有释放时间“9.5”、循环时间“2”、供使用的处理器的数目“2”和截止时间“0.4”,和任务B具有释放时间“0”、循环时间“5”、供使用的处理器的数目“1”、处理时间“3.8”和截止时间“5”。
图5示出当在图4中示出的二个任务,即,任务A和B被使用该EOF算法调度的时候的作业执行模式。注意到,图5示出在一个处理器中每个任务的执行周期。该横坐标代表时间,并且任务的每个执行周期是由用于每个任务的水平线表示的。第一级示出从时间“0”到时间“20”的任务A和B的执行周期,并且级示出从时间“20”到时间“40”的任务A和B的执行周期。
任务B被在时间“0”上发出,并且作业b1被在任务B的循环时间“5”中对于该处理时间“3.8”执行。在从时间“10”开始的循环时间,作业b3在该循环时间中被分成三个并且被执行。该作业b3在执行开始时间“10”上开始被执行。该作业b3被执行时间“1.5”,在时间“0.4”之后被再次执行时间“1.6”,并且在时间“0.4”之后被再次执行时间“0.7”。该作业b3的执行完成时间是“4.6”。
任务A被在时间“9.5”上发出,并且作业a1被在任务A的循环时间“2”中对于该处理时间“0.4”执行。在那之后,作业a2至a16被每个循环时间“2”对于每个该处理时间“0.4”执行。
任务A和B的循环时间的最小的公倍数L的值是“10”,并且该任务的作业执行模式在时间“20”上收敛。在时间“20”之前,该任务的作业执行模式不收敛。
例如,一旦时间“10”流逝,在任务B的释放时间“9.5”之后,该任务的作业执行模式在时间“19.5”上不收敛,该时间“10”是任务A的周期“2”和任务B的周期“5”的最小的公倍数。
以这样的方式,作业执行模式的收敛指的是,该作业执行模式在二个连续的时间间隔(例如,从时间“10”到“20”的第一时间间隔和从时间“20”到时间“30”的第二时间间隔)之间是相同的,在多个任务(在这种情况下,任务A和B)的释放时间之中的最新的释放时间(例如,任务A的释放时间“9.5”)之后,其除以一个对应于所有任务的循环时间的最小的公倍数的时间(例如,任务A和B的循环时间的最小的公倍数“10”)。在图5中,该作业执行模式在第一和第二时间间隔之间是相同的,并且该任务A和B的作业执行模式在第一和第二时间间隔之间的边界上在时间“20”上收敛。
在该可调度性确定过程中,该模拟是使用类似该EOF算法的调度算法执行的,该调度算法基于每个任务的优先级分配该任务的作业给多个处理器。因此,该作业执行模式是一种当该处理器基于用于执行该任务的处理器的数目、释放时间、循环时间、每个循环时间的截止时间、在该任务的每个循环时间中执行作业花费的时间(处理时间)和该任务的优先级,通过使用该调度算法调度在每个任务的每个循环时间中执行作业的时候,在每个处理器中的作业执行模式,其参数被对于每个任务预先设置。
作业不产生任何的截止时间错过指的是,该作业在从开始时间(作业释放时间)到循环时间的绝对截止时间的时间(在截止时间内)内完成,在该循环时间期间,该作业被执行。换句话说,该作业的执行完成时间落在直至该绝对截止时间的时间内。
是否该任务的作业执行模式收敛可以被通过计算在下面定义的输入来确定。
该输入代表一个在给定时间上未执行的任务的工作负荷(作业)。让J是一组已经在时间T上从任务i的作业当中释放的作业。属于J的作业被划分为三个类型第一个类型)一个其执行已经在时间T上完成的作业第二个类型)一个在时间T上处于执行之中的作业第三个类型)一个其执行没有在时间T上开始的作业让W是用于第二个和第三个类型未执行的工作负荷的总和,该任务i的输入在时间T上被定义为W。
图6是一个用于解释任务A和B的输入的图。来自任务A的二个作业ax1和ax2和任务B的二个作业bx1和bx2,其循环时间已经在时间T上开始的作业(释放的)的集合J是{作业ax1,ax2,作业bx1}。在该作业集合J中的作业被分类为以下。
1、一个其执行已经在时间T上完成的作业作业ax12、一个在时间T上处于执行之中的作业作业bx13、一个其执行没有在时间T上开始的作业作业ax2在时间T上该作业ax2的未执行的工作负荷是WA,和在时间T上该作业bx1的未执行的工作负荷是WB。由此,1、在时间T上任务A的输入WA2、在时间T上任务B的输入WB让R是在所有任务的释放时间之中最新的释放时间,并且L是所有任务的周期的最小的公倍数。因而,当在时间T(R+L≤T)上的输入值等于在时间T-L上用于所有任务i的输入值的时候,其被判定在时间T上输入收敛。当输入在时间T上收敛的时候,作业执行模式在时间T上收敛。
在图5中,在时间“9.5”上,任务A的输入是“0”,并且任务B的输入是“0”。在时间“19.5”上,任务A的输入是“0”,并且任务B的输入是“0.1”。任务B的输入值是不同的,并且该任务的作业执行模式在时间“19.5”上尚没有收敛。
相反地,在时间“10”上,任务A的输入是“0”,并且任务B的输入是“0”。在时间“20”上,任务A的输入是“0”,并且任务B的输入是“0”。这些输入值是彼此相等的,并且该任务的作业执行模式已经在时间“20”上收敛。
以这种方法,在该任务的释放时间之中最新的释放时间(例如,在图5中的任务A的释放时间“9.5”)之后,当在其循环时间已经开始的任务的循环时间中,未执行的作业在第一时间(例如,在图5中的时间“10”)上和第二时间(例如,在图5中的时间“20”)是相同的时候,作业执行模式可以被确定去收敛,该第一时间和第二时间具有对应于所有任务的循环时间的最小的公倍数的时间差(例如,在图5中的时间“10”)。
下面将参考图7的流程图解释一种当该调度方法是EOF算法,即,在图14的步骤S102中的该实时可调度性确定过程的时候,确定是否可以实时调度一组任务的方法。
当检测到例如,一个执行某个应用程序的请求(请求执行一个新任务)的时候,该可调度性确定过程被执行。在这种情况下,该可调度性确定功能确定是否对于所有的任务存在截止时间错过,该所有的任务包括在该应用程序中的多个任务(新任务)和在运行应用程序中的多个任务。
当检测到执行新的应用程序(新任务)的该请求的时候,开始执行该可调度性确定过程。通过使用该调度程序10b,和连续地执行来自最高优先级作业的作业,该模拟被执行去调度所有的任务,该所有的任务包括在该应用程序中的多个任务和在运行应用程序中的多个任务(步骤S201)。
如上所述,该调度算法调度作业、其定时,和通过重复在处理器中在执行中管理的作业和等待执行的作业的顺序被用于执行的处理器,当在执行中的作业完成或者等待执行的作业被添加(当新的作业被释放的时候)的时候,搜索一个空闲处理器或者挂起在执行中的作业之中低优先级的作业,并且由该处理器开始执行在等待执行的作业之中最高优先级的作业。在这种情况下,每当新的作业被按照调度释放时,其确定在该作业释放时间上是否输入收敛。此外,每当处于执行之中的作业完成时,其确定是否该作业产生截止时间错过。
更具体地说,如果在该模拟(步骤S202)的过程中新的作业被释放,该流程前进到步骤S205,以确定在该作业释放时间上是否输入收敛。如果该输入被确定不收敛,该流程返回到步骤S201,以按照调度开始执行从高优先级开始的作业的作业。也就是说,当该作业是由多个处理器执行的时候,该作业在循环时间中分配的执行时间被计算。如果处于执行之中的作业完成(步骤S202),该流程前进到步骤S203,以基于该作业分配的执行时间,确定是否该作业产生截止时间错过。如果不存在截止时间错过,该流程返回到步骤S201。
在步骤S203中,如果该作业其完成的执行产生截止时间错过,其确定实时调度是不可能的(步骤S204),并且该可调度性确定过程完成。
如果在步骤S205中,在新的作业已经被释放的时间(释放时间)上输入收敛,其确定实时调度是可能的(步骤S206),并且该可调度性确定过程完成。
如果在步骤S205中输入收敛,其在步骤S203确定由在该输入收敛的时间上执行的作业不产生任何的截止时间错过。
在步骤S203中,如果该作业的执行完成时间落在该绝对截止时间之前的时间内,即,在该作业的释放时间(该循环时间的开始时间)之后,该作业在该作业的预定的截止时间(在该绝对截止时间之前的时间)内完成,其确定不存在截止时间错过。如果在步骤S203是否,其确定存在截止时间错过。
在步骤S205中,在新的作业已经被释放的时间(作业释放时间)上,每个任务的输入被计算,并且从该作业释放时间开始的该时间领先对应于所有任务的循环时间的最小的公倍数的时间。如果该任务的输入在二个时间上彼此相等,该输入被确定收敛,如果它们彼此是不同的,该输入被确定不收敛。
图8是一个更详细地示出在图7中示出的该可调度性确定过程操作的流程图。
当检测到一个执行新任务请求的时候,开始执行该可调度性确定过程。在所有任务的释放时间之中,该所有任务包括在给定应用程序中的多个任务和在运行应用程序中的多个任务,该最早的释放时间(最小释放时间)和最新的释放时间(最大释放时间),以及所有任务的周期的最小的公倍数被获得,并且分别地定义为Rmin、Rmax和L(步骤S1)。
时间“T”被设置为Rmin,并且生成一个空白执行等待作业表“List”(步骤S2)。
在时间T之后首先释放的作业i被获得,并且其释放时间被定义为Ti。在时间T之后其执行首先完成的作业j被获得,并且其执行完成时间被定义为Tj(步骤S3)。然后,该流程前进到步骤S4.
在步骤S4中,如果Ti≤Tj(其指的是在该时间上,在时间T之后,被释放的该作业i立即到达),该流程前进到步骤S5,如果Ti>Tj(其指的是在该时间上,该作业j完成立即到达),该流程前进到步骤S11。
在步骤S5中,(a)该作业i被增加给该执行等待作业表List。(b)如果一个其绝对截止时间比该作业i的绝对截止时间更早的作业存在于处于执行之中的作业中,这些作业的执行被在时间Ti上挂起,该作业被增加给该执行等待作业表List,并且该流程前进到步骤S6。
在步骤S6中,一个在该执行等待作业表List中其绝对截止时间是最早的作业被定义为k,并且该流程前进到步骤21。
在步骤S7中,如果存在一个空闲处理器,其可以在时间Ti上执行该作业k,该流程前进到步骤S8,以从该执行等待作业表List中删除该作业k,并且开始该作业k的执行(步骤S8)。在那之后,该流程返回到步骤S6。
如果在步骤S7不存在一个可以在时间Ti上执行该作业k的空闲处理器,该流程前进到步骤S9。在步骤S9,其检查是否在该作业的释放时间Ti上输入收敛,在时间T之后该作业被首先释放(步骤S9)。换句话说,当在其上该作业i已经被释放的时候,每个任务的输入被获得,并且确定该时间优先于该释放时间一个对应于所有任务的循环时间的最小的公倍数的时间。如果该任务的输入在二个时间上彼此相等,该输入被确定收敛,如果它们彼此是不同的,该输入被确定不收敛。
如果该输入收敛(在步骤S9,是),该流程前进到步骤S10,以确定实时调度是可能的,并且该流程完成(步骤S10)。如果该输入不收敛(在步骤S9,否),该流程前进到步骤S9′,以更新T为Ti(步骤S9′),并且返回到步骤S3。
如果在步骤S4Ti>Tj,该流程前进到步骤S11。在步骤S11,其检查是否该作业j产生一个截止时间错过。
更具体地说,在该作业j的释放时间之后,如果该作业j的执行完成时间落在该作业的预定的绝对截止时间之前的该时间内,其确定不存在截止时间错过。如果该作业j通过该绝对截止时间没有完成,其确定存在一个截止时间错过。
如果该作业j产生一个截止时间错过(在步骤S11,是),该流程前进到步骤S12,以确定实时调度是不可能的,并且该流程完成(步骤S12)。如果该作业j不产生任何的截止时间错过(在步骤S11,否),该流程前进到步骤S11′,以更新T=Tj(步骤S11′),然后返回到步骤S3。
下面将参考在图9示出的流程图解释在图14的步骤S102中的另一个实时可调度性确定过程。
在图7和8中示出的该实时可调度性确定过程中,每当按照调度释放一个新的作业时,其确定在该作业释放时间上是否输入收敛。此外,每当处于执行之中的作业完成时,其确定是否该作业产生截止时间错过。
在图9中,每当处于执行之中的作业完成时,其确定是否该作业产生一个截止时间错过,并且是否输入收敛。在图9中,与在图7中相同的参考数字表示同样的步骤,并且下面将仅仅解释不同的步骤。
在图9中,通过使用该调度程序10b,和连续地执行来自最高优先级的作业,该模拟被执行去调度经受可调度性确定的所有的任务(步骤S201)。如果在该模拟中一个新的作业被释放(步骤S202),该流程返回到步骤S201。
如果处于执行之中的作业在该模拟中完成(步骤S202),流程前进到步骤S203,以确定是否该作业产生截止时间错过。如果该作业不产生任何的截止时间错过,该流程前进到步骤S205′,以确定是否在该作业的执行完成时间上输入收敛。
在步骤S203中,如果该完成的作业产生截止时间错过,其确定实时调度是不可能的(步骤S204),并且该可调度性确定过程完成。
在步骤S205中,如果在该作业的执行完成时间上输入收敛,其确定实时调度是可能的(步骤S206),并且该可调度性确定过程完成。
如果在步骤S205′中输入收敛,其在步骤S203确定由在该输入收敛的时间上已经执行的作业不产生任何的截止时间错过。
在步骤S203中,在该处理的作业的释放时间(该循环时间的开始时间)之后,如果该作业在该作业(任务)预定的截止时间(在该绝对截止时间之前的时间)内完成,其确定不存在截止时间错过。如果在步骤S203是否,其确定存在截止时间错过。
在步骤S205′,每个任务的输入被该作业的执行完成时间上获得,并且确定该时间优先于该执行完成时间一个对应于所有任务的循环时间的最小的公倍数的时间。如果该任务的输入在二个时间上彼此相等,该输入被确定收敛,如果它们彼此是不同的,该输入被确定不收敛。
下面将通过以下的证明描述在图7和9中的该可调度性确定过程的有效性,即,在图1和9中示出的该可调度性确定过程始终返回一个正确的确定结果(当一组任务可以被实际地实时调度的时候,返回一个确定结果“实时调度是可能的”,或者当一组任务可以不能被实际地实时调度的时候,返回一个确定结果“实时调度是不可能的”)。
下面将证明的是以下的二个命题。
第一个命题)当一组任务可以通过使用该调度算法实时调度的时候输入收敛。
第二个命题)当一组任务不能通过使用该调度算法实时调度的时候存在截止时间错过。只有当一组任务不能通过使用该调度算法实时调度时,才存在截止时间错过。
关于这二个命题,由于第二个命题是显而易见的,其证明将被省略,并且仅仅将证明该第一个命题。
首先,使CI(i,T)是在时间T上任务i的一个输入,其将证明关系CI(i,T)≤CI(i,T+L)保持(输入是单调的)。
该证明是以反证法为基础的。假定输入单调性不成立,并且让T1是满足CI(i,T+L)<CI(i,T)最小的T,以及此时i1是i。此外,让j1是一个在任务i1的作业之中其周期包含时间T的作业,j2是一个在任务i1的作业之中其周期包含时间T+L的作业,并且R1是该作业j1的周期开始时间(释放时间)。那么,该作业J2的释放时间是R1+L。
该CI(i1,T1+L)<CI(i1,T)保持指的是,在其期间的时间,该作业j2被在时间R1+L和时间T1+L之间执行的时间比该作业j1被在时间R1和时间T1之间执行的更短。也就是说,存在时间T3(R1≤T3≤T1),其满足一个条件,即,在从时间R1到时间T1的周期期间,在时间T3上该作业j1不执行,而是该作业J2在时间T3+L(假定时间T3是在满足这个条件的时间之中“最小的”)上执行。由此,通过正确地选择任务i3,总有一种情况,其中该任务i3的作业J3被在时间T3上执行,但是该任务i3的作业j4在时间T3+L上不执行,如图10所示。
该作业j3被在时间T3上执行指的是,该作业j3在优先级方面比该作业j1更高。该作业j4在时间T3+L上不执行对应于1、该作业j4在优先级方面比该作业j2更低,或者2、该作业j4的执行在时间T3+L上完成。
如果该作业j4在优先级方面比该作业j2更低,如上所述的该“与任务的优先级有关的条件”被破坏。如果该作业j4的执行在时间T3+L上完成,CI(i3,T3+L)<CI(i3,T3)必须保持,其破坏T的最小化。
由此,其证明输入是单调的。
其将被证明是,当一组任务可以通过使用该调度算法实时调度的时候输入收敛。
该证明是以反证法为基础的。假定一组任务可以通过使用该调度算法被实时调度,并且输入有时不收敛。带有被证明的输入单调性的输入有时不收敛的该假设的组合揭示给定任务的输入保持增加。这指的是迟早存在截止时间错过,即,实时调度是不可能的,这是令人失望的。这指的是该假设是错误的,并且因此其可以被证明,当一组任务可以通过使用该调度算法实时调度的时候输入收敛。
由此,在图7和9中的该可调度性确定过程的有效性被证明。
如上所述,按照第一个实施例,当分配给多个处理器(VPUs 2a至2c)的作业是由这些处理器执行的时候,在该循环时间中分配的执行时间被使用被用于实际调度的该调度算法(调度程序10b),通过执行该模拟来计算。然后,其通过一个该作业预定的允许时间(绝对截止时间)确定是否每个作业完成。如果在该处理器中对于作业分配(作业执行模式)的执行时间被通过该允许的时间收敛确定完成,调度被确定是可能的。如果获得一个通过该允许的时间没有完成的作业(其产生截止时间错过的作业),调度被确定是不可能的。
借助于这种方案,在该任务的作业执行模式被确定收敛以前该模拟被执行,并且调度被确定是可能的。如果检测到甚至一个产生截止时间错过的作业,调度被确定是不可能的。因此,可以精确地以高速确定是否实时调度是可能的或者不可能的。
在任务的执行开始时间(释放时间)之中最新的执行开始时间之后,可以精确地每次尽快地确定是否调度是可能的或者不可能的。
该可调度性确定过程被对于预定的时间执行。当作业执行模式不收敛,并且没有检测到一个产生截止时间错过的作业的时候,一旦预定的时间流逝,其希望地确定调度是不可能的。
(第二个实施例)在第一个实施例中,该可调度性确定过程可以被没有任何限制应用于确定的每个任务(周期性任务)。但是,当所有任务的截止时间被确定落在该任务的循环时间内的时候,存在一个时间,在其上所有任务的循环时间的开始时间彼此重合,并且上述的时间周期性地出现,在图7的步骤S205中确定是否输入收敛可以被省略,并且可以通过确定是否产生截止时间错过确定是否调度是可能的或者不可能的。
图11示出一个按照第二个实施例的实时系统结构例子。例如,该实时系统被嵌入在一个计算机系统中。在图11中,与在图1中相同的参考数字表示相同的部分,并且下面将仅仅描述不同的部分。在图11中的OS 10包括对应于在图1中的实时可调度性确定程序10a的第一可调度性确定程序10a,调度程序10b,和通过简化第一可调度性确定程序10a准备的第二可调度性确定程序10d,和用于确定将选择第一和第二可调度性确定程序10a和10d哪一个的确定程序10c。
由MPU 1使用该第一可调度性确定程序10a执行的该第一可调度性确定过程与在图7或者9中是相同的。当所有任务的截止时间被确定落在任务的循环时间内,并且所有任务的循环时间的开始时间彼此周期性地重合的时候,由MPU 1使用第二可调度性确定程序10d执行的第二可调度性确定过程被执行。
当例如发出一个执行给定的应用程序的请求的时候,由MPU 1使用该确定程序10c执行的确定过程被执行。
图15是一个当在图11的该计算机系统中,例如检测到一个执行给定应用程序(新任务)的请求的时候,用于解释另一个处理操作的流程图。在图15中,与在图14中相同的参考数字表示同样的步骤,并且下面将仅仅描述不同的步骤。
在图15中,步骤S111a至S111c替换图14的步骤S102。
如果检测到一个执行新任务的请求(步骤S101),以上描述的确定过程被执行,以基于包括新任务和现有的任务的所有任务的参数信息(图4),检查是否满足以下的二个条件(S111a)。
第一个条件)每个任务的截止时间落在该任务的循环时间内。
第二个条件)存在一个时间,在其上所有任务的循环时间的开始时间彼此重合,并且上述的时间周期性地出现。
如果包括新任务和现有任务的所有的任务两者都满足第一和第二条件(在步骤S111a中,是),该流程前进到步骤S111b,以执行第二可调度性确定过程(步骤S111b)。如果在步骤S111a中是否,该流程前进到步骤S111c,以执行第一可调度性确定过程(步骤S111c)。
虽然每个任务的负荷参数信息被存储在共享存储器4中,该MPU1执行确定过程和第一和第二可调度性确定过程。
来自步骤S103的过程与在图14中是相同的。
第一可调度性确定过程与在图7或者8中的是相同的,其描述将被省略,并且下面将解释第二可调度性确定过程。
在第二可调度性确定过程中确定的一组任务满足该第一和第二条件,如上所述。第二可调度性确定过程与第一可调度性确定过程是相同的,其中该模拟使用该调度算法(调度程序10b)实际地进行,在某个及早的周期中(不是在任务的所有周期中)检查是否存在截止时间错过,并且使用该检查结果确定是否实时调度是可能的。但是,这个确定可以通过更简单、更高速度的方法来进行,因为仅仅确定一组条件是有限的任务。
当所有任务的循环时间的开始时间周期性地彼此重合的时候,如由第二个条件给出的,在其上所有任务的循环时间的开始时间彼此重合的该时间将被称作“网格时间”。
下面将参考图12描述第二个条件。图12的(a)沿着该时间轴(横坐标)示出一个状态,其中没有网格时间的三个一组的任务(任务A、B和C)被在其循环时间中执行。图12的(b)沿着该时间轴(横坐标)示出一个状态,其中具有网格时间的三个一组的任务(任务D、E和F)被在其循环时间中执行。
对于三个任务A、B和C的组,在三个任务的释放时间之中最新的释放时间之后,不存在在其上该任务的循环时间的开始时间彼此重合的时间。例如,任务B和C的循环时间同时地起始于时间T1,但是任务A的循环时间不起始于时间T1。任务A和B的循环时间同时地起始于时间T2,但是任务C的循环时间不起始于时间T2。
相反地,如图12的(b)所示,对于三个任务D、E和F的组,在三个任务的释放时间之中最新的释放时间之后,存在一个在其上该任务的循环时间的开始时间彼此重合的时间(网格时间)。例如,三个任务的循环时间同时地起始于时间T3、T4和T5。在图12的(b)中,第一网格时间是时间T3,第二网格时间是时间T4,和第三网格时间是T5。
基于此,下面将参考在图13中示出的流程图解释第二可调度性确定过程。当所有任务的截止时间被确定落在该任务的周期内,并且周期性地出现一个在其上所有任务的循环时间的开始时间彼此重合的时间(网格时间)的时候,满足一个属性“如果作为第二网格时间不存在截止时间错过,在第二网格时间之后,不存在截止时间错过”。第二可调度性确定过程利用这个属性,并且执行如图13所示的过程。
在图13示出的第二可调度性确定过程中,当使用该调度程序10b进行调度时,一个模拟被执行。每当处于执行之中的作业在该模拟中完成时,其检查是否该作业产生截止时间错过。如果直到从任务的释放时间“0”测量的时间没有检测到一个产生截止时间错过的作业,确定调度是可能的,该任务被在确定到达第二网格时间的所有任务之中首先释放。
基于该包含在被确定的每个任务的参数信息中的释放时间和周期,获得在其上所有任务的循环时间的开始时间彼此重合的该时间(网格时间),所有任务包括新任务和现有任务(步骤S51)。
当使用该调度程序10b进行调度时,该模拟被执行。在从在被确定的所有任务之中首先释放的任务的释放时间“0”测量的该时间达到第二网格时间以前,该模拟继续(步骤S52和S53)。
如果在该模拟中一个新的作业被通过第二网格时间释放(步骤S54),该流程返回到步骤S52。如果该测量时间没有达到第二网格时间(在步骤S52中,否),该模拟再次继续(步骤S53)。如果一个处于执行之中的作业完成(步骤S54),该流程前进到步骤S55。
在步骤S55,其检查是否该作业产生一个截止时间错过。如果不存在截止时间错过,该流程返回到步骤S52。
如果在步骤S55中检测到一个产生截止时间错过的作业,该流程前进到步骤S56,以确定实时调度是不可能的(步骤S56)。随后不进行模拟,并且该可调度性确定过程完成。
如果一个新的作业被在该模拟中释放(步骤S54),并且当前的时间是第二网格时间,第二网格时间没有检测到一个产生截止时间错过的作业。因此,该过程前进到步骤S57,以确定调度是可能的(步骤S57)。
如上所述,按照第二个实施例,当周期性地出现一个在其上任务的循环时间的开始时间彼此重合的网格时间的时候,如果由多个处理器执行的作业通过该作业(没有检测到产生截止时间错过的作业)允许的时间(绝对截止时间)由第二网格时间完成,确定调度是可能的。如果通过第二网格时间检测到一个没有由其允许的时间完成的作业(其产生截止时间错过的作业),调度被确定是不可能的。
借助于这种方案,当相应的任务的预定的截止时间落在该任务的预定的循环时间内,并且该任务的循环时间的开始时间周期性地彼此重合的时候,可以通过利用在网格时间之中的第二网格时间执行该模拟精确地确定是否实时调度是可能的或者不可能的,在该网格时间上该任务的循环时间的开始时间彼此重合。
当一组被确定的任务满足条件的时候,即,相应的任务的预定的截止时间落在该任务的预定循环时间内,而且该任务具有周期性网格(其中该任务的循环时间的开始时间彼此重合的状态),按照第二个实施例简化的第二可调度性确定过程被执行。如果一组被确定的任务不满足这个条件,按照第一个实施例的该可调度性确定过程被执行,并且可以按照被确定的任务组的特征精确地以高速确定是否调度是可能的或者不可能的。特别是,对于一组满足以上条件的任务,可以以更高的速度确定是否调度是可能的或者不可能的。
通过实际地使用该调度算法,和检查是否在任务的所有周期中不存在截止时间错过,执行该模拟的常规方法花费长的计算时间用于确定,并且是不实际的。相反地,按照第一个和第二个实施例,该模拟被实际地使用该调度算法进行,检查不是在任务的所有周期中而是在某个及早的周期中是否存在截止时间错过,并且使用该检查结果确定是否实时调度是可能的或者不可能的。
更具体地说,实时可调度性是由以下的方法确定的。在对于一组任务模拟的过程中,该调度方法重复在处理器中处于执行之中的管理任务的顺序和等待执行的任务,当处于执行之中的任务完成或者添加等待执行的任务的时候,搜索一个空闲处理器或者挂起处于执行之中的低优先级作业,并且开始执行处于等待执行之中最高优先级的任务。此时,该实时可调度性确定方法还管理在处理器中处于执行之中的任务,和处于等待执行之中的任务,并且检查二个条件1、使L是所有任务的周期的最小的公倍数,通过使用时间间隔L作为准则,该任务的执行模式收敛,和2、是否作业在执行中产生一个截止时间。当该任务的执行模式收敛的时候,其确定在收敛之后没有调度任务,即,实时调度是可能的。如果一个任务产生截止时间错过,其确定在出现截止时间错过之后没有调度任务,即,实时调度是不可能的。
按照第一个和第二个实施例的该实时可调度性确定方法,当给出一组周期性任务和调度方法的时候,可以通过使用该调度方法以高速精确地确定是否可以实时调度周期性任务组。
在第一个和第二个实施例中描述的本发明的方法可以通过将其作为由计算机可执行的程序存储在,诸如磁盘(软磁盘、硬盘等等),光盘(CD-ROM、DVD等等)或者半导体存储器的记录介质中来区分。
按照本发明,其可以以高速精确地确定是否在多个处理器中可以实时调度多个周期性任务。
权利要求
1.一种在实时系统中的可调度性确定方法,该实时系统包括多个用于执行多个周期性任务的作业的处理器,所述多个周期性任务每个具有预定的周期,包括准备调度装置,用于在每个任务的周期中给处理器分配每个作业;在由该调度装置分配的作业被在处理器上执行期间,计算执行时间的分配;基于该分配,确定是否每个作业在截止时间之前完成;当一个作业被确定在截止时间之前没有完成的时候,确定调度是不可能的;确定每个被确定在截止时间之前完成的作业的执行时间的分配是否收敛;和当该分配收敛的时候,确定调度是可能的。
2.根据权利要求1的方法,其中,基于所述任务的未执行作业,确定是否分配收敛来确定是否分配收敛,所述任务的未执行作业的周期起始于第一时间点和第二时间点,第一时间点和第二时间点具有对应于所述任务的周期的最小公倍数的时间差,和其中,当在第一时间点上和在第二时间点上的未执行的作业是彼此相同的时候,调度是可能的确定来确定调度是可能的。
3.根据权利要求1的方法,其中,当在二个连续的时间间隔的一个期间的分配和在二个连续的时间间隔的另一个期间的分配是彼此相同的时候,确定是否分配收敛来确定是否分配收敛,在所述任务的释放时间当中,在最新的释放时间之后,所述二个连续的时间间隔的每个对应于所述任务周期的最小公倍数。
4.根据权利要求1的方法,其中,该调度装置按照每个作业的优先级,分配所述每个作业给处理器。
5.根据权利要求1的方法,其中,该调度装置基于每个作业的截止时间,分配每个作业给处理器。
6.根据权利要求4的方法,其中,当在第一任务的二个作业之间的执行开始时间中的时间差和在第二任务的二个作业之间的执行开始时间中的时间差是所述任务周期的最小公倍数的时候,该调度装置通过使用调度算法分配每个作业给处理器,该第一任务是所述任务的一个,该第二任务是所述任务的另一个,和在所述第一任务的二个作业之中首先执行的作业相对于在该第二任务的二个作业之中首先执行的作业优先地执行,在该第一任务的二个作业之中稍后执行的作业相对于在该第二任务的二个作业之中稍后执行的作业优先地执行。
7.一种在实时系统中的可调度性确定方法,该实时系统包括多个用于执行多个周期性任务作业的处理器,所述多个周期性任务每个具有预定的周期,包括准备调度装置,用于在每个任务的周期中给处理器分配每个作业;在所述任务的释放时间之中,在最近的释放时间之后计算网格时间,所述网格时间的每个是一个时间点,在其上所述任务周期的开始时间相互重合;在由该调度装置分配的作业被在处理器中执行期间,计算执行时间的分配;基于该分配,确定是否每个作业在该周期内的截止时间之前完成;当由该调度装置分配的作业通过第二网格时间被确定在其截止时间之前完成的时候,确定调度是可能的;当由该调度装置分配一个作业通过第二网格时间被确定在其截止时间之前没有完成的时候,确定调度是不可能的。
8.一种实时系统,该实时系统包括多个用于执行多个周期性任务作业的处理器,该多个周期性任务每个具有预定的周期,包括调度装置,用于在每个任务的一个周期中给处理器分配每个作业;计算装置,用于在由该调度装置分配的作业被在处理器中执行期间计算执行时间的分配;第一确定装置,用于基于该分配,确定是否每个作业在截止时间之前完成;第二确定装置,用于当一个作业被确定在截止时间之前没有完成的时候,确定调度是不可能的;第三确定装置,用于确定每个确定在截止时间之前完成的作业的执行时间的分配是否收敛;和第四确定装置,用于当该分配收敛的时候,确定调度是可能的。
9.根据权利要求8的系统,其中,该第三确定装置基于所述任务的未执行作业,确定该分配是否收敛,所述任务的未执行作业的周期起始于第一时间点和第二时间点,所述第一时间点和第二时间点具有对应于该任务的最小公倍数的时间差,和当在第一时间点和第二时间点上的该未执行作业是彼此相同的时候,该第四确定装置确定调度是可能的。
10.根据权利要求8的系统,进一步包括第五确定装置,用于确定是否在所述任务的释放时间之中,在最近的释放时间之后存在网格时间,所述网格时间的每个是一个时间点,在其上所述任务的周期开始时间相互重合;第六确定装置,用于当所述网格时间存在并且由该调度装置分配的作业通过第二网格时间被确定在其截止时间之前完成的时候,确定调度是可能的;和第七确定装置,用于当所述网格时间存在并且由该调度装置分配的一个作业通过第二网格时间被确定在其截止时间之前没有完成的时候,确定调度是不可能的。
11.根据权利要求8的系统,其中,该调度装置基于每个作业的截止时间,分配每个作业给处理器。
12.根据权利要求8的系统,其中,当在二个连续的时间间隔的一个期间的分配和在二个连续的时间间隔的另一个期间的分配是彼此相同的时候,该第四确定装置确定该分配收敛,在该任务的释放时间当中,在最新的释放时间之后,所述二个连续的时间间隔的每个对应于该任务周期的最小公倍数。
13.根据权利要求8的系统,其中,该调度装置按照每个作业的优先级,分配每个作业给处理器。
14.根据权利要求8的系统,其中,该调度装置基于每个作业的截止时间,分配每个作业给处理器。
15.根据权利要求13的系统,其中,当在第一任务的二个作业之间的执行开始时间中的时间差和在第二任务的二个作业之间的执行开始时间中的时间差是任务周期的最小公倍数的时候,该调度装置通过使用调度算法分配每个作业给处理器,该第一任务是所述任务中的一个,该第二任务是所述任务中的另一个,和在所述第一任务的二个作业之中首先执行的作业相对于在所述第二任务的二个作业之中首先执行的作业优先地执行,在所述第一任务的二个作业之中稍后执行的作业相对于在所述第二任务的二个作业之中稍后执行的作业优先地执行。
16.根据权利要求8的系统,其中,该调度装置通过使用一个EOF(最早的截止时间开始)算法分配每个作业给处理器。
17.根据权利要求1的方法,其中,该调度装置通过使用一个EOF(最早的截止时间开始)算法分配每个作业给处理器。
18.一个存储在计算机可读介质上的计算机程序,该计算机包括多个用于执行多个周期性任务作业的处理器,所述多个周期性任务每个具有预定的周期,该计算机程序包括第一程序指令装置,用于命令计算机处理器去在每个任务的周期中分配每个作业给处理器;第二程序指令装置,用于命令计算机处理器去计算在分配的作业在处理器上执行期间的执行时间的分配;第三程序指令装置,用于命令计算机处理器去基于该分配确定是否每个作业在该周期内的截止时间之前完成;第四程序指令装置,当该作业的一个被确定在截止时间之前没有完成的时候,用于命令计算机处理器去确定调度是不可能的;第五程序指令装置,用于命令计算机处理器去确定每个被确定在截止时间之前完成的作业的执行时间的分配是否收敛;和第六程序指令装置,当分配收敛的时候,用于命令计算机处理器去确定调度是可能的。
全文摘要
一种实时系统,该实时系统包括多个用于执行多个周期性任务作业的处理器,该多个周期性任务每个具有预定的周期,在每个任务的周期内分配每个作业给该处理器,在分配的作业被在该处理器上执行期间计算分配的执行时间,基于该分配确定是否该作业的每个由一个在该周期内的截止时间完成,当该作业的一个被确定不由该截止时间完成的时候,确定调度是不可能的,确定是否每个确定去由该截止时间完成的该作业的分配的执行时间收敛,和当该分配收敛的时候,确定调度是可能的。
文档编号G06F9/46GK1838077SQ20051010848
公开日2006年9月27日 申请日期2005年9月30日 优先权日2005年3月25日
发明者鸟井修, 前田诚司 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1