任务管理系统和任务管理方法转让专利

申请号 : CN200480036169.7

文献号 : CN1890641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阿部睦

申请人 : 丰田自动车株式会社

摘要 :

一种任务管理系统,用于执行从构成任务组合的任务中选择的任务,其包括判定单元,用于判定是否存在任务组合切换请求,切换单元,用于当判定存在所述切换请求时,在完成构成所述切换之前的所述任务组合的任务中的指定任务的执行之后,切换所述任务组合,以及执行单元,用于执行从构成由所述切换单元切换的所述任务组合的任务中选择的任务。

权利要求 :

1.一种任务管理系统,包括:

判定单元,用于判定是否存在任务组合切换请求,以及如果请求了所述任务切换,判定在当前任务组合中是否存在尚未执行的任务,如果存在所述尚未执行的任务,则基于标识符判定在所述尚未执行的任务之中是否存在请求处理完成的任务;

切换单元,用于在完成所述请求处理完成的任务的执行之后,切换所述任务组合;

执行单元,用于执行所述请求处理完成的任务;以及

存储单元,用于存储任务组合管理表,在该管理表中记录了在构成所述任务组合的任务和所述标识符之间的关联关系,并且对于每个应用程序预先生成和存储所述任务组合管理表。

2.一种任务管理方法,包括:

判定步骤,判定是否存在任务组合切换请求,以及如果请求了所述任务切换,判定在当前任务组合中是否存在尚未执行的任务,如果存在所述尚未执行的任务,则基于标识符判定在所述尚未执行的任务之中是否存在请求处理完成的任务,其中所述标识符被存储在用于存储任务组合管理表的存储单元中,在该管理表中记录了在构成所述任务组合的任务和所述标识符之间的关联关系,并且对于每个应用程序预先生成和存储所述任务组合管理表;

切换步骤,在完成所述请求处理完成的任务的执行之后,切换所述任务组合;以及执行步骤,执行所述请求处理完成的任务。

说明书 :

技术领域

本发明涉及一种用于在任务管理系统中迅速地切换任务组合的技术,其中所述任务管理系统用于执行从构成所述任务组合的任务中选择的任务。

背景技术

本申请人先前提交了发明申请(专利文献1,等等),所述发明用于执行从构成任务组合的任务(其可以是单个或多个)中选择的任务。
专利文献1:日本专利申请2003-122139
专利文献2:日本专利申请公开公告7-182183
在前述申请中,对于在构成任务组合的任务中的可执行任务,在等待其完成之后,切换所述任务组合。通过在等待所述任务完成之后进行所述切换不能获得迅速的切换。进一步,可以假定这样的情况,在其中取决于与需要在被切换之前立即中断所述任务的情况一样的切换因素,不必执行所述任务。

发明内容

本发明的一个目的是提供一种能够迅速地切换任务组合的技术。本发明的另一个目的是提供一种无需执行不应当被进行的处理而能够切换所述任务组合的技术。
根据被设计以实现以上目的的本发明,一种任务管理系统,用于执行从构成任务组合的任务中选择的任务,其包括:判定单元,用于判定是否存在任务组合切换请求,切换单元,用于当判定存在所述切换请求时,在完成构成所述切换之前的所述任务组合的任务中的指定任务的执行之后,切换所述任务组合,以及执行单元,用于执行从构成由所述切换单元切换的所述任务组合的任务中选择的任务。
根据本发明,当判定存在任务组合切换请求时,在完成在构成所述切换之前的所述任务组合(例如,当前任务组合)的任务中的指定任务的执行之后,切换所述任务组合。即,方案并不是在等待构成所述任务组合的所有任务的执行完成之后,切换所述任务组合,而是在等待在构成所述任务组合的任务中的指定任务的执行完成之后,切换所述任务组合。因此,所述任务组合能够被迅速地切换。
所述任务管理系统可以进一步包括,例如,存储单元,用于存储在构成所述任务组合的任务和用于将该任务标识为所述指定任务的标识符(例如,在本实施例中的标记)之间的关联关系。所述切换单元,当判定存在所述切换请求时,对于构成所述切换之前的所述任务组合的任务,在完成其中的由所述标识符标识的所述指定任务的执行之后,切换所述任务组合。
这是作为标识指定任务的方法的一个示例。因此,根据本发明的指定任务标识方法不限于此方法。还可以通过其他方法标识所述指定任务。
利用上述方案,通过检查所述标识符能够简单地识别所述指定任务,并且因此能够迅速地掌握由这种标识符标识的所述指定任务的执行的完成。进一步,当设置与取决于切换因素不必被执行的任务相关的标识符时,并且即使存在取决于与需要在被切换之前立即将所述任务中断的情况一样的切换因素而不必被执行的任务,通过检查所述标识符能够简单地识别这样的任务。因此能够防止这种任务的执行。
在所述任务管理系统中,例如,所述指定任务是当切换所述任务组合时请求处理完成的任务。
这是所述指定任务的一个示例。因此,根据本发明的指定任务不限于此任务。其他任务也能够被用作为所述指定任务。
此外,能够通过如下的方法发明的方式来界定本发明。
一种任务管理方法,执行从构成任务组合的任务中选择的任务,包括:判定步骤,判定是否存在任务组合切换请求,切换步骤,当判定存在所述切换请求时,在完成构成所述切换之前的所述任务组合的任务中的指定任务的执行之后,切换所述任务组合,以及执行步骤,执行从构成由所述切换单元切换的所述任务组合的任务中选择的任务。
此外,能够通过如下的程序发明的方式界定本发明。
一种程序,使得计算机执行:判定步骤,判定是否存在任务组合切换请求,切换步骤,当判定存在所述切换请求时,在完成构成所述切换之前的所述任务组合的任务中的指定任务的执行之后,切换所述任务组合,以及执行步骤,执行从构成由所述切换单元切换的所述任务组合的任务中选择的任务。
更进一步,能够通过存储有前述程序的计算机可读存储介质的方式来界定本发明。

附图说明

图1是框图,示出了根据本发明的一个实施例的任务管理系统;
图2是示图,示出了用于根据本发明的一个实施例的任务管理的任务组合管理表;
图3是解释性的流程图,用于说明在根据本发明的一个实施例的任务管理方法中的新任务注册方法;
图4是解释性的流程图,用于说明在根据本发明的一个实施例的所述任务管理方法中的任务切换方法;
图5是流程图,示出了在根据本发明的一个实施例的所述任务管理方法中注册于任务组合管理表的方法。

具体实施方式

下面将参照附图描述本发明的一个实施例。
注意到在下面的一个实施例中,贯穿所述附图利用相同的数字或符号标记相同的或相应的组成部分。图1示出了在该实施例中的任务管理系统的架构。
如图1中所示,通过诸如PDA(个人数字助理)、个人计算机等的信息处理终端100实现该实施例中的任务管理系统。
该信息处理终端100由中央处理单元(CPU)100、诸如硬盘装置等的辅助存储装置120、诸如可重写存储器(RAM(随机存取存储器))等的存储器130、诸如液晶显示器(LCD)的图像显示装置、诸如扬声器的声音输出装置(这些装置未示出),等等构成。这些组成部分经由,例如,总线,互相连接。
进一步,辅助存储装置120被预先安装有实时OS(操作系统)和各种基于该实时OS的可执行应用程序,它们是,即,被赋予优先级的多个任务,以及稍后将描述的任务信息表。
必要时,这些诸如实时OS等的软件被适当地从辅助存储装置120读入存储器130。图1示出了这些诸如实时OS等的软件被读入存储器130的状态。
进一步,所述实时OS为具有优先级控制功能(或,任务管理功能)的操作系统,其用于执行在所述多个任务中的被赋予最高优先级的任务。由包括在所述实时OS中的调度程序(scheduler)131实现所述优先级控制功能。
调度程序131用于,基于被赋予各任务的优先级,执行在所述任务中被赋予最高优先级的任务。进一步,调度程序131被配置以能够确定是否执行,例如,在诸如控制应用程序组和控制所述各种装置的处理中的计时处理,其中所述应用程序组由被赋予所述优先级的所述多个任务掌握。
具体而言,调度程序131连续地执行(处理)在既不处于终止状态也不处于排队状态的任务中的被赋予最高优先级的任务。这时,在所述实时OS中,被赋予低优先级的任务绝对不会被运行。此外,调度程序131用于管理各任务的状态,即,具体而言,可执行状态、执行状态、排队状态等等。
优先级由调度程序131控制的所述多个任务,举例为,诸如调度任务132、时间启动通知任务133、QoS(服务质量)任务134等等。优先级被赋予这些任务。应当注意的是,调度任务132被赋予最高的优先级(其高于其他任务133、134等等)。
进一步,调度任务132是用于控制其他任务(QoS任务134)的执行的任务。调度任务132对执行其他任务进行控制,例如,从QoS任务134中确定执行任务,改变所述执行任务的优先级以及控制所述执行任务的所需要的资源数量(资源分配)。
进一步,时间启动通知任务133用于使得调度任务132转换到执行状态(运行状态)。为了达到这个目的,时间启动通知任务133在预定的时间间隔(固定的周期或设定的时间),向调度任务132提供预定的通知,诸如事件标记或信号量(semaphore)等等。接收到所述预定的通知后,调度程序132转换到所述执行状态并控制其他任务(QoS任务134)的执行。注意到当调度任务132不处于所述执行状态时,由所述实时OS中的调度程序131控制QoS任务134。
进一步,QoS任务134是能够控制所需的资源数量的可变的任务。于是,所需的资源数量被分成应当被确保在最小值的保证部分和可控制的部分,并因此被构成以能够保留最小数量(所述保证部分)。
此外,任务组合管理表136被存储有基于应用程序配置信息由CPU110提取的任务与所述各任务的所需资源数量信息的组合。在图2中示出了该任务组合管理表136的一个例子。
具体而言,如图2A中所示,在所述任务组合表136中的任务组合的数据表示被提取的QoS任务134的组合(任务组合),并且包括用于标识所述任务组合的模式号以及在其中组合了属于该模式号的任务的列表(任务列表)。
进一步,所述任务列表被存储有对于每一个QoS任务134唯一的任务标识符ID(任务ID),并且存储有标记“flag”,并且根据需要,从任务信息表135等中读取QoS任务134的结构信息和标记“flag”。所述标记“flag”是这样的标记,用于指示当切换所述任务组合时是否要求完成所述处理。在任务组合管理表136的所述任务列表中的所述任务ID和所述标记“flag”之间的关联关系,相当于根据本发明的在构成所述任务组合的任务和使该任务与指定任务相区别的标识符之间的关联关系。QoS任务134的详细的各条信息被存储在任务信息表135中,并且能够以使用任务ID 135a作为标识符的方式被一一提取出来。
然后,如图2B中所示,一个实施例中的任务组合管理表136,由至少一个由图2A中所示的模式号和属于该模式号的任务列表的元组构成,其中,所述任务列表被这样地存储,使得通过所述模式号是互相可区分的。
然后,所述应用程序从存储有通过所述模式号可区分的多个任务列表的任务组合管理表136中,选择预定的任务列表。基于在属于所选择的模式号的任务列表中的任务ID和标识“flag”,从任务信息表135中读出预定的QoS任务134,并且所述应用程序执行所述处理。
进一步,为每一个应用程序产生根据这一实施例的任务组合管理表136,并且将其存储在,例如辅助存储装置120中。此外,已一度产生的任务组合管理表136与每一个应用程序相关,并且根据诸如启动所述应用程序等的需要,被从辅助存储装置120读到存储器130中。然后,在所述应用程序中,从这个读出的任务组合管理表136中提取所述任务组合。
因而,为每一个应用程序预先产生任务组合管理表136,并且从所述任务列表中选择必要的任务组合并执行,由此排除执行计算处理的必要性,所述计算处理关于每次所述任务被注册时是否进行基于所述应用程序的执行的所述任务执行。这使得通过消除时间损失能够平滑地进行所述任务的启动和切换。
注意到任务组合管理表136被存储在辅助存储装置120中,并且,当选择随后将说明的模式号时,也能够读取必要的模式。
进一步,任务信息表135是用于管理关于QoS任务134的信息的表。任务信息表135由任务标识符(任务ID)135a,以及诸如启动计时135b、执行分配时间135c等等的各种信息项构成,所述信息项属于该任务ID135a。注意到任务ID 135a是用于标识所述QoS任务的标识符ID。启动计时135b是从所述QoS任务的一个执行启动点到其下一个执行启动点的一段时间(周期)。
然后,当执行某个QoS任务时,在设定的时间内决不重新执行此QoS任务。此外,执行分配时间135c是分配给所述QoS任务的资源数量并且是,例如,这一实施例中CPU的一段运行时间。
以上述方式构成根据这一实施例的任务管理系统。注意到以上说明的任务管理系统仅仅是一个示例而且并不限于上面给出的架构。可能采用其他的任务管理系统,诸如这样的任务管理系统,其没有调度任务的设置,但被配置以利用用于调度所述实时OS中的所有任务的调度程序。
接下来,将参照附图说明如此配置的任务管理系统的操作。图3示出了这一实施例中的新任务注册请求操作。
(新任务注册请求)
首先,当启动所述应用程序时,执行所谓新任务注册请求处理,其中,关于先前提取的和所需的QoS控制任务组合的所有模式,在基于所述应用程序配置信息对其进行预约判定之后,进行所述注册。下面是这个新任务注册请求处理的说明。
即,如图3中所示,在根据这一实施例的新任务注册请求处理中,首先,在步骤ST1中进行提取任务组合模式的处理。具体地,基于所述应用程序配置信息和各QoS任务134所需的资源数量信息,从任务组合管理表136中提取作为被组合和被执行的结果可能变为一个功能的任务组合。此后,所述操作进行到步骤ST2。
接下来,在步骤ST2中判定所述任务组合模式是否被提取,即,所述提取模式是否存在。结果,如果所述任务组合的提取模式不存在,则所述操作前进到步骤ST3,在其中通过所述应用程序注册新任务。
而另一方面,如果在步骤ST2中提取了所述任务组合模式,即,如果存在与基于所述应用程序的所述任务组合相符合的提取模式,所述操作移动到步骤ST4。
在步骤ST4中,判定所述提取模式是否能被注册为新任务。具体而言,对提取的任务的组合进行检验,例如,对操作环境中的负载和所述QoS进行检验。如果所述负载低于预定参考值并且如果所述QoS高于预定参考值,其被判定为可执行的。反之,如果为否,则作出否定的判定。
然后,在步骤ST4中,如果所述任务组合被判定为不可执行的,所述提取模式不能被注册,并且所述操作进行到步骤ST5,在其中进行通知为是不可注册的。这个是不可注册的的通知被给予用于接受在所述任务管理系统中的任务的组成部分,在所述任务管理系统中能够设置所述服务质量(QoS)。通过上述操作,一连串的新任务注册处理被终止。
另一方面,作为步骤ST4中判定的结果,如果能够执行所述任务组合,所述提取模式被认为是可注册的,并且所述操作移动到步骤ST1。然后,基于所述应用程序配置信息再次提取所述任务组合模式,并且以与上面的方式相同的方式在步骤ST2中判定所述提取模式是否存在。
重复地执行步骤ST1、ST2和ST4中的处理,直到不可注册的提取模式出现或所述提取模式变为零。
此后,在这个阶段,即在步骤ST2中已经提取所有任务组合模式,所述操作前进到步骤ST3,在其中所述应用程序注册新任务,并且结束所述新任务注册处理。
进一步,在重复进行的注册处理的执行期间,如果不可执行的任务组合出现,从而在步骤ST4中不能注册所述提取模式,则在步骤ST5中将不可注册通知调度任务132,并且终止所述新任务注册处理。
(任务调度)
接下来给出,当启动所述程序时,在实现新任务注册处理之后,在应用程序执行期间的任务管理的说明。即,在所述应用程序的执行期间,进行所谓的任务调度,在此重新执行将被操作的任务,并且进行在所述任务之间的切换。将在下文中描述根据这一实施例的任务调度。
具体而言,如图4中所示,在根据这一实施例的任务调度中,首先,在步骤ST1中判定所述任务组合模式是否被改变,即,判定是否存在任务组合模式切换请求(其相当于根据本发明的判定单元)。通过,例如,对当前任务组合模式号与关于所述切换请求的任务组合模式号进行比较,来作出该判定。然后,如果这些模式号不相同,这意味着所述任务组合模式号发生改变,即可以判定存在所述任务组合模式切换请求(步骤ST11:是)。
当判定不存在所述任务组合模式改变时(步骤ST11:否),所述操作移动到步骤ST12,在其中从构成当前任务组合的任务中选择执行任务,并且基于所述应用程序由CPU 110执行此选择的执行任务。
而另一方面,当判定存在所述任务组合模式改变时(步骤ST11:是),所述操作进行到步骤ST13,在其中判定,当改变所述任务组合时请求其处理完成的任务(相当于根据本发明的指定任务),是否被包含于,构成所述改变(切换)之前的所述任务组合(例如,当前任务组合)的任务中(其可以是单个任务或多个任务)。任务组合管理表136中的标记“flag”可以成为该判定的参考。如上所述,所述标记“flag”对于每一个任务被注册并且还是用于指示当改变所述任务组合时所述任务是否为请求其处理完成的任务(相当于根据本发明的指定任务)的标记。因此,可以参考任务组合管理表136中的标记“flag”,由此使得能够判定,当改变所述任务组合时请求其处理完成的任务,是否被包含于构成在所述改变(切换)之前的所述任务组合(例如,当前任务组合)的任务中。
具体地,如下作出所述判定。首先,判定尚未执行的任务(或中断的任务)是否存在于构成在所述改变(切换)之前的所述任务组合(例如,当前任务组合)的任务中。然后,当判定所述尚未执行的任务(或中断的任务)存在时,参考与所述尚未执行的任务相关的标记“flag”。对于该方案,判定的目标任务受限于尚未执行的任务(或中断的任务)。因此,这排除了对于已完成执行的任务作出判定的必要性,并因而能够加快所述判定。
在该步骤ST13中,当作出这样的判定时,即,当改变所述任务组合时请求其处理完成的任务(相当于根据本发明的指定任务),被包含于构成所述改变(切换)之前的所述任务组合(例如,当前任务组合)的任务中(步骤ST13:是),所述操作移动到步骤ST12,在其中,现在正被执行的任务组合由CPU 110继续执行。即,从构成当前任务组合的任务中选择所述执行任务,并且通过CPU 110基于所述应用程序继续执行所述选择的任务。当每次达到基于所述任务调度的计时,再次进行ST11到ST14的处理。利用这种处理,当改变所述任务组合时请求其处理完成的任务(相当于根据本发明的指定任务),达到不存在于构成所述改变(切换)之前的所述任务组合(例如,当前任务组合)的任务中(步骤ST13:否)。然后,当所述任务达到不存在时(步骤ST13:否),所述操作前进到步骤ST14,在其中执行用于改变(切换)所述组模式的组模式改变处理。即,当进入所有任务的执行被停止等的执行完成的非等待状态(non-waiting)时,切换所述任务组合。然后,由于每次达到基于所述任务调度的计时时,再次进行ST11到ST14的处理,从在所述任务组合的切换之后构成其的任务中选择所述执行任务(ST12),并且由CPU 110基于所述应用程序继续执行所选择的任务(其相当于根据本发明的执行单元)。
以上述方式进行伴随着根据这一实施例的应用程序的执行的所述任务调度。
(任务组合注册请求处理)
接下来说明当如上所述注册新任务和进行任务调度时使用的在所述任务组合管理表136中对所述任务进行注册的方法。图5示出了根据这一实施例的任务组合注册处理。
如图5所示,当从所述应用程序给出所述任务组合注册请求时,首先,在步骤ST21中判定被请求以被注册的多个任务是否为可注册的。
当在步骤ST21中判定被请求以被注册的多个任务作为所述组合在维持所述QoS时不能被执行时,即,如果所述QoS控制不是可执行的(步骤ST21:否),终止任务组合管理表136中的所述注册处理。
另一方面,当在步骤ST21中判定,所述任务组合在维持所述QoS时能够被执行时,即,如果被请求以被注册的所述多个任务是可注册的(步骤ST21:是),所述操作进行到步骤ST22,在其中判定所述任务是否能够被注册在任务组合管理表136中。
然后,如果在步骤ST22中关于所述任务是否为可注册的判定表明,所述任务不能被注册,所述操作移动到步骤ST23,在其中给出不可注册的通知。注意到这个不可注册的通知被给予用于接受管理机构中的任务的组成部分(诸如所述调度程序和所述调度任务),所述管理机构用于在其中能够设置所述服务质量的任务管理。
[0074]而另一方面,当在步骤ST22中判定所述任务在任务组合管理表136中是可注册的,所述步骤前进到步骤ST24,在其中产生预定的可识别的模式号,并且利用该模式号以及属于该模式号的包括至少一个任务的任务ID和标记“flag”的任务列表,在任务组合管理表136中注册。然后,如上所述,所述应用程序从多个这样注册的任务组合中正确地选择任务组合,并执行所选择的任务组合。此后,所述操作移动到步骤ST25,在其中通知所述调度程序和所述调度任务所述注册的模式号,并且终止根据这一实施例的任务组合注册处理,其中所述调度程序和调度任务被这样地构成,以能够在用于可以在其中设置所述QoS的任务管理的管理机构中选择任务。通过上述方式,当启动所述应用程序时,在可执行的范围内,所有QoS任务被注册在任务组合管理表136中。
如上所述,根据这一实施例,当启动所述应用程序时,在用于该应用程序的所有QoS任务中的所述可注册的QoS任务组合被注册在任务组合管理表136中。然后,当在所述应用程序的执行中执行所述任务时,基于在任务组合管理表136中注册的任务列表,执行由所述模式号指定的必要的任务组合,由此使得能够在用于执行的应用程序的QoS控制下预先提取所述任务组合模式,并且能够排除这种时间的必要性,所述时间用于判定关于QoS任务134的处理所述任务组合是否为可执行的。
因此,能够防止对于该判定所花费的时间的损失,并且能够显著地减少用于切换所述任务组合的时间。也可行的是,防止所述任务控制由于延长了的计算时间而变得不可能,并且防止通过所述应用程序进行的任务注册不能被进行。进一步,能够进行基于该提取的任务管理,并且能够平滑地改变现在正被执行的任务组合,由此,能够确定地执行所述应用程序的任务预约的接收并且还能执行有效的调度。
此外,忽略了对于可以不完成处理的任务(当切换所述任务组合时不要求其处理完成的任务)的分配,并且因此能够迅速地切换所述任务组合。进一步,另一效果在于,能够切换所述任务组合而无需执行不应被进行的处理(例如当切换所述任务组合时不要求其处理完成的任务的执行)。
目前为止,已经具体地描述了本发明的一个实施例,然而,本发明不受限于上述的一个实施例,并且能够基于本发明的技术概念以各种形式进行修改。
例如,在上述的一个实施例中给出的系统架构仅仅是示例,并且必要时可以采用不同于前述架构的系统架构。
此外,例如,所述操作环境中的CPU 110的所述运行时间被采用作为上述的一个实施例中的所述资源数量,然而,能够选择使用,不同于CPU的,用于执行所述指定的任务所必需的硬件资源和软件资源,诸如,所述存储装置、所述存储器和视频存储器(未示出)中的每一个的运行时间和存储容量,通过网络的通信速度,网络服务器的存储容量,存储器容量等等。
工业适用性
根据本发明,由于可以忽略对于可以不完成其处理的任务的分配,能够迅速地切换所述任务组合。进一步,另一效果在于,能够切换所述任务组合而无需执行不应被进行的处理。