任务执行装置及方法

文档序号:6561299阅读:156来源:国知局
专利名称:任务执行装置及方法
技术领域
本发明涉及对由中央处理器(CPU)执行的任务分配执行时间的任务执行装置、即操作系统(OS)。
背景技术
OS的主要功能是“硬件管理”、“任务管理”、“数据管理”及“输入输出管理”。其中“任务管理”管理任务的执行顺序,是用于使CPU、存储器及输入输出装置等高效地工作的重要的功能。这里,所谓的“任务”,是分批管理程序的启动、执行及完成等一系列流程的控制单位。在OS的管理下工作的程序被作为任务处理。关于程序的执行的OS的操作都以任务为单位进行。
作为决定任务的执行顺序的算法的一种,已知有分时调度法。分时调度法是分配在各任务中的执行时间、所分配的时间的期间被赋予了具有CPU的执行权的任务.如果经过了分配给该任务的时间,则将执行权转移到其他任务的任务的调度方法。由此,对所有的任务以平等且已决定的时间分配执行权。
分配时间的决定方法有根据任务的特性固定给予的方法、及配合任务的执行状况动态决定的方法,例如已知有根据优先级调整执行权的分配时间的方法等(例如参照日本特开2005-18560号公报)。
但是,以往的OS在任务需要等待事件时使任务转移到等待状态的情况下,将执行权转移给下一个任务,或者,在转移到等待状态的任务的分配时间被消耗为止不执行任何处理。此外,在作为任务需要保证处理性能的任务、和事件驱动处理等那样非同步地发生处理的任务混杂在一起的执行环境下,必须一边保持整体处理的周期一边分配处理性能的同时执行非同步处理。因此,通过总是调整分配时间来执行,有产生开销、处理性能下降的问题。

发明内容
本发明是为了解决上述问题而做出的,目的是提供一种能够在保证一定的处理性能的同时减轻与任务的执行时间的分配调整有关的负担的任务执行装置及方法。
为了达到上述目的,有关本发明的任务执行装置,是一种用于一边切换一边分时执行多个任务的任务执行装置,对上述多个任务的每个分配了分配时间;上述多个任务包括多个第1类型的任务、和单个的第2类型的任务;该任务执行装置具备周期时间存储单元,存储上述多个任务的分配时间的合计时间即周期时间;任务选择单元,在上述多个任务中,按照预先设定的顺序选择任务;修正单元,在所选择的任务是第2类型的任务的情况下,对上述第2类型的任务修正所分配的分配时间,以便在上述周期时间内完成上述多个任务的执行;任务执行控制单元,执行所选择的任务,以使该任务的执行在所分配的或所修正的上述分配时间内完成。
根据该结构,将由处理器执行的任务分割为第1类型的任务和第2类型的任务,仅对第2类型的任务进行分配时间的修正,以使在周期时间内执行多个任务。因此,能够提供在保证一定的处理性能的同时能够减轻与任务的执行时间的分配调整有关的负担的任务调度装置。另外,在第1类型的任务全部转移到等待状态的情况下,可以不进行第2类型的任务的分配时间的修正。
优选地,对上述第2类型的任务来说,所分配的分配时间包括在该任务的执行时必须最低限度地执行的时间即第1分配时间、和在该第1分配时间上加上预先设定的富余时间后的第2分配时间这2种时间;上述修正单元具有总消耗时间计算部,计算由上述多个第1类型的任务的执行消耗的总消耗时间;及分配时间修正部,从上述富余时间中减去上述总消耗时间与上述多个第1类型的任务的总分配时间的差并将相减的结果加到上述第1分配时间上,从而对分配给上述第2类型的分配时间进行修正。更具体地讲,上述分配时间修正部在上述总消耗时间与上述总分配时间的差比上述富余时间大的情况下,在将每执行一次上述多个任务的区间作为1周期的情况下,在不超过上述周期时间的范围内,将从上述总消耗时间与上述总分配时间的差中减去了上述富余时间后的时间加到下个周期以后的上述第2类型的任务的第1分配时间上,由此修正分配给上述第2类型的分配时间。
通过采用这样的构成,对于第2类型的任务能够可靠地确保第1分配时间来执行任务。
更优选为,上述任务执行装置还具备供电减少单元,该供电减少单元在上述第2类型的任务转移到等待状态的情况下,在该任务的分配时间的期间减少向执行该任务的处理器的供电。此外,上述任务执行装置还具备供电停止单元,在上述多个任务全部转移到等待状态的情况下,停止向执行该任务的处理器的供电。
通过检测任务的执行状况、使对处理器的电力的供给状态变换,能够降低任务执行所需的耗电量。
另外,本发明不仅能够作为具备这样的特征单元的任务执行装置实现,也可以作为将包含在任务执行装置中的特征单元为步骤的任务执行方法来实现,或者作为使计算机具有包含在任务执行装置中的特征单元的功能的OS来实现。并且,这样的OS当然可以通过CD-ROM(Compact Disc-Read Only Memory)等记录媒体或因特网等通信网络流通。
根据本发明,能够提供能够在保证一定的处理性能的同时减轻与任务的执行时间的分配调整有关的负担的任务执行装置及方法。
2005年8月24日提出的日本发明申请号2005-243417号公开包括说明书、附图、和权利要求书,通过引用其全部内容与本发明结合为一体。
通过下面结合附图对本发明的实施方式的说明,对于本发明的以上及其他目的、优点、特征就会更加清楚。


图1是表示本发明的实施方式的进行时隙切换的程序执行装置的主要部分的结构的框图。
图2是表示时隙存储部内的时隙信息和任务存储部内的任务管理模块的具体例的图。
图3是用于说明时隙切换部及任务选择部的任务切换的状况的图。
图4是任务调度部的调度处理的流程图。
图5是通过任务调度部对向事件从动(driven)型任务的时隙的分配时间进行计算的处理的流程图。
图6是通过任务调度部对向事件从动型任务的时隙的分配时间进行计算的处理的流程图。
具体实施例方式
(整体结构)图1是表示本发明的实施方式的进行时隙切换的程序执行装置的主要部分的结构的框图。该图示意地表示在处理器中运行进行任务切换的软件作为OS的一部分功能来实现的功能。处理器的硬件结构是一般的结构即可。
该程序执行装置构成为,在1个处理器内处理各自具有分配时间的指定的多个任务,在确保各任务的所需性能的同时执行。
如该图所示,程序执行装置包括任务调度部10、程序存储部20、定时控制部30、以及执行控制部40。
任务调度部10对各个具有分配时间的指定的任务分配1个时隙,在预先设定的周期内进行至少选择1次各任务的分时调度。这里,所谓的“时隙”是指将在处理器中的执行程序的时间在预先设定的周期T内按每个分配时间划分的时间。
程序存储部20存储成为任务调度部10的调度对象的任务主体即程序和有关程序的信息。
定时控制部30每当从任务调度部10设定分配时间时开始时间的计数,在达到该分配时间时输出超时信号。该超时信号为了通知时隙的切换定时而通知给任务调度部10。
执行控制部40执行由任务调度部10选择的任务。执行控制部40相当于执行任务的CPU等硬件。
(任务调度部10的结构)任务调度部10包括任务受理部11、时隙存储部12、任务存储部13、时隙切换部14及任务选择部15。
<1.任务受理部11>
任务受理部11按照用户操作或来自用户程序等的指示受理任务的追加请求,从程序存储部20读出“任务信息”及“分配时间”作为有关该任务的信息。此外,任务受理部11根据任务信息及分配时间生成时隙信息100(110)及任务管理模块200(210),对时隙存储部12及任务存储部13分别进行设定,以便该任务成为调度的对象。
这里,“任务信息”包括“程序开始地址”和“堆栈指针”。所谓的“程序开始地址”是写入了任务的起始的地址。所谓的“堆栈指针”是表示在发生了任务的切换时暂时保存任务的状态的存储部位的位置信息。
任务在任务调度部10中与时隙一对一对应地被分配给时隙,在该时隙的分配时间的期间被可靠地执行。
任务按照执行特性而分类为2个类别(类别A及类别B)。
将需要固定的处理性能的任务作为“类别A”。应该将称作所谓的时间从动型的任务作为类别A。例如,优选为将动画数据的解码/编码处理、声音数据的解码/编码处理等持续需要一定的处理性能的任务作为类别A。
另一方面,将不需要固定的处理性能的任务作为“类别B”。应该将称作所谓的事件从动型的任务作为类别B。例如,优选为将以用户操作为事件进行由文字及静止图像构成的菜单显示的处理等、不需要持续一定的处理性能的不定期地随时发生的任务作为类别B。
“分配时间”是指定与任务对应的时隙的分配时间的值。该分配时间假设是由程序指定的。
另外,在一周期内执行的任务的分配时间的合计作为周期T保存在周期寄存器16中。
<2.时隙存储部12>
时隙存储部12存储用于生成成为任务的切换基准的时隙的时隙信息。
图2是表示时隙存储部12内的时隙信息和任务存储部13内的任务管理模块的具体例的图。如该图所示,时隙存储部12存储有多个时隙信息100、110、……120、130。假设时隙信息100~120表示分配了类别A的任务的时隙。此外,假设剩下的1个时隙信息130表示分配了类别B的任务的时隙。
时隙信息100对应于1个时隙,包括分配时间100a、执行标志100b及指针100c。其他时隙信息也同样。
分配时间100a表示对应于时隙的任务能够执行的时间。如果实际执行任务的时间达到了分配时间,则执行对应于下一个时隙的任务。与类别A的任务对应的分配时间100a~120a与时隙信息100~120的生成同时分别设定在定时控制部30。与类别B的多个任务对应的分配时间130a是从保持在周期寄存器16中的一周期的时间T减去其他时隙的分配时间100a~120a的合计时间后的剩余时间。该剩余时间是随着任务调度变化的值。另外,分配时间130a的计算方法只是一例,对于其他计算方法在后面详细叙述。
“执行标志”表示该时隙是有效的还是无效的。执行标志在时隙信息的生成时设定为有效,在任务执行中访问目的地的资源为锁定状态、任务成为等待状态时设定为无效,然后在该任务从等待状态回到可执行状态时设定为有效。在执行标志表示无效的情况下,由时隙切换部14将时隙信息看作不存在。
“指针”表示对应于该时隙的任务管理模块。这些时隙信息100、110、……、120、130构成排列,假设该顺序表示时隙的生成顺序。
<3.任务存储部13>
任务存储部13存储与分配给时隙的任务对应的任务管理模块200、210、……、220、230。任务管理模块200、210、……、220、230分别与1个任务对应,是用于管理该任务的信息。
任务管理模块200由任务信息200a构成。任务信息200a包括程序开始地址(或者应再开始执行程序的地址)以及堆栈指针。在任务管理模块200的生成时,任务信息200a是由任务受理部11输入的任务信息本身。在任务切换时,任务信息200a表示中断的任务的执行地址以及该时刻的堆栈指针的值。
<4.时隙切换部14>
时隙切换部14在当前的时隙中任务的执行时间达到了分配时间时进行时隙的切换。是否到达了分配时间通过定时控制部30的超时信号通知。接收到通知的时隙切换部14选择下一个时隙信息。
在本实施方式中,假设接下来选择的时隙信息按照该排列顺序。即设为按照时隙信息100、110、……120、130的顺序选择时隙信息,在选择了最后的时隙信息130后,再次选择最初的时隙信息100。
时隙切换部14从所选择的时隙信息中取得分配时间设定在定时控制部30。由此开始下一个时隙的分配时间的计数。
<5.任务选择部15>
任务选择部15在时隙切换部14的时隙切换时或有来自执行中的程序的指示时,将当前执行中的任务的执行地址以及堆栈指针等作为任务信息保存在该任务的任务管理模块中,从接下来应执行的任务的任务管理模块中提取任务信息,输出给执行控制部40。与此同时,任务选择部15还进行执行中的任务的前后关系(寄存器数据等)的保存、接着应执行的任务的前后关系的复原。由此,接下来应执行的任务成为执行状态。
图3是用于说明时隙切换部14及任务选择部15的任务切换的状况的图。
在该图中,周期T表示保持在周期寄存器16中的周期。t1~tn是分别与对应于类别A的n个任务的、n个时隙信息100、110、……、120对应的时隙,其长度(t1~tn)分别表示n个任务的分配时间。此外,t0是与对应于类别B的任务的时隙信息130对应的时隙,其长度(t0)表示该任务的分配时间。
S表示由时隙切换部14及任务选择部15进行任务切换的调度处理。
如该图所示,在时隙t1的开始时的调度处理S中,选择、执行与时隙信息100对应的类别A的任务A1。对于时隙t2~tn也同样执行类别A的任务。此外,在最后的时隙t0的调度处理S中,选择、执行类别B的任务B。这样,所有的任务在1个周期T的期间一定被执行1次。此外,类别B的任务B在1个周期T的期间仅执行1次。
(处理的详细情况)下面对本实施方式的程序执行装置执行的调度处理进行说明。
<1.调度处理>
根据图4的流程图说明调度处理。如果经过了定时控制部30设定的时间,将超时信号发送给时隙切换部14,开始调度处理。首先,将当前正在执行的任务的状态保存到任务信息中(S301)。接着,时隙切换部14进行时隙的选择处理(S302)。即,将时隙信息的排列的当前所选择的要素的下一个要素作为接下来选择的时隙信息。在没有下一个要素的情况下选择时隙信息排列的起始的要素。即,时隙切换部14从时隙t1的时隙信息100到时隙t0的时隙信息130依次进行选择,然后,再次从时隙t1的时隙信息100开始依次进行选择。
根据接下来选择的时隙是否是时隙t0,分配时间的处理、时隙上的任务无效或等待状态时的工作不同(S303)。
在选择了时隙t0以外的时隙的情况下(S303中的否),时隙切换部14取出包含在所选择的时隙的时隙信息中的分配时间,输出给定时控制部30(S304)。从该时刻仅经过了分配时间后,由定时控制部30再次发送超时信号。
如果所选择的时隙的时隙信息保持的执行标志为无效(S305中的否),则表示在该时隙中没有执行的任务或任务是等待状态。因此,时隙切换部14切换为下一个时隙并进行同样的处理直到找到有效的时隙。
如果有有效的时隙(S305中的是),则任务选择部15恢复对应于该时隙的中断的任务的状态,执行控制部40再次开始执行(S306)。
在时隙切换部14选择时隙t0的情况下(S303中的是),时隙切换部14首先计算时隙t0的分配时间(S307)。由于该处理涉及多项,所以对于其详细情况在后面叙述。时隙切换部14将由该处理计算出的分配时间输出给定时控制部30(S308)。
如果上述时隙保持的执行标志有效(S309中的是),则与上述时隙t0以外的情况同样,任务选择部15复原与时隙t0对应的中断任务的状态,执行控制部40再次开始该任务的执行(S306)。
如果上述时隙保持的执行标志无效(S309中的否),则时隙切换部14检查时隙t0以外的时隙的执行标志是否全部无效(S310)。如果所有的执行标志无效(S310中的是),则是所有的时隙上没有任务的有效的执行处理的状态,所以任务选择部15使CPU转移到停止状态。从停止状态复原利用中断等外部信号进行。
只要有1个有效的时隙(S310中的否),CPU就工作,但由于在时隙t0的分配时间的期间不需要使CPU工作,所以在该时间的期间使CPU转移到低电力状态。
<2.时隙t0的分配时间计算处理>
接着,根据图5及图6所示的流程图,对计算时隙t0的分配时间的处理(图4的S307)进行说明。该处理有3个变形,分别对其进行说明。
(a)将等待状态的时隙的分配时间分配给时隙t0的情况如图5所示,对于时隙t1~tn的时隙,计算在过去1周的任务执行中消耗的总时间(总消耗时间)和执行标志为无效的时隙的总分配时间(非执行时间)(S401~S404)。
在总消耗时间比时隙t1~tn的总分配时间大的情况下,考虑是中断等外部原因的影像。因此,从执行标志为无效的时隙的总分配时间即非执行时间减去总消耗时间-总分配时间(S405)。即,将因外部原因超出的时间即总消耗时间-总分配时间,从分配给时隙的任务没有执行的时间(非执行时间)中减去。
在该值上加上时隙t0的分配时间的时间成为时隙t0的计算后的分配时间(S406)。
另外,即使在上述总消耗时间比上述总分配时间小的情况下,通过使用相同的算式,也能够计算时隙t0的分配时间。
(b)设定余量时间、将从分配时间延长的部分从余量时间中减去的情况如图6所示,假设由任务受理部11预先设定了余量值17,由任务受理部11取得该值(S411)。所谓的余量值17是分配给时隙t0的分配时间的余量时间(富余时间)M。即,在时隙t0的分配时间中,有t0和(t0+M)的2个阶段。
首先,对于时隙t1~tn,计算在过去1周量的执行中消耗的时间的合计(总消耗时间)(S412、S413)。
接着,在总消耗时间比总分配时间多的情况下,从余量时间M中减去总消耗时间-总分配时间(S414)。这里,所谓的总分配时间是指时隙t1~tn的总分配时间。
在相减后的值上加上时隙t0的分配时间的时间成为计算时隙t0之后的分配时间(S415)。
另外,在余量M<(总消耗时间-总分配时间)的情况下,即在由S414求出的值为负的情况下,将余量时间M设为0,并且进行时间调整,以使由下个周期的时隙t0执行(总消耗时间-总分配时间)-余量M。由此,在该周期T中,能够确保执行时隙t0的分配时间t0。
(c)也可以代替余量值由任务受理部11取得周期15、将从周期T(分配时间的合计)中减去总消耗时间后的值作为计算时隙t0后的分配时间。
由以上说明,根据本实施方式的程序执行装置,通过仅计算、设定特定时隙的分配时间,能够不再计算其他时隙的分配时间而确保性能。结果,能够削减状况变化时的分配时间的再设定所需的开销。
此外,通过检测时隙的执行状况而改变CPU状态,能够有助于执行所消耗的耗电量的削减。
另外,在上述实施方式中,对于类别A任务的时隙,说明了对每个任务信息指定1个分配时间作为固定值的情况,但也可以构成为,对所有的时隙保有表示分配时间的最大值及最小值的2个固定值,将对所有的时隙的分配时间的最大值的合计作为周期,根据执行状况,各时隙一边选择哪种分配时间一边工作。
此外,在检测到所有的时隙都选择了最小值的情况下,在短时间内完成了处理。因此,在设定的周期T内完成1周期量的处理的范围内,也可以降低CPU的工作频率来执行任务。结果,能够进一步有助于任务执行所需的消耗电力的削减。另外,使用分配时间的最大值、还是使用最小值,是由执行这些任务的程序决定的。
工业实用性有关本发明的程序执行装置具有进行保证处理性能的固定的时间分配的同时在与处理性能无关的时间分配中调整整体的分配时间的功能。由此,能够对保证处理性能的处理减轻与分配时间的调整有关的负担,例如,在影像再生处理中,能够不受由来自外部的访问对影像输出施加的噪音或干扰的影响而执行处理。特别是,能够作为实时地进行声音影像处理和非同步的控制处理的设备、以及该设备的开发环境等应用。
权利要求
1.一种任务执行装置,其特征在于,用于一边切换一边分时执行多个任务,对上述多个任务的每个分配了分配时间,上述多个任务包括多个第1类型的任务、和单个的第2类型的任务;上述任务执行装置具备周期时间存储单元,存储上述多个任务的分配时间的合计时间即周期时间;任务选择单元,在上述多个任务中,按照预先设定的顺序选择任务;修正单元,在所选择的任务是第2类型的任务的情况下,对上述第2类型的任务修正所分配的分配时间,以便在上述周期时间内完成上述多个任务的执行;任务执行控制单元,执行所选择的任务,以使该任务的执行在所分配或所修正的上述分配时间内完成。
2.如权利要求1所述的任务执行装置,其特征在于,上述修正单元将上述多个第1类型的任务中的不在执行状态的任务的总分配时间即非执行时间,加到对上述第2类型的任务分配的分配时间上,从而修正该分配时间。
3.如权利要求2所述的任务执行装置,其特征在于,上述修正单元具有总消耗时间计算部,计算由上述多个第1类型的任务的执行消耗的总消耗时间;非执行时间计算部,计算上述多个第1类型的任务中的不在执行状态的任务的总分配时间即非执行时间;分配时间修正部,从上述非执行时间中减去上述总消耗时间与上述多个第1类型的任务的总分配时间的差,将相减的结果加到上述第2类型的任务的分配时间上,由此修正分配给上述第2类型的分配时间。
4.如权利要求1所述的任务执行装置,其特征在于,上述修正单元将上述周期时间与由上述多个第1类型的任务的执行消耗的总消耗时间的差,作为对上述第2类型的任务分配的分配时间。
5.如权利要求1所述的任务执行装置,其特征在于,对上述第2类型的任务分配的分配时间包括在该任务的执行时必须最低限度地执行的时间即第1分配时间、和在该第1分配时间上加上预先设定的富余时间后的第2分配时间的2种时间;上述修正单元具有总消耗时间计算部,计算由上述多个第1类型的任务的执行消耗的总消耗时间;及分配时间修正部,从上述富余时间中减去上述总消耗时间与上述多个第1类型的任务的总分配时间的差,将相减的结果加到上述第1分配时间上,从而修正分配给上述第2类型的分配时间。
6.如权利要求5所述的任务执行装置,其特征在于,上述分配时间修正部在上述总消耗时间与上述总分配时间的差比上述富余时间大的情况下,在设每执行一次上述多个任务的区间为1周期的情况下,在不超过上述周期时间的范围内,将从上述总消耗时间与上述总分配时间的差中减去了上述富余时间的时间,加到下个周期以后的上述第2类型的任务的第1分配时间上,从而修正分配给上述第2类型的分配时间。
7.如权利要求1所述的任务执行装置,其特征在于,还具备供电减少单元,在上述第2类型的任务转移到等待状态的情况下,在该任务的分配时间的期间减少向执行该任务的处理器的供电。
8.如权利要求1所述的任务执行装置,其特征在于,还具备供电停止单元,在上述多个任务的全部转移到等待状态的情况下,停止向执行该任务的处理器的供电。
9.如权利要求1所述的任务执行装置,其特征在于,在对上述多个任务的每个分配的分配时间中设有最大值及最小值;在上述周期时间存储单元中存储有上述多个任务的分配时间的最大值的合计时间即周期时间;上述任务执行控制单元进行控制,使上述多个第1类型的任务的每个在分配给该任务的分配时间的最大值或最小值内完成执行。
10.如权利要求9所述的任务执行装置,其特征在于,上述任务执行控制单元在对上述多个第1类型的任务的全部进行调度以便在该任务的分配时间的最小值内完成执行时,降低执行该任务的处理器的工作频率。
11.一种任务执行方法,其特征在于,用于一边切换一边分时执行多个任务,对上述多个任务的每个分配了分配时间;上述多个任务包括多个第1类型的任务、和单个的第2类型的任务;该任务执行方法包括从上述多个任务中,按照预先设定的顺序选择任务的步骤;在所选择的任务是第2类型的任务的情况下,对上述第2类型的任务修正所分配的分配时间,以便在上述多个任务的分配时间的合计时间即周期时间内完成上述多个任务的执行的步骤;执行所选择的任务,以使该任务的执行在所分配或所修正的上述分配时间内完成的步骤。
12.一种操作系统,其特征在于,用于一边切换一边分时执行多个任务,对上述多个任务的每个分配了分配时间;上述多个任务包括多个第1类型的任务、和单个的第2类型的任务;上述操作系统使计算机执行从上述多个任务中,按照预先设定的顺序选择任务的步骤;在所选择的任务是第2类型的任务的情况下,对上述第2类型的任务修正所分配的分配时间,以便在上述多个任务的分配时间的合计时间即周期时间内完成上述多个任务的执行的步骤;执行所选择的任务,使该任务的执行在所分配或所修正的上述分配时间内完成的步骤。
全文摘要
一种用于一边切换一边分时执行多个任务的程序执行方法,对上述多个任务的每个分配了分配时间;上述多个任务包括多个第1类型的任务、和单个的第2类型的任务;包括在上述多个任务中,按照预先设定的顺序选择任务的步骤;在所选择的任务是第2类型的任务的情况下,对上述第2类型的任务修正所分配的分配时间,以便在多个任务的分配时间的合计时间即周期时间内完成上述多个任务的执行的步骤;执行所选择的任务以便该任务的执行在分配时间内完成的步骤。
文档编号G06F9/46GK1920781SQ20061012129
公开日2007年2月28日 申请日期2006年8月24日 优先权日2005年8月24日
发明者林邦彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1