程序执行装置的制作方法

文档序号:6362153阅读:172来源:国知局
专利名称:程序执行装置的制作方法
技术领域
本发明涉及一个操作系统的任务管理功能,尤其涉及一个用于确定一个任务执行序列的技术。
背景技术
一个操作系统(OS)的主要功能包含硬件管理、任务管理、数据管理、以及输入/输出管理。在这些当中,任务管理是一个尤其重要的管理一个任务执行序列的功能,其用于允许CPU、存储器、输入/输出装置等等的高效操作。一个“任务”是一个用于管理一个程序从它的激活、执行到结束等等的处理流程的控制单元。更OS管理下操作的程序被当做任务,而且程序的执行、优先处理、并行处理等所有都以任务单元的形式实现。
一种用于确定一个任务执行序列的算法是一个“优先级方法”。简单地说,优先级方法是一种基于为该任务设置的优先级确定一个任务执行序列的方法。
依据一种传统的优先级方法,然而,为它们设置了相同优先级的多个任务的执行序列按这些任务到达的次序确定。该传统的优先级方法因此不能恰当地控制这样被给定相同优先级的任务的执行序列。

发明内容
鉴于上述问题,本发明的目的是提供一个程序执行装置、一个任务管理方法、以及一个用于恰当地确定一个任务执行序列的任务管理程序。
为了实现上述目的,本发明提供了这样一个程序执行装置,其确定一个任务执行序列,其中的每一个都被给定了一个在其之前完成该任务执行的目标完成时间,以及依据确定的执行序列执行这些任务。为每个任务设置具有在它们当中的一个层次关系的多个类型优先级。该程序执行装置包含一个存储单元,其在一个基于为每个任务设置的多个类型优先级确定的存储器位置处,存储每个早已经存在任务的标识符;一个接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收单元;以及一个写入单元,其在该存储单元中基于由该接收部分接收的多个类型优先级确定的存储器位置处,写入由该接收单元接收的标识符。该程序执行装置的特征在于依据在该存储单元中的一个标识符布置序列,确定标识符被保存在存储单元中的任务的一个执行序列。


通过结合说明了本发明的一个特定实施例的附图的本发明的下列详细说明,本发明的这些及其它目的、优点和特征将变得明显。
在附图中图1是一个显示了一个移动电话1构造的框图;图2是一个显示了一个任务调度单元20的功能的框图;图3是一个显示了在一个任务信息存储单元204中的调度状态的框图;图4是一个顺序图,显示了由任务调度单元20执行的一个任务调度操作;图5是一个流程图,显示了一个调度可能性判断处理过程;图6是一个显示了一个调度过程的流程图;图7是一个显示了处理过程A的流程图;图8是一个显示了处理过程B的流程图;图9是一个显示了处理过程C的流程图;图10是一个显示了处理过程D的流程图;图11是一个显示了处理过程E的流程图;图12是一个显示了一个任务切换处理过程的流程图;图13是一个显示了处理过程F的流程图;以及图14是一个显示了处理过程G的流程图。
具体实施例方式
以下描述了一个作为本发明的一个最佳实施例的移动电话1。移动电话1使用了本发明中的任务管理方法。
如图1所示,移动电话1大致由一个发送/接收电路10、一个屏幕显示电路11、一个音频输入电路12、一个音频输出电路13、一个按钮输入电路14、一个存储器15、一个I/O桥接器16、一个计时电路17、以及一个CPU 18组成。虽然没有在这图中显示,移动电话1还包含一个液晶显示器(LCD)单元、一个配有数字键及其它键的操作单元、一个扬声器、以及一个麦克风。
发送/接收电路10、屏幕显示电路11、音频输入电路12、音频输出电路13、按钮输入电路14、以及计时电路17经由一条系统总线19a彼此相连。存储器15和CPU 18经由一条CPU总线19b彼此相连。系统总线19a和CPU总线19b经由I/O桥接器16彼此相连。
发送/接收电路10发送和接收通信数据以及音频数据。通信数据具体地说是电子邮件、发送人的电话号码、等等。在接收一次呼叫、电子邮件、等的时候,发送/接收电路10首先接收通信数据和音频数据。接收的通信数据被一次写入到存储器15中。屏幕显示电路11然后从存储器15中读取该通信数据并且在LCD单元上显示该通信数据。接收的音频数据作为音频,经由音频输出电路13从扬声器输出。
在发送一次呼叫、电子邮件、等等的时候,按钮输入电路14接收一个接受者的电话号码等等的输入。该发送/接收电路10然后使用接收的输入发送一次呼叫、电子邮件、等等。在实现了到该接收者的线连接之后,发送/接收电路10发送经由麦克风和音频输入电路12输入的音频。
存储器15存储通信数据、屏幕数据、音频数据、按钮输入数据、等等。除了这样的数据之外,存储器15存储一个称作“实时操作系统”的控制程序,以及多个用于处理通信数据、屏幕数据、音频数据、和输入数据的指令程序。
计时电路17输出一个超时信号到CPU 18,以给出有关要被执行的程序和要被处理的数据的切换定时的通知。
CPU 18从存储器15中读取一个控制程序。依据读取的控制程序,CPU 18从存储器15中一次读取一个指令程序。CPU 18然后解码该读取的指令程序,并且执行一条通过解码该指令程序获得的指令。在执行该指令的时候,CPU 18从存储器15中读取必要的通信数据、图像数据、屏幕数据、音频数据、以及输入数据。
同样,CPU 18把通过执行该指令的获得的一个操作结果写入到存储器15中。在一个移动电话的情况下,该操作结果具体地对应于上述的通信数据、屏幕数据、和音频数据。CPU 18因此从存储器15中读取这些数据,并且使读取的数据经受发送和回放处理过程。
在当前实施例中,由CPU 18执行的指令程序的执行单元被称为“任务”。同样,依据该控制程序确定一个指令程序(任务)的执行序列被称为“任务调度”。
以下描述了一种在移动电话1中使用的任务调度方法。
为了任务调度,如图2所示,移动电话1包含一个任务调度单元20、一个程序存储单元21、一个计时器控制单元22、以及一个执行控制单元23。此外,任务调度单元20包含一个任务接收单元201、一个调度-可能性判断单元202、一个调度单元203、一个任务信息存储单元204、以及一个任务切换单元205。
任务调度单元20、程序存储单元21、计时器控制单元22、以及执行控制单元23具体实现上述的定时电路17、存储器15、CPU 18等等实现。存储器15存储一个用于任务调度的计算机程序。任务调度单元20、程序存储单元21、计时器控制单元22、以及执行控制单元23的功能由依据保存在存储器15中、用于任务调度的计算机程序进行操作的CPU 18实现。
在这些部件当中,程序存储单元21、计时器控制单元22、以及执行控制单元23众所周知是和传统技术有关的,因此不在当前实施例中进行描述。以下特别地描述了任务调度单元20。
任务接收单元201接收一个已经依据一个用户操作等等产生的任务。更具体地说,任务接收单元201从执行控制单元23中接收一个指示执行一个任务的请求的信号。任务接收单元201然后从程序存储单元21中读取对应于接收的任务的“任务信息”、“优先级”、“截止时间”(此后称为“DL时间”)、以及“最差情况执行周期”。
“任务信息”由一个程序起始地址和一个堆栈指针组成。程序起始地址是一个指示一个已经在那儿写入该任务的位置的地址。堆栈指针是一个指示一个该任务的状态被暂时堆积在那儿的位置的指针。
“优先级”是这样一种类型的优先级,其起一个用于确定在该执行序列中的任务级别的条件的作用。优先级具体地说是一个表示该条件的数字值。在当前实施例中,优先级是一个指示三个级别“高”、“中”、和“低”中的一个的数字值。
“DL时间”是一个在其之前该任务的执行必须完成的目标时间,而且以“小时/分钟/秒/微秒”的单元形式表示。在当前实施例中,“DL时间”是另一种类型的优先级,其提供了一个用于确定在该执行序列中的任务级别的条件,而且被认为优于一个如上所述类型,即“优先级等级”,的优先级。在当前实施例中,“DL时间”可以被称为“第一类型优先级”,以及“优先级”可以被称为“第二类型优先级”。
“最差情况执行周期”是一个被预测的、从该任务执行的开始到结束的时间周期。
任务接收单元201输出读取的“任务信息”、“优先级”、“DL时间”、以及“最差情况执行周期”到调度-可能性判断单元202。
任务信息存储单元204管理为每个任务设置的“DL时间”和“优先级”。如图3所示,任务信息存储单元204包含一个开始指针30、组400、组500及其它的组。
在任务信息存储单元204中,开始指针30、组400、组500、及其它组形成了一个以规定次序的排列序列,而具有开始指针30定位在该序列的开始处。
组400用于集体管理有关多个为其设置了相同的DL时间的信息。组400由DCB 40、TCB 41、TCB 42、等等组成。
在组400中,DCB 40、TCB 41、TCB 42、等等形成了一个以规定次序的排列序列,而具有DCB 40定位于该序列的开始处。TCB(任务控制块)是用于管理一个任务管理信息。一个TCB对应于一个任务。DCB(截止时间控制块)是用于管理通常为这样的多个任务设置的DL时间的管理信息,其中这些多个任务由被包含在包含该DCB的组中的多个TCB管理。
开始指针30由一个“DL参考时间”301和一个“DCB连接地址”302组成。“DL参考时间”301是为TCB被保存在该任务信息存储单元204中的所有任务设置的DL时间中的最早时间。“DCB连接地址”302是一个地址,指示被包含在组400中的DCB 40已经被写入在该处的一个位置。
DCB 40包含一个“相对DL值”401、一个“最差情况执行周期”402、一个“DCB连接地址”403、以及一个“TCB连接地址”404。该“相对DL值”401指示一个从DL参考时间301到通常为由包含在组400中的TCB管理的任务设置的DL时间的时间周期。
“最差情况执行周期”402是通过把为由被包含在组400中的所有TCB管理的任务设置的最差情况执行周期总和到一起获得的一个总数时间周期。“DCB连接地址”403是一个地址,指示被包含在组500中的DCB 50已经被写入在该处的一个位置。“TCB连接地址”404是一个地址,指示TCB 41已经写入在该处的一个位置。
TCB 41由一个“优先级”411、“任务信息”412、以及一个“TCB连接地址”413组成。“优先级”411是一个值,指示一个为由TCB 41管理的一个任务设置的优先级。“任务信息”412是一个地址,指示由TCB 41管理的任务已经写入在该处的一个位置。“TCB连接地址”413是一个地址,指示TCB 42已经写入在该处的一个位置。
TCB 42由一个“优先级”421、“任务信息”422、以及一个“TCB连接地址”423组成。“优先级”421、“任务信息”422、以及“TCB连接地址”423具有分别和“优先级”411、“任务信息”412、以及“TCB连接地址”413相同的结构,因此在此不进行描述。
组500由一个DCB 50、一个TCB 51等组成。
DCB 50由一个“相对DL值”501、一个“最差情况执行周期”502、一个“DCB连接地址”503、以及一个“TCB连接地址”504组成。“相对DL值”501、“最差情况执行周期”502、“DCB连接地址”503、以及“TCB连接地址”504具有分别和“相对DL值”401、“最差情况执行周期”402、“DCB连接地址”403、以及“TCB连接地址”404相同的结构,因此不在此进行描述。
TCB 51由一个“优先级”511、“任务信息”512、以及一个“TCB连接地址”513组成。“优先级”511、“任务信息”512、以及“TCB连接地址”513具有分别和“优先级”411、“任务信息”412、以及“TCB连接地址”413相同的结构,因此在此不进行描述。
应当注意到开始指针30、组400、组500、及其它组按较早的DL时间次序形成该排列序列,这些较早DL时间中的每一个都是通常为被包含在相应组中的TCB所设置。作为一个示例,任务信息存储单元204可以存储一个指示从DL参考时间到DL时间“6/35/27”的时间周期的值,作为包含TCB 41的组400的相对DL值401。同样,任务信息存储单元204可以存储一个指示从DL参考时间到DL时间“6/35/43”的时间周期的值,作为包含TCB 51的组500的相对DL值501。
也应注意到包含在组400中的TCB 41、TCB 42、等等按为这些TCB设置的较高优先级次序,形成该排列序列。作为一个示例,任务信息存储单元204可以在一个区域中为优先级411存储一个指示“高”的值以及在一个区域中为优先级421储一个指示“中”的值。
此外,任务信息存储单元204在一个被包含在这样一个DCB中的DCB连接地址区域中存储一个指示最后的DCB的地址,该DCB的序列包含为其设置了最近DL时间的TCB。具体地说,任务信息存储单元204存储了一个由最后的DCB和多个TCB组成的一个序列,其中为这些TCB设置了数据值是“FF/FF/FF”的DL时间。为其设置了DL时间“FF/FF/FF”的TCB以基于为这些TCB设置的优先级(即,第二类型优先级)确定的次序形成这个序列。数据值“FF/FF/FF”被假设为一个能够由一个构成DL时间的预定位序列所使用的最大值。通过把为TCB设置的DL时间设置在“FF/FF/FF”处,因此根据第一类型优先级,TCB的优先级能够形成为最低。
当一个新任务要被调度时,该调度-可能性判断单元202判断所有已经调度了的任务和该新调度任务的执行是否能够在为每个任务设置的DL时间之前完成。
调度-可能性判断单元202具有变量i、X、和Y。调度-可能性判断单元202接收对应于该新任务的任务信息、优先级、DL时间、和最差情况执行周期,并且读取包含在任务信息存储单元204中的开始指针中的DL参考时间。此外,调度-可能性判断单元202从计时器控制单元22中获得当前时间。
调度-可能性判断单元202重复以下从(i)到(v)的处理过程n次(其中变量i=1,2,...,n)。
(i)分配一个指示该DL参考时间的值到变量X。向变量Y分配一个指示从当前时间新任务最差情况执行周期的时间逝去处的时间值。
(ii)从任务信息存储单元204中读取包含在DCB(i)中的相对DL值(i)和最差情况执行周期(i)。
(iii)向变量X分配一个通过把变量X值和相对DL值(i)相加获得的值。向变量Y分配一个通过把变量Y的一个值和最差情况执行周期(i)相加获得的值。
(iv)比较变量X和Y的值。
(v)向变量i分配一个通过把变量i的值和1相加获得的值。
当在任何重复比较变量X和Y的值中检测到X≤Y时,即当DL时间在从当前时间为最差情况执行周期的时间逝去处的时间或者在它之前,该调度可能性判断单元202输出一个指示调度是不可能的的信号到执行控制单元23。
在另一方面,当在所有重复比较变量X和Y的值中检测到X>Y,即当DL时间是在距离当前时间为最差情况执行周期的时间逝去处的时间之后时,调度可能性判断单元202输出对应于该新任务任务信息、优先级、DL时间、和最差情况执行周期到调度单元203。
调度单元203在基于对应于该新任务的DL时间和优先级确定的、在任务信息存储单元204中的一个存储器位置处,为管理该新任务写入一个TCB。
调度单元203具有变量i和T。调度单元203从调度可能性判断单元202接收对应于该新任务的任务信息、优先级、DL时间、和最差情况执行周期,并且读取包含在在任务信息存储单元204的开始指针中的DCB连接地址和DL参考时间。
调度单元203然后分配1到变量i以及一个指示该DL参考时间的值到变量T,以及判断DCB(1)的数据是否存在于存储单元204中。依据该判断结果,调度单元203以下列方式执行处理过程。
(i)当DCB(1)数据不存在时,调度单元203执行处理过程A(写入到存储单元204中)。
(ii)当DCB(1)数据存在时,调度单元203把一个指示该任务DL时间的值和变量T的值进行比较。
(iii)-1当任务的DL时间<变量T时,调度单元203执行处理过程B(写入到存储单元204中)。
(iv)-2当任务的DL时间=变量T时,调度单元203执行处理过程E(写入到存储单元202中)。
(v)-3当任务的DL时间>变量T时,调度单元203增加1到变量i的值中并且判断DCB(i)数据是否存在。
(vi)-3-1当DCB(i)数据不存在时,调度单元203执行处理过程C(写入到存储单元204中)。
(vii)-3-2当DCB(i)数据存在时,调度单元203读取包含在DCB(i)中的相对DL值,向变量T分配一个通过把变量T的值和相对DL值相加获得的值、以及把指示该任务DL时间的值和变量T的值进行比较。
(viii)-3-2-1当任务的DL时间>变量T时,调度单元203执行处理过程D(写入到存储单元204中)。
(ix)-3-2-2当任务的DL时间=变量T时,调度单元203执行处理过程E(写入到存储单元204中)。
以下更详细地描述了处理过程A到处理过程E。
调度单元203在任务信息存储单元204中产生一个用于TCB(a)的区域,并且在该产生的区域中写入TCB(a)的数据。更具体地说,调度单元203在任务信息存储单元204中把从调度-可能性判断单元202接收的任务优先级写入到一个用于TCB(a)的优先级的区域中,并且把接收的任务信息写入到一个用于TCB(a)的任务信息的区域中。此外,调度单元203分配一个NULL(空)值到一个用于该TCB(a)的TCB连接地址的区域中。
然后,调度单元203在任务信息存储单元204中产生一个用于DCB(a)的区域,并且在该产生的区域中写入DCB(a)的数据。更具体地说,调度单元203分配一个值0到在任务信息存储单元204中、用于DCB(a)的相对DL值的区域中,在一个用于DCB(a)的最差情况执行周期的区域中写入该任务接收的最差情况执行周期、分配一个NULL值到一个用于该DCB(a)的DCB连接地址的区域中,以及写入一个指示该TCB(a)的位置的地址到一个用于该DCB(a)的TCB连接地址的区域中。利用这个处理过程,DCB(a)和TCB(a)以在任务信息存储单元204中的确定次序形成一个排列序列。
此外,调度单元203在任务信息存储单元204中在DL参考时间301上写入任务的DL时间。
更进一步,调度单元203在任务信息存储单元204中在DCB连接地址302上写入一个指示DCB(a)的位置的地址。利用这个处理过程,开始指针和DCB(a)以在任务信息存储单元204中的确定次序形成一个排列序列。
调度单元203输出该任务的DL时间到计时器控制单元22。
调度单元203在任务信息存储单元204中产生一个用于TCB(b)的区域,并且在该产生的区域中写入TCB(b)的数据。更具体地说,调度单元203在任务信息存储单元204中把从调度-可能性判断单元202接收的任务优先级写入到一个用于TCB(b)的优先级的区域中,并且把接收的任务信息写入到一个用于TCB(b)的任务信息的区域中。此外,调度单元203分配一个NULL值到一个用于该TCB(b)的TCB连接地址的区域中。
此外,调度单元203在任务信息存储单元204中产生一个用于DCB(b)的区域,并且在该产生的区域中写入DCB(b)的数据。更具体地说,调度单元203分配一个值0到在任务信息存储单元204中、用于DCB(b)的相对DL值的区域中,在一个用于DCB(b)的最差情况执行周期的区域中写入该任务的最差情况执行周期,以及写入一个指示该DCB(1)的位置的地址到一个用于该DCB(b)的DCB连接地址的区域中。利用这个处理过程,DCB(b)和DCB(1)以在任务信息存储单元204中的确定次序形成一个排列序列。
更进一步,调度单元203把一个指示TCB(b)的位置的一个地址写入到一个用于DCB(b)的TCB连接地址的区域中。利用这个处理过程,DCB(b)和TCB(b)以在任务信息存储单元204中的确定次序形成一个排列序列。
此外,调度单元203在任务信息存储单元204中在DCB(1)的相对DL值上写入一个值(T-任务的DL时间),即一个指示从由变量T的值指示的时间到该任务DL时间的时间周期的值,并且在DCB连接地址302上写入一个指示DCB(b)的位置的地址。利用这个处理过程,开始指针和DCB(b)以在任务信息存储单元204中的确定次序形成一个排列序列。
调度单元203输出该任务的DL时间到计时器控制单元22。
调度单元203在任务信息存储单元204中产生一个用于TCB(c)的区域,并且在该产生的区域中写入TCB(c)的数据。更具体地说,调度单元203在任务信息存储单元204中把从调度-可能性判断单元202接收的任务优先级写入到一个用于TCB(c)的优先级的区域中,并且把该任务接收的任务信息写入到一个用于TCB(c)的任务信息的区域中。此外,调度单元203分配一个NULL值到一个用于该TCB(c)的TCB连接地址的区域中。
此外,调度单元203在任务信息存储单元204中产生一个用于DCB(c)的区域,并且在该产生的区域中写入DCB(c)的数据。更具体地说,调度单元203把一个值(该任务的DL时间-T),即一个指示从该任务的DL时间到由一个变量T值指示的时间的时间周期的值,分配到一个用于该DCB(c)的相对DL值的区域中,在用于该DCB(c)的最差情况执行周期的区域中写入该任务的最差情况执行周期,分配一个NULL值到一个用于该DCB(c)的DCB连接地址的区域中,并且把一个指示该TCB(c)的位置的地址写入到一个用于该DCB(c)的TCB连接地址的区域中。
在该处理过程情况下,DCB(c)和TCB(c)以在任务信息存储单元204中的确定次序形成一个排列序列。
更进一步,调度单元203在任务信息存储单元204中在DCB(i)的DCB连接地址上写入一个指示该DCB(c)的位置的地址。在该处理过程情况下,DCB(i)和DCB(c)以在任务信息存储单元204中的确定次序形成一个排列序列。
调度单元203在任务信息存储单元204中产生一个用于TCB(d)的区域,并且在该产生的区域中写入TCB(d)的数据。更具体地说,调度单元203在任务信息存储单元204中把从调度-可能性判断单元202接收的任务优先级写入到一个用于TCB(d)的优先级的区域中,并且把该任务接收的任务信息写入到一个用于TCB(d)的任务信息的区域中。此外,调度单元203分配一个NULL值到一个用于该TCB(d)的TCB连接地址的区域中。
此外,调度单元203在任务信息存储单元204中产生一个用于DCB(d)的区域,并且在该产生的区域中写入DCB(d)的数据。更具体地说,调度单元203把一个值(该任务的DL时间-T),即一个指示从该任务的DL时间到由一个变量T值指示的时间的时间周期的值,分配到一个用于DCB(d)的相对DL值的区域中,在一个用于DCB(d)的最差情况执行周期的区域中写入该任务的最差情况执行周期,以及把一个指示该DCB(i)的位置的地址写入到一个的DCB(d)的DCB连接地址的区域中。在该处理过程情况下,DCB(d)和DCB(i)以在任务信息存储单元204中的确定次序形成一个排列序列。
更进一步,调度单元203在任务信息存储单元204中、一个用于DCB(d)的TCB连接地址的区域中写入一个指示该TCB(d)的位置的地址。在该处理过程情况下,DCB(d)和TCB(d)以在任务信息存储单元204中的确定次序形成一个排列序列。
更进一步,调度单元203在任务信息存储单元204中、一个用于DCB(i-1)的DCB连接地址的区域中写入一个指示该DCB(d)的位置的地址。在该处理过程情况下,DCB(i-1)和DCB(d)以在任务信息存储单元204中的确定次序形成一个排列序列。
调度单元203具有变量j。调度单元203首先设置变量j的初始值为1,然后识别由被包含在任务信息存储单元204中的DCB(i)中的TCB连接地址指示的TCB(j)。
然后,调度单元203从任务信息存储单元204中读取TCB(j)的优先级,并且把该任务接收的优先级和读取的TCB(j)优先级进行比较。
当任务接收的优先级低于或者等于TCB(j)的优先级时,调度单元203向变量j的值增加1。然后,调度单元203再次判断TCB(j)是否被保存在任务信息存储单元204中。
只要断定TCB(j)被保存在任务信息存储单元204中,调度单元203就重复把任务接收的优先级和TCB(j)的优先级进行比较的处理过程,以及把变量j的值增1的处理过程。
当断定TCB(j)不再保存在任务信息存储单元204中时,或者当任务接收的优先级高于TCB(j)的优先级时,调度单元203在任务信息存储单元204中产生一个用于TCB(e)的区域并且在产生的区域中写入TCB(e)的数据。
更具体地说,调度单元203把从调度-可能性判断单元202接收的任务优先级写入到一个用于TCB(e)的优先级的区域中,把接收的任务信息写入到一个用于TCB(e)的任务信息的区域中,以及把一个指示TCB(j)的位置的地址写入到一个用于TCB(e)的TCB连接地址的区域中。
利用这个处理过程,TCB(e)和TCB(j)以在任务信息存储单元204中的确定次序形成一个排列序列。
在这之后,调度单元203在任务信息存储单元204中、一个用于TCB(j-1)的TCB连接地址的区域中写入一个指示该TCB(e)的位置的地址。在该处理过程情况下,TCB(j-1)和TCB(e)以在任务信息存储单元204中的确定次序形成一个排列序列。
调度单元203然后从在任务信息存储单元204中、一个用于DCB(i)的最差情况执行周期区域中读取该最差情况执行周期,并且在任务信息存储单元204中在DCB(i)的最差情况执行周期上写入一个通过把读取的最差情况执行周期和该任务的、接收的最差情况执行周期相加获得的值。
任务切换单元205切换要由CPU 18执行的任务。
当从计时器控制单元22收到一个超时信号时,任务切换单元205执行在任务之间的切换的处理过程F。
当任务切换单元205从执行控制单元23接收一个结束信号时,它读取被包含在任务信息存储单元204中的TCB 41中的TCB连接地址413。此外,任务切换单元205判断读取TCB连接地址413是否是一个NULL值。
当TCB连接地址413的一个值是NULL值时,任务切换单元205执行在任务之间的切换的处理过程F。
在另一方面,当TCB连接地址413的一个值不是NULL值时,任务切换单元205执行在任务之间的切换的处理过程G。
以下详细地描述了处理过程F和处理过程G。
任务切换单元205从任务信息存储单元204中读取开始指针30、DCB 40、和DCB 50,并且在任务信息存储单元204中在DL参考时间301上写入一个值,该值指示从当前保存在开始指针30中的DL参考时间为由包含在DCB 50中的相对DL值指示的时间周期的时间处消逝的时间。任务切换单元205然后在任务信息存储单元204中在DCB连接地址302上写入一个指示DCB 50的位置的地址,并且进一步在包含在DCB 50中的相对DL值501上写入一个值0。
此外任务切换单元205从任务信息存储单元204中删除DCB 40以及所有与DCB 40连接的TCB。
在这之后,任务切换单元205从任务信息存储单元204中读取由包含在DCB 50中的TCB连接地址指示的TCB 51,以及输出包含在读取的TCB 51中的任务信息512到执行控制单元23。
任务切换单元205从任务信息存储单元204中读取DCB 40、TCB41、和TCB 42,并且在包含在DCB 40中的TCB连接地址404上写入一个指示TCB 42的位置的地址。
在这之后,任务切换单元205从任务信息存储单元204中删除TCB41,以及输出被包含在TCB 42中的任务信息422到执行控制单元23。
以下参考如图4所示的顺序图描述任务调度单元20的操作。
执行控制单元23通知任务接收单元201一个新任务已经产生了(步骤S101)。
任务调度单元20发送一个指示该新任务在程序存储单元21中的一个位置的地址(步骤S102),以及读取该新任务的任务信息(步骤S103)。基于读取的任务信息,任务调度单元20判断该新任务是否能够被调度(步骤S104)。
当断定该新任务不能被调度时,任务调度单元20向执行控制单元23输出一个指示调度是不可能的信号(步骤S105)。
当断定新任务能够被调度时,任务调度单元20执行新任务的调度(步骤S106)。在此,如果被包含在开始指针30中的DL参考时间301要被改变的话,则任务调度单元20向计时器控制单元22输出该新任务的DL时间(步骤S107)。
任务切换单元205从计时器控制单元22接收一个超时信号(步骤S108),以及从执行控制单元23接收任务结束信号(步骤S109),然后执行在任务之间的切换(步骤S110)。
以下参考在图5中显示的流程图描述一个调度可能性判断处理过程。
调度-可能性判断单元202从任务接收单元201接收对应于该新任务的任务信息、优先级、DL时间、以及最差情况执行周期(步骤S201),从任务信息存储单元204中读取DL参考时间(步骤S202),以及从计时器控制单元22中获得当前时间(步骤S203)。
在这之后,调度可能性判断单元202向变量i分配1,向变量X分配一个指示DL参考时间的值,以及向变量Y分配一个指示从当前时间为最差情况执行周期消逝的时间处的时间值(步骤S204)。
然后,在变量i值达到n之前,调度可能性判断单元202重复从步骤S206到S210的处理过程(步骤S205)。
更具体地说,调度可能性判断单元202从任务信息存储单元204中读取包含在DCB(i)中的相对DL值(i)和最差情况执行周期(i)(步骤S206),向变量X分配一个通过把变量X的值和相对DL值(i)相加获得的值,以及向变量Y分配一个通过把变量Y的值和最差情况执行周期(i)相加获得的值(步骤S207)。
调度可能性判断单元202把变量X和Y值进行比较(步骤S208)。
当XY(在步骤S208中“”)时,调度可能性判断单元202向执行控制单元23输出一个指示该调度是不可能的信号(步骤S209)。当X>F(在步骤S208中“>”)时,调度可能性判断单元202向变量i分配一个通过把变量i的值和1相加获得的值(步骤S210),并且重复上述从步骤S206到S210的处理过程(步骤S211)。
在完成这个循环处理过程之后,调度可能性判断单元202向调度单元203输出对应于该新任务的任务信息、优先级、DL时间、以及最差情况执行周期(步骤S212)。
以下参考在图6中显示的流程图描述了一次调度过程。
调度断单元203从调度可能性判断单元202中接收对应于该新任务的任务信息、优先级、DL时间、以及最差情况执行周期(步骤S301),以及从任务信息存储单元204中读取DCB连接地址和包含在开始指针中的DL参考时间(步骤S302)。
然后,调度单元203向变量i分配1,以及向变量T分配一个指示该DL参考时间的值(步骤S303)。
当i=1时,调度单元203判断DCB(1)是否存在(步骤S304)。当断定DCB(1)不存在(在步骤S304中的“NO”)时,调度单元203执行处理过程A(参见图7)。当断定DCB(1)存在(在步骤S304中的“YES”)时,调度单元203把一个指示该任务的DL时间的值和变量T的值进行比较(步骤S305)。
当任务的DL时间<变量T(在步骤S305中的“<”)时,调度单元203执行处理过程B(参见图8)。在另一方面,当任务的DL时间=变量T(在步骤S305中的“=”)时,调度单元203执行处理过程E(参见图11)。
此外,当任务的DL时间>变量T(在步骤S305中的“>”)时,调度单元203把通过把变量i的值和1相加获得的值分配给变量i(步骤S306),并且判断DCB(i)是否存在(步骤S307)。
当断定DCB(i)不存在(在步骤S307中的“NO”)时,调度单元203执行处理过程C(参见图9)。在另一方面,当断定DCB(i)存在(在步骤S307中的“YES”)时,调度单元203读取被包含在DCB(i)中的相对DL值(步骤S308),把通过变量T的值和该相对DL值相加获得的值分配给变量T(步骤S309),并且把一个指示该任务的DL时间的值和变量T的值进行比较(步骤S310)。
当任务的DL时间<变量T(在步骤S310中的“<”)时,调度单元203执行处理过程D(参见图10)。
在另一方面,当任务的DL时间=变量T(在步骤S310中的“=”)时,调度单元203执行处理过程E。
当任务的DL时间>变量T(在步骤S310中的“>”)时,调度单元203返回到步骤S306,并且重复从步骤S306到步骤S310的处理过程。
以下参考在图7中显示的流程图描述了处理过程A。
调度单元203在任务信息存储单元204中产生一个用于TCB(a)的区域(步骤S401),把该任务的优先级写入到一个用于该TCB(a)的优先级的区域中(步骤S402),把该任务的任务信息写入到一个用于该TCB(a)的任务信息的区域中(步骤S403),以及把一个NULL值分配到一个用于TCB(a)的TCB连接地址的区域中(步骤S404)。
调度单元203在任务信息存储单元204中产生一个用于DCB(a)的区域(步骤S405),把值0分配到一个用于DCB(a)的相对DL值的区域中(步骤S406),把该任务的最差情况执行周期写入到一个用于该DCB(a)的最差情况执行周期的区域中(步骤S407),把一个NULL值分配到一个用于DCB(a)的DCB连接地址的区域中(步骤S408),以及把一个指示TCB(a)的位置的地址写入到一个用于DCB(a)的TCB连接地址的区域中(步骤S409)。
在这之后,调度单元203在任务信息存储单元204中在DL参考时间301上写入任务的DL时间(步骤S410),以及在DCB连接地址302上写入一个指示DCB(a)的位置的地址(步骤S411)。此外,调度单元203向计时器控制单元22输出该任务的DL时间(步骤S412)。
以下参考在图8中显示的流程图描述了处理过程B。
调度单元203在任务信息存储单元204中产生一个用于TCB(b)的区域(步骤S501),把该任务的优先级写入到一个用于该TCB(b)的优先级的区域中(步骤S502),把该任务的任务信息写入到一个用于该TCB(b)的任务信息的区域中(步骤S503),以及把一个NULL值分配到一个用于TCB(b)的TCB连接地址的区域中(步骤S504)。
调度单元203在任务信息存储单元204中产生一个用于DCB(b)的区域(步骤S505),把值0分配到一个用于DCB(b)的相对DL值的区域中(步骤S506),把该任务的最差情况执行周期写入到一个用于该DCB(b)的最差情况执行周期的区域中(步骤S507),把一个指示DCB(1)的位置的地址写入到一个用于DCB(b)的DCB连接地址的区域中(步骤S508),以及把一个指示TCB(b)的位置的地址写入到一个用于DCB(b)的TCB连接地址的区域中(步骤S509)。
在这之后,调度单元203中在该DCB(1)的相对DL值上写入一个值(T-任务的DL时间),即一个指示从由变量T的值指示的时间到该任务DL时间的时间周期的值(步骤S510),在任务信息存储单元204中在DL参考时间301上写入任务的DL时间(步骤S511),以及在DCB连接地址302上写入一个指示DCB(b)的位置的地址(步骤S512) 。
在这之后,调度单元203向计时器控制单元22输出该任务的DL时间(步骤S513)。
以下参考在图9中显示的流程图描述了处理过程C。
调度单元203在任务信息存储单元204中产生一个用于TCB(c)的区域(步骤S601),把该任务的优先级写入到一个用于该TCB(c)的优先级的区域中(步骤S602),把该任务的任务信息写入到一个用于该TCB(c)的任务信息的区域中(步骤S603),以及把一个NULL值分配到一个用于TCB(c)的TCB连接地址的区域中(步骤S604)。
调度单元203在任务信息存储单元204中产生一个用于DCB(c)的区域(步骤S605),分配一个值(任务的DL时间-T)、即一个指示从该任务的DL时间到由变量T的值指示的时间的时间周期的值、到一个用于该DCB(c)的相对DL值的区域中(步骤S606),写入该任务的最差情况执行周期到一个用于该DCB(c)的最差情况执行周期的区域中(步骤S607),写入一个NULL值到一个用于该DCB(c)的DCB连接地址的区域中(步骤S608),以及写入一个指示该TCB(c)位置的地址到一个用于该DCB(c)的TCB连接地址的区域中(步骤S609)。
在这之后,调度单元203把一个指示DCB(c)的位置的一个地址写入到一个用于DCB(i)的DCB连接地址的区域中(步骤S610)。
以下参考在图10中显示的流程图描述了处理过程D。
调度单元203在任务信息存储单元204中产生一个用于TCB(d)的区域(步骤S701),把该任务的优先级写入到一个用于该TCB(d)的优先级的区域中(步骤S702),把该任务的任务信息写入到一个用于该TCB(d)的任务信息的区域中(步骤S703),以及把一个NULL值分配到一个用于TCB(d)的TCB连接地址的区域中(步骤S704)。
调度单元203然后在任务信息存储单元204中产生一个用于DCB(d)的区域(步骤S705),分配一个值(该任务的DL时间-T)、即一个指示从该任务的DL时间到由变量T的值指示的时间的时间周期的值、到一个用于该DCB(d)的相对DL值的区域中(步骤S706),写入该任务的最差情况执行周期到一个用于该DCB(d)的最差情况执行周期的区域中(步骤S707),写入一个指示该DCB(i)的位置的地址到一个用于该DCB(d)的DCB连接地址的区域中(步骤S708),以及写入一个指示该TCB(d)位置的地址到一个用于该DCB(d)的TCB连接地址的区域中(步骤S709)。
在这之后,调度单元203把一个指示DCB(d)的位置的一个地址写入到一个用于DCB(i-1)的DCB连接地址的区域中(步骤S710)。
以下参考在图11中显示的流程图描述了处理过程E。
调度单元203具有变量j。调度单元203设置变量j的初始值为1(步骤S801),识别由被包含在在任务信息存储单元204中的DCB(i)中的TCB连接地址指示的TCB(j)(步骤S802),以及读取TCB(j)的优先级(步骤S803)。
在这之后,调度单元203把该任务的优先级和TCB(j)的优先级进行比较(步骤S804)。
当任务的优先级TCB(j)的优先级(在步骤S804中的“”)时,调度203向变量j的值增1(步骤S805),并且判断TCB(j)是否存在(步骤S806)。
当断定TCB(j)存在(在步骤S806中的“YES”)时,调度单元203返回到步骤S804。
在另一方面,当断定TCB(j)不存在(在步骤S806中的“NO”)时,或者当断定任务的优先级>TCB(j)的优先级(在步骤S804中的“>”)时,该调度单元在任务信息存储单元204中产生一个用于TCB(e)的区域(步骤S807),把该任务的优先级写入到一个用于该TCB(e)的优先级的区域中(步骤S808),写入该任务的任务信息到一个用于TCB(e)的任务信息的区域中(步骤S809),以及写入一个指示该TCB(j)位置的地址到一个用于该TCB(e)的TCB连接地址的区域中(步骤S810)。
在这之后,调度单元203把一个指示TCB(e)位置地址写入到一个用于TCB(j-1)的TCB连接地址的区域中(步骤S811)从用于DCB(i)的最差情况执行周期区域中读取一个指示时间H的值(步骤S812),以及把一个通过把读取的指示时间H的值和任务的最差情况执行周期相加获得的值写入到一个用于DCB(i)的最差情况执行周期的区域中(步骤S813)。
以下参考在图12中显示的流程图描述了一个任务切换过程。
任务切换单元205分析接收的一个信号的类型(步骤8901)。
当接收的信号是一个超时信号(在步骤S901中的“TIME-OUTSIGNAL”)时,该任务切换单元205执行处理过程F。当接收的信号是一个结束信号(在步骤S901中的“END SIGNAL”)时,任务切换单元205读取包含在TCB 41中的TCB连接地址413(步骤S902),并且判断读取的TCB连接地址413是否是一个NULL值(步骤S903)。
当断定TCB连接地址413的值是一个NULL值(在步骤S903中的“YES”)时,任务切换单元205执行处理过程F。当断定TCB连接地址413的值不是一个NULL值(在步骤S903中的“NO”)时,任务切换单元205执行处理过程G。
以下参考在图13中显示的流程图描述了处理过程F。
任务切换单元205从任务信息存储单元204中读取开始指针30、DCB 40、和DCB 50(步骤S911),并且在读取的开始指针的DL参考时间上写入一个通过把指示DL参考时间的值和包含在DCB 50中的相对DL值相加而获得的值(步骤S912)。
在这之后,任务切换单元205在开始指针的DCB连接地址上写入一个指示DCB 50的位置的地址(步骤S913),以及在DCB 50的相对DL值上写入0(步骤S914)。
任务切换单元205然后从任务信息存储单元204中删除DCB 40和所有连接到DCB 40的TCB(步骤S915),读取由DCB 50的TCB连接地址指示的TCB 51,以及输出包含在读取的TCB 51中的输出任务信息到执行控制单元23(步骤S916)中。
以下参考在图14中显示的流程图描述了处理过程G。
任务切换单元205从任务信息存储单元204中读取DCB 40、TCB41、和TCB 42(步骤S921),并且在包含在DCB 40中的TCB连接地址404上写入一个指示TCB 42位置的地址(步骤S922)。
然后,任务切换单元205从任务信息存储单元204中删除TCB 41(步骤S923),以及输出被包含在TCB 42中的任务信息422到执行控制单元23(步骤S924)。
虽然本发明基于上述实施例进行了描述,本发明能够由没有背离本发明基本概念的其它修改所体现。以下描述了这样修改的示例。
(1)为一个任务设置的优先级类型不应该限于两个类型,即在上述实施例中使用的DL时间和优先级。可以使用更多类型的优先级。在此应当注意到使用的多个类型优先级给出了在它们当中的一个层次关系。
此外,为一个任务设置的优先级类型可能仅仅是一个类型,即DL时间。以下描述了一种不同于上述实施例中的调度方法、用于调度仅仅为每个任务设置了一种类型的优先级,即DL时间的任务调度方法。
任务信息存储单元204把一个类型的优先级,即DL时间,当作两个类型的优先级,即第一类型优先级和第二类型优先级进行管理。第一类型优先级具体地说是一个通过把对应于为每个任务设置的DL时间的预定单元的一个部分和一个整数相乘获得的值。第二类型优先级具体地说是一个剩余部分的值,该剩余部分对应于小于为每个任务设置的DL时间的预定单元的单元。如图3所示,任务信息存储单元204包含开始指针30、组400、组500及其它的组。例如,当DL时间由小时/分钟/秒/毫秒的单元组成时,第一类型的优先级可以由单元部份“小时/分钟/秒”组成,而第二类型优先级可以由单元部分“毫秒”组成。
开始指针30、组400、组500、及其它组形成了一个以确定的次序的排列序列,其具有开始指针30定位在该序列的开始处。
组400、组500、及其它组以基于第一类型优先级确定的次序形成一个排列序列。
组400用于集体管理有关多个为其设置了相同的第一类型优先级的信息。组400由DCB 40、TCB 41、TCB 42、等等组成。
DCB 40、TCB 41、TCB 42、等等形成了一个以确定的次序的排列序列,具有DCB 40定位于该序列的开始处。TCB 41、TCB 42、等等以基于第二类型优先级确定的次序形成一个排列序列。
调度单元203在一个基于为该新任务设置的第一类型优先级和第二类型优先级确定的、在该任务信息存储单元204中的存储器位置处写入一个管理一个新任务TCB。
(2)DL时间的数据结构不局限于在上述实施例中使用的、由小时/分钟/秒/毫秒单元组成的结构,而是可以是一个由其它适当的时间单元组成的结构。
(3)用作优先级值未必限于指示三个级别,就是高、中、和低的值,而是可以是其它适当的参考值。
(4)虽然数据结构“FF/FF/FF”在上述实施例中被用作显示该DL时间的最低值的数据结构,但是其它适当的数据值可以被使用用作这样的一个数据结构。
(5)依据本发明,在上述实施例中的任务切换单元205可以执行称作“预占”的排它控制。
下面描述了这样的、由任务切换单元205执行的排它控制。
在收到一个超时信号或者一个结束信号时,任务切换单元205从任务信息存储单元204中读取保存在一个用于TCB的TCB连接地址的区域中的数据,该TCB管理当前被执行的任务。
任务切换205判断一个用于由该读取的数据指示的TCB任务信息的区域是否包含保护信息。保护信息是指示由该TCB管理的任务是否在一个不能由排它控制执行的状态中的控制信息。
当断定该区域包含保护信息时,任务切换单元205进一步读取保存在用于由该读取数据指示的TCB的TCB连接地址的区域中的数据,以及判断一个用于由该读取数据指示的TCB的任务信息的区域是否包含保护信息。只要判断结果是肯定的,任务切换单元205就重复地执行上述对在TCB连接地址区域中的数据的读取以及上述对该任务信息区域是否包含保护信息的判断。
当断定该区域没有包含保护信息时,任务切换单元205执行和在上述实施例中描述的相同的任务切换处理过程。
(6)本发明可以由在上述实施例中描述的方法实现。此外,本发明可以通过一个在一台计算机上执行、用于实现这些方法的计算机程序实现,或者通过一个表示该计算机程序的数字信号实现。
此外,本发明可以由一个在其上记录了计算机程序或者数字信号的计算机可读记录介质实现。计算机可读记录介质的示例包含ROM、RAM、软磁盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、以及半导体存储器。此外,本发明可以由记录在这样的记录介质上的计算机程序或者数字信号所实现。
此外,本发明可以通过经由一条电通信线路、有线/无线线路、或者一个诸如Internet的网络传输的计算机程序或者数字信号实现。
此外,本发明可以由一个包含微处理器和存储器的计算机系统实现。存储器可以存储计算机程序,而且微处理器可以依据该计算机程序进行操作。计算机系统的示例包含诸如TV、冰箱、电话、以及空调器的家庭用具。
计算机程序或者数字信号可以记录在记录介质上、或者经由网络等等进行传输,以便该计算机程序或者数字信号可以由另一个单独的计算机系统执行。
如上所述,本发明提供了这样一个程序执行装置,其确定一个任务执行序列以及依据该执行序列执行这些任务,其中的每个任务都被给定了一个在其之前完成该任务执行的目标完成时间,该程序执行装置包含一个可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处、存储已经存在的至少一个任务的至少一个标识符的存储单元,其中这多个优先级类型具有一个层次关系;一个可操作来接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收单元;一个写入单元,其可操作来在基于由该接收单元接收的多个类型优先级确定的该存储单元中的存储器位置处,写入由该接收单元接收的标识符。以及一个确定单元,可操作来依据在该存储单元中的一个标识符排列序列、确定标识符被保存在存储单元中的任务的一个执行序列。
依据这个结构,程序执行装置能够基于为每个任务设置的多个类型优先级,恰当地控制一个任务执行序列,其中这多个类型优先级具有在它们当中的一个层次关系。
在此,在程序执行装置中,第一类型优先级和第二类型优先级可以作为多个类型优先级为每个任务进行设置,第一类型优先级为在其之前完成该任务执行的目标完成时间,第二类型优先级在一个分级结构中比第一类型优先级低,存储单元可以存储多个组,其中的每个都包含为其设置了相同的、作为第一类型优先级的目标完成时间的任务标识符,该多个组按照一个排列序列布置在存储单元中的存储器位置处,其中这个排列序列按照为每个组设置的目标完成时间的次序确定,在每个组中的任务的标识符按照一个排列序列布置在存储单元的每个组中的存储器位置处,其中该排列序列基于为在该组中每个任务设置的第二类型优先级进行确定,接收单元可以接收新任务标识符、以及作为为该新任务设置的第一类型优先级和第二类型优先级的目标完成时间,写入单元可以在一个组中、在基于在一组中接收的第二类型优先级确定的、在存储单元中的存储器位置处写入接收的标识符,该组包含为其设置的第一类型优先级和接收的第一类型优先级相同的任务的标识符,以及确定单元可以依据在基于为每个任务设置的第一类型优先级和第二优先级确定的、在存储单元中的标识符排列序列,确定标识符被保存在该存储单元中的任务的执行序列。
依据这个结构,程序执行装置能够基于为每个任务设置的第二类型优先级,恰当地控制为其设置了相同目标完成时间的多个任务的执行序列,其中在该目标完成时间之前任务执行必须完成。
在此,在程序执行装置中,存储单元可以为一个开始组存储最近的目标完成时间作为第一类型优先级,其中该开始组包含为其设置了一个作为第一类型优先级的、最靠近当前时间的目标完成时间的任务的标识符,并且该开始组被布置在多个组排列序列的开始处,以及,为跟随在该排列序列中的开始组之后的每一个组,存储在(a)为标识符被包含在该组中的任务设置的一个目标完成时间和(b)为标识符被包含在在该排列序列中该组之前的一个组中的任务设置的目标完成时间之间的时间周期,而且写入单元可以把由接收单元接收的目标完成时间和最近的目标完成时间进行比较,并且(i)当发现一个匹配时,在基于在开始组中接收的第二类型优先级确定的、在存储单元中存储器位置处写入接收的标识符,以及(ii)当未发现一个匹配时,为在开始组之后的每一个组,进一步比较(c)由接收单元接收的目标完成时间和(d)在距离为在排列序列中的该组之前的一个组设置的目标完成时间为该组存储的时间周期的时间逝去处的时间,并且当发现一个匹配时,在基于在该组中接收的第二类型优先级确定的、在存储单元中的存储器位置处写入接收的标识符。
依据这个结构,存储单元为每一后续组存储上述时间周期。这允许写入单元为了允许该写入过程删除这样一些要被删除的数据。
在此,在该程序执行装置中,第一类型优先级的一个最低值可以是一个能够由构成一个目标完成时间的预定位序列表示的最大值,存储单元可以在基于目标完成时间确定的一个多个组排列序列中的最后一个的存储器位置处,存储一个最后的组,该组包含为其设置了由一个表示最大值的预定位序列构成的目标完成时间的任务的标识符,接收单元可以接收该新任务的标识符,以及由表示最大值的位预定序列构成的目标完成时间以及为该新任务设置的第二类型优先级,以及写入单元可以在基于在最后组中的接收的第二类型优先级确定的、在存储单元中的存储器位置处写入该接收的标识符。
依据这个结构,程序执行装置能够控制为一个任务设置的第一类型优先级的值是最低的值。
在此,在该程序执行装置中,存储单元可以进一步为每个组存储,预计执行标识符被包含在该组中的所有任务所需要的时间周期的一个总执行时间周期,该接收单元可以进一步接收一个预计执行该新任务所需要的执行时间周期,而且程序执行装置可以进一步包含一个判断单元,可操作来判断为通过把该总执行时间周期和由接收部分接收的执行时间周期相加而获得的一个时间周期从当前时间消逝的时间处的时间是否在为该新任务设置的目标完成时间之前,并且当判断是否定的时,输出一个指示拒绝该新任务执行的拒绝信号,其中当判断单元进行肯定地判断时,写入单元可以在基于在一个组中接收的第二类型优先级确定的、在该存储单元中的存储器位置处写入该接收的标识符,其中该组包含为其设置和接收的第一类型优先级相同的第一类型优先级的任务的标识符。
依据这个结构,程序执行装置提供这样的控制,其允许一个任务的执行在目标完成时间之前完成,其中任务的执行必须在目标完成时间之前完成。
在此,在该程序执行装置中,判断单元可以选择在该多个组排列序列中的一个组之后的组中的一个,并且判断用于该选定组的总执行时间从当前时间消逝的时间处的时间是否是在为标识符被包含在该选定组中的任务设置的一个目标完成时间之前,判断单元在每一个后续组上重复该选择和判断处理过程,而且当该判断单元用于所有后续组都作出肯定判断时,写入单元可以在该存储单元中的这样一个存储器位置处写入接收的标识符,其中该存储器位置基于在一个组中的接收的第二类型优先级所确定,而且该组包含为其设置的第一类型优先级与接收的第一类型优先级相同的任务的标识符,而且当判断单元为任何一个后续的组作出否定判断时,写入单元可以输出一个指示拒绝执行新任务的拒绝信号。
依据这个结构,该程序执行装置提供了这样的控制,其允许所有被保存在该存储单元中的任务的执行在目标完成时间之前完成,在此之前每个任务的执行必须完成。
在此,在该程序执行装置中,可以为每个任务设置一个第一类型优先级和一个第二类型优先级,该第一类型优先级是一个通过把为该任务设置的一个目标完成时间的预定时间单元和一个整数相乘获得的值,第二类型优先级是一个目标完成时间的一个剩余时间单元的值,其中该时间单元是一个比预定时间单元小的单元,存储单元可以存储多个组,其中每个组都包含为其设置了相同的第一类型优先级的任务标识符,该多个组按照一个基于为每个组设置的第一类型优先级确定的一个排列序列布置在该存储单元中的存储器位置处,在每个组中的任务标识符按照一个排列序列布置在存储单元中的存储器位置处,其中该排列序列基于为在该组中每个任务设置的第二类型优先级进行确定,接收单元分可以接收新任务标识符,以及为该新任务设置的第一类型优先级和第二类型优先级,写入单元可以在存储单元中、基于在一个组中接收的第二类型优先级确定的存储器位置处写入接收的标识符,其中该组包含为其设置和接收的第一类型优先级相同的第一类型优先级的任务的标识符,以及确定单元可以依据在基于为每个任务设置的第一类型优先级和第二优先级确定的、在存储单元中的标识符排列序列,确定标识符被保存在该存储单元中的任务的执行序列。
依据这个结构,在仅仅为每个任务设置了一个类型的优先级,即在其之前任务必须完成的目标完成时间的情况中,该程序执行装置能够恰当地控制一个任务执行序列。
虽然已经通过参考附图的示例充分地描述了本发明,应当注意到各种改变和修改对于本领域的哪些技术人员是显而易见的。因此,除背离本发明范围的改变和修改之外,它们应当被认为是包含在其中。
权利要求
1.一个确定一个任务执行序列以及依据该执行序列执行这些任务的程序执行装置,其中的每个任务都被给定了一个在其之前完成该任务执行的目标完成时间,该程序执行装置包含一个可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处、存储已经存在的至少一个任务的至少一个标识符的存储单元,其中这多个优先级类型具有一个层次关系;一个可操作来接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收单元;一个可操作来在该存储单元中、基于由该接收单元接收的多个类型优先级确定的存储器位置处,写入由该接收单元接收的标识符的写入单元;以及一个确定单元,可操作来依据在该存储单元中的一个标识符排列序列、确定标识符被保存在存储单元中的任务的一个执行序列。
2.如权利要求1所述的程序执行装置,其特征在于为每个任务设置一个第一类型优先级和一个第二类型优先级作为多个类型的优先级,第一类型优先级是在其之前完成该任务执行的目标完成时间,第二类型优先级在一个分级结构中比第一类型优先级低,存储单元存储多个组,其中的每个都包含为其设置了相同的、作为第一类型优先级的目标完成时间的任务的标识符,该多个组按照一个排列序列布置在存储单元中的存储器位置处,其中这个排列序列按照为每个组设置的目标完成时间的次序确定,在每个组中的任务的标识符按照一个排列序列布置在存储单元的每个组中的存储器位置处,其中该排列序列基于为在该组中每个任务设置的第二类型优先级进行确定,接收单元接收新任务的标识符、以及作为为该新任务设置的第一类型优先级和第二类型优先级的目标完成时间,写入单元在存储单元中、在基于在一个组中接收的第二类型优先级确定的存储器位置处写入接收的标识符,其中该组包含为其设置和接收的第一类型优先级相同的第一类型优先级的任务的标识符,以及确定单元依据在存储单元中基于为每个任务设置的第一类型优先级和第二优先级确定的标识符排列序列,确定标识符被保存在该存储单元中的任务的执行序列。
3.如权利要求2所述的程序执行装置,其特征在于该存储单元可以为一个开始组存储最近的目标完成时间作为第一类型优先级,其中该开始组包含为其设置了一个作为第一类型优先级的、最靠近当前时间的目标完成时间的任务的标识符,以及,为跟随在该排列序列中的开始组之后的每一个组,存储在(a)为标识符被包含在该组中的任务设置的一个目标完成时间和(b)为标识符被包含在在该排列序列中该组之前的一个组中的任务设置的目标完成时间之间的时间周期,以及而且该写入单元可以把由接收单元接收的目标完成时间和最近的目标完成时间进行比较,并以及(i)当发现一个匹配时,在存储单元中基于在开始组中的接收的第二类型优先级确定的存储器位置处写入接收的标识符,以及(ii)当未发现一个匹配时,为在开始组之后的每一个组,进一步比较(c)由接收单元接收的目标完成时间和(d)为该组存储的时间周期从在为排列序列中的该组之前的一个组设置的目标完成时间消逝的时间处的时间,并且当发现一个匹配时,在基于在该组中接收的第二类型优先级确定的、在存储单元中的存储器位置处写入接收的标识符。
4.如权利要求2所述的程序执行装置,其特征在于第一类型优先级的一个最低值可以是一个能够由构成一个目标完成时间的预定位序列表示的最大值,该存储单元在基于目标完成时间确定的、一个多个组排列序列中的最后一个的存储器位置处,存储一个最后的组,该组包含为其设置了由一个表示最大值的预定位序列构成的目标完成时间的任务的标识符,接收单元接收该新任务的标识符,以及由表示最大值的位预定序列构成的目标完成时间以及为该新任务设置的第二类型优先级,以及以及写入单元可以在基于在最后组中的接收的第二类型优先级确定的存储单元中的存储器位置处写入该接收的标识符。
5.如权利要求2所述的程序执行装置,其特征在于存储单元可以进一步为每个组存储,预计执行标识符被包含在该组中的所有任务所需要的时间周期的一个总执行时间周期,该接收单元进一步接收一个预计执行该新任务所需要的时间的执行时间周期,以及该程序执行装置可以进一步包含一个判断单元,其可操作来判断通过把该总执行时间周期和由接收单元接收的执行时间周期相加而获得的一个时间周期从当前时间消逝的时间处的时间是否在为该新任务设置的目标完成时间之前,并且当判断是否定的时,输出一个指示拒绝该新任务执行的拒绝信号,其特征在于当判断单元进行肯定地判断时,写入单元可以在基于在一个组中接收的第二类型优先级确定的、在该存储单元中的存储器位置处写入该接收的标识符,其中该组包含为其设置和接收的第一类型优先级相同的第一类型优先级任务的标识符。
6.如权利要求5所述的程序执行装置,其特征在于判断单元选择在该多个组排列序列中的一个组之后的组中的一个,并且判断为用于该选定组的总执行时间周期从当前时间消逝的时间处的时间是否是在为标识符被包含在该选拔组中的任务设置的一个目标完成时间之前,判断单元在每一个后续组上重复该选择和判断处理过程,以及当该判断单元为所有后续组都作出肯定判断时,写入单元可以在基于一个组中的接收的第二类型优先级所确定的该存储单元中的这样一个存储器位置处写入接收的标识符,该组包含为其设置的与接收的第一类型优先级相同的第一类型优先级的任务的标识符,以及而且当判断单元为任何一个后续的组作出否定判断时,写入单元可以输出一个指示拒绝执行新任务的拒绝信号。
7.如权利要求1所述的程序执行装置,其特征在于可以为每个任务设置一个第一类型优先级和一个第二类型优先级,该第一类型优先级是一个通过把为该任务设置的一个目标完成时间的预定时间单元和一个整数相乘获得的值,第二类型优先级是一个目标完成时间的一个剩余时间单元的值,其中该时间单元是一个比预定时间单元小的单元,该存储单元存储多个组,其中每个组都包含为其设置了相同的第一类型优先级的任务的标识符,该多个组按照一个基于为每个组设置的第一类型优先级确定的一个排列序列布置在该存储单元中的存储器位置处,在每个组中的任务标识符按照一个排列序列布置在存储单元中的存储器位置处,其中该排列序列基于为在该组中每个任务设置的第二类型优先级进行确定,接收单元分接收新任务的标识符、以及为该新任务设置的第一类型优先级和第二类型优先级,写入单元可以在基于在一个组中接收的第二类型优先级确定的存储单元中的存储器位置处写入接收的标识符,其中该组包含为其设置和接收的第一类型优先级相同的第一类型优先级的任务的标识符,以及确定单元依据在基于为每个任务设置的第一类型优先级和第二优先级确定的存储单元中的标识符排列序列,确定标识符被保存在该存储单元中的任务的执行序列。
8.一种用于在一个确定任务执行序列并且依据该执行序列执行任务的程序执行装置中使用的任务管理方法,每个任务被给定在其之前完成该任务执行的目标完成时间,该程序执行装置包含一个存储单元,其可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处存储已经存在的至少一个任务的至少一个标识符,该多个类型的优先级具有一个层次关系,该任务管理方法包含一个接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收步骤;一个在基于在接收步骤中接收的多个类型优先级确定的存储单元中的存储器位置处写入在接收步骤中接收的标识符的写入步骤;以及一个确定步骤,依据在该存储单元中的一个标识符排列序列确定标识符被保存在存储单元中的任务的一个执行序列。
9.一个用于在一个确定任务执行序列并且依据该执行序列执行任务的程序执行装置中使用的任务管理程序,每个任务被给定在其之前完成该任务执行的目标完成时间,该程序执行装置包含一个存储单元,其可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处存储已经存在的至少一个任务的至少一个标识符,该多个类型的优先级具有一个层次关系,该任务管理程序包含一个接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收步骤;一个在基于在接收步骤中接收的多个类型优先级确定的、存储单元中的存储器位置处,写入在接收步骤中接收的标识符的写入步骤;以及一个确定步骤,依据在该存储单元中的一个标识符排列序列确定标识符被保存在存储单元中的任务的一个执行序列。
10.一个用于在一个确定任务执行序列并且依据该执行序列执行任务的程序执行装置中使用的、记录在一个计算机可读记录介质上的任务管理程序,每个任务被给定在其之前完成该任务执行的目标完成时间,该程序执行装置包含一个存储单元,其可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处存储已经存在的至少一个任务的至少一个标识符,该多个类型的优先级具有一个层次关系,该任务管理程序包含一个接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收步骤;一个在基于在接收步骤中接收的多个类型优先级确定的存储单元中的存储器位置处,写入在接收步骤中接收的标识符的写入步骤;以及一个确定步骤,依据在该存储单元中的一个标识符排列序列确定标识符被保存在存储单元中的任务的一个执行序列。
11.一个确定任务执行序列并且依据该执行序列执行任务的移动电话,每个任务被给定在其之前完成该任务执行的目标完成时间,该移动电话包含一个可操作来在一个基于为该任务设置的多个类型优先级确定的存储器位置处存储已经存在的至少一个任务的至少一个标识符的存储单元,其中这多个优先级类型具有一个层次关系;一个可操作来接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收单元;一个可操作来在基于由该接收单元接收的多个类型优先级确定的该存储单元中存储器位置处,写入由该接收单元接收的标识符的写入单元;以及一个确定单元,可操作来依据在该存储单元中的一个标识符排列序列确定标识符被保存在存储单元中的任务的一个执行序列。
全文摘要
提供了一个程序执行装置,其恰当地确定一个任务执行序列以及依据该执行序列执行这些任务,其中的每个任务都被给定了一个在其之前完成该任务执行的目标完成时间。对于每个任务,设置了在它们当中具有一个层次关系的多个类型优先级。该装置包含一个存储单元,其在一个基于为每个任务设置的多个类型优先级确定的存储器位置处,存储每个早已经存在任务的标识符;一个接收一个新任务的标识符以及为该新任务设置的多个类型优先级的接收单元;以及个写入单元,其在基于接收的多个类型优先级确定的、存储单元中的存储器位置处写入接收的标识符。
文档编号G06F9/46GK1475910SQ0313289
公开日2004年2月18日 申请日期2003年7月25日 优先权日2002年7月26日
发明者林邦彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1