任务切换控制方法以及计算机系统的制作方法

文档序号:6614107阅读:121来源:国知局
专利名称:任务切换控制方法以及计算机系统的制作方法
技术领域
本发明涉及任务(task)切换控制方法以及计算机系统,尤其涉 及多个任务运行的计算机系统中的任务切换控制方法。
背景技术
随着硬件的高性能化以及软件规模的扩大,以往,即使在使用简 单且轻量型的实时OS (OperatingSystem:操作系统)的组装市场, 也逐渐向高性能的通用OS转移。一般而言,由于实时OS和通用OS 的API (Application Program Interface :应用程序接口)不同,因此, 不能使实时OS上所构建的软件直接在通用OS上运行。而且,在置 换API的情况下,通用OS也会相应地出现实时性能的降低。因此, 在目标系统中要求实时运行的情况下,则很有可能需要对基础软件进 行重新设计。其结果是,从实时OS转移到通用OS需要巨大的开发 成本。
于是,提出了组合实时OS和通用OS的混合OS。在混合OS中,
通过利用基础软件,并且利用通用os的功能,从而可以以少的开发
成本来构建具有高附加价值的大规模系统。
混合os所存在的形态大致可分为分别使通用os和实时os
在不同的CPU上运行的混合OS,以及在一个以上的CPU上运行的 OS (主机(host)OS)上,作为一个以上的任务的其它的OS (客户机 (guest)OS)来运行的混合OS。在后者的混合OS中例如,通用OS 作为主机OS来运行,实时OS作为客户OS来运行。
前者的混合OS由于通用OS和实时OS的结合程度低,且在通 用OS和实时OS上独立分配有CPU等硬件资源,因此可以使OS和
应用软件直接运行。据此,前者的混合os容易保证系统的实时性。 然而,前者的混合os存在有硬件成本增高的缺点。后者的混合OS虽然至少需要改造客户机OS,但可以使应用软
件在基本上不变更的情况下运行。后者的混合os由于主机os和客
户机OS在排斥控制硬件资源的同时协调工作,因此可以降低硬件的 成本。然而,后者的混合OS由于主机OS或客户机OS不能分别占 有CPU等硬件资源,因此,需要为构建实际时间处理系统而想办法。 在构成为客户机OS作为主机OS上一个以上的任务来运行的混 合OS中,由于主机OS和客户机OS之间的切换处理需要主机OS
的调度程序,因此, 一般而言客户机os的中断功能及任务切换功能 要取决于主机os的功能。具体而言,在主机os正在工作时,因中
断而发生唤醒客户机OS任务的请求的情况下,仅在主机OS的调度
程序为可运行时,才能够进行向客户机os任务的任务切换。例如,
主机OS为不可内核抢占(kernel preemption)的OS,在内核处理中 通过中断而接收了向高优先级任务的唤醒请求时,到现在的内核处理 结束为止,不进行向高优先级任务的任务切换。因此,向高优先级任 务的任务切换发生延迟。即使主机OS为允许内核抢占的OS的情况 下,由于各种资源的排斥控制,也存在有禁止抢占区间。据此,在禁 止抢占区间内,向高优先级任务的任务切换发生延迟。为此,为了防 止客户机OS的中断功能以及任务切换功能的降低,较多利用(混合 方式)的是,仅具有调度以及中断控制等最小功能的微内核(微内核 方式),或将中断功能或任务切换功能较好的实时OS作为主机OS
来利用。
这样,将通用os利用于主机os的混合os,其中断功能以及任
务切换功能则取决于通用OS的功能。为此,将通用OS利用于主机 OS的混合OS被利用于不需要严密的实际时间工作的系统,或被利
用于逻辑调整用途的模拟器。
另一方面,在通用os上具有实时os运行的混合os中,实现 不受通用os影响的中断功能的方法已被公开(例如,参照专利文献
1 )。在通用OS上构建实时OS的优点是,例如可以列举出可以由 实时OS来利用通用OS的高度的存储保护机构。
以下,对以往的在通用OS上具有实时OS运行的混合OS中的任务切换控制进行说明。
图1是以往的通用OS上具有实时OS运行的混合OS中任务切
换处理的流程图。
如图1所示,首先,检测任务的唤醒请求(步骤S1001)。在任 务的唤醒请求被检测出的情况下(步骤S1001的"是"),接着判断 是否可以进行任务的切换(步骤S1002)。例如,按照使用中的资源, OS上是否为可以切换的状态是有规定的,在可以切换的状态下,判
断为可以切换任务。具体而言,为了对所有的特定的任务(例如,在
通用OS上运行的实时os的任务)进行稳定的切换而指定多个资源,
在所有被指定的资源为未被使用的情况下,判断为可以切换。并且, 在正在执行中断处理过程中,判断为不可切换。在判断为可以进行任
务切换的情况下(步骤S1002的"是"),进行任务的切换(步骤 S1003)。在判断为不可进行任务切换的情况下(步骤S1002的"否"), 不进行任务的切换。
而且,利用图1对通用OS上具有实时OS运行的混合OS中的
任务切换处理进行了说明,不过,图1所示的处理流程即使在单一的
OS上对优先级高的特定的任务所进行的切换处理中也是同样的。
专利文献日本国特开2006-146758号公报
然而,在任务切换处理中需要有更高的任务应答功能。在上述的 以往的任务切换方法中,向特定的任务进行的任务切换是在所有的资 源为未被使用的情况下进行的,所述所有的资源是指计算机系统 (OS)稳定且能够进行切换的资源。因此,计算机系统(OS)稳定且 能够进行切换的资源中的一部分为正在使用的情况下,则不能进行任 务切换,从而造成任务应答功能不充分。

发明内容
因此,本发明的目的在于提供一种任务应答功能高的任务切换控 制方法以及计算机系统。
为了达到上述的目的,本发明所涉及的任务切换控制方法对多个
任务运行的计算机系统的任务切换进行控制的方法,包括检测步
骤,检测任务的唤醒请求;第一资源获得步骤,获得第一资源信息, 该第一资源信息是所述计算机系统的计算机资源中、正在使用的计算 机资源的信息;第二资源获得步骤,获得第二资源信息,该第二资源 信息是,在所述检测步骤中检测出唤醒请求的任务在执行时所需要的 计算机资源的信息;第一判断步骤,根据在所述第一资源获得步骤获 得的所述第一资源信息和在所述第二资源获得步骤获得的所述第二 资源信息,来判断是否可以将任务切换到在所述检测步骤检测出唤醒 请求的任务;以及第一切换步骤,在所述第一判断步骤判断为可以进 行切换的情况下,将任务切换到在所述检测步骤检测出唤醒请求的任 务。
据此,可以根据现在正在使用的计算机资源以及检测出唤醒请求 的任务在执行时所需要的计算机资源的信息,来判断是否可以进行任 务的切换。因此,在被执行的任务至少需要的计算机资源为未被使用 的情况下,可以进行任务切换。据此,与以往的仅在计算机系统稳定 且可以进行切换的所有的资源为未被使用的情况下,才进行任务切换 的计算机系统相比,可以以更多的状况进行任务切换。因此,本发明 可以实现任务应答性能高的任务切换控制方法。
并且,也可以是,所述计算机系统在OS (Operating System :操 作系统)的控制下执行所述多个任务;所述多个任务包括通常任务, 在所述OS上运行,使用所述OS的计算机资源的全部;以及限定任 务,在所述OS上运行,仅使用所述OS的计算机资源的一部分;在
所述检测步骤检测所述限定任务的唤醒请求;在所述第一资源获得步
骤获得第一资源信息,该第一资源信息是所述OS的计算机资源中、 正在使用的计算机资源的信息;在所述第二资源获得步骤获得第二资 源信息,该第二资源〗言息是,在所述检测步骤检测出唤醒请求的限定 任务在执行时所需要的所述OS的计算机资源的信息;在所述第一判
断步骤根据在所述第一资源获得步骤获得的所述第一资源信息和在 所述第二资源获得步骤获得的所述第二资源信息,来判断是否可以将
任务切换到在所述检测步骤检测出唤醒请求的限定任务;在所述第一 判断步骤判断为可以进行切换的情况下,在所述第一切换步骤,将任
务切换到在所述检测步骤检测出唤醒请求的限定任务。
据此,可以根据现在正在使用的计算机资源以及检测出唤醒请求
的限定任务在执行时所需要的OS的计算机资源的信息,来判断是否
可以进行任务的切换。因此,在被执行的限定任务至少需要的os的
计算机资源为未被使用的情况下,可以进行任务切换。据此,与以往 的仅在计算机系统稳定且可以进行切换的所有的资源为未被使用的 情况下,才进行任务切换的计算机系统相比,可以以更多的状况进行 任务切换。因此,本发明可以实现任务应答性能高的任务切换控制方 法。
并且,也可以是,所述计算机系统在第一 OS和第二 OS的控制 下执行所述多个任务,所述第二 OS作为所述第一 OS上的一个以上
的任务来运行;所述多个任务包括主机os任务,是在所述第一 os上运行的任务;以及客户机os任务,是在所述第二os上运行的
任务,所述第二 OS上运行的任务是在所述第一 OS为主机OS时, 所述第一 OS上的任务;在所述检测步骤检测所述客户机OS任务的 唤醒请求;在所述第一资源获得步骤获得第一资源信息,该第一资源 信息是所述第一OS的计算机资源中、正在使用的计算机资源的信息;
在所述第二资源获得步骤获得第二资源信息,该第二资源信息是,在
所述检测步骤检测出唤醒请求的客户机OS任务在执行时所需要的所 述第一 OS的计算机资源的信息;在所述第一判断步骤根据在所述第
一资源获得步骤获得的所述第一资源信息和在所述第二资源获得步 骤获得的所述第二资源信息,来判断是否可以将任务切换到在所述检
测步骤检测出唤醒请求的客户机OS任务;在所述第一判断步骤判断
为处于可以切换的状态的情况下,在所述第一切换步骤将任务切换到
在所述检测步骤检测出唤醒请求的客户机OS任务;
据此,可以根据现在正在使用的第一os的计算机资源以及检测
出唤醒请求的客户机OS任务在执行时所需要的计算机第一 OS的计
算机资源的信息,来判断是否可以进行任务的切换。因此,在被执行
的客户机OS任务至少需要的第一 OS的计算机资源为未被使用的情
况下,可以进行任务切换。据此,与以往的仅在计算机系统稳定且可
以进行切换的所有的资源为未被使用的情况下,才进行任务切换的计 算机系统相比,可以以更多的状况进行任务切换。据此,可以使对主
机os的任务应答时间的依赖程度降为最低,并且可以在任务应答性
低的主机OS上构建任务应答性高的客户机os。因此,本发明可以
实现任务应答性能高的任务切换控制方法。
并且,也可以是,在所述检测步骤检测出唤醒请求的客户机os
任务所使用的计算机资源的全部均为未被使用的情况下,则在所述第
一判断步骤判断为可以将任务切换到所述客户机OS任务。
据此,在被执行的客户机OS任务至少需要的第一 OS计算机资
源为未被使用的情况下,可以进行任务切换。据此,可以使任务应答 性提高。
并且,所述任务切换控制方法进一步包括第一检测步骤,在所 述第一判断步骤判断为不可将任务切换到在所述检测步骤检测出唤 醒请求的客户机os任务的情况下,检测正在使用的所述第一 os的
计算机资源是否已被释放;第一资源再次获得步骤,在所述第一检测 步骤检测出正在使用的所述第一 OS的计算机资源已被释放的情况 下,再次获得第一资源信息,该第一资源信息是所述第一 OS的计算
机资源中、正在使用的所述第一OS的计算机资源的信息;以及根据
在所述第一资源再次获得步骤中获得的所述第一资源信息和在所述 第二资源获得步骤获得的所述第二资源信息,来判断是否可以将任务
切换到在所述检测步骤检测出唤醒请求的客户机OS任务。
据此,客户机OS任务在执行时所需要的第一 OS的计算机资源
为正在使用,在不可进行任务切换的情况下,可以监视第一os的计
算机资源的使用状况,在客户机OS任务执行时所需要的第一OS的
计算机资源被释放时,可以对任务进行切换。因此,可以在客户机
OS任务在执行时所需要的计算机资源为正在使用的状态下,使不可
进行任务切换的情况下的任务应答性提高。
并且,也可以是,所述任务切换控制方法进一步包括第三资源
获得步骤,获得第三资源信息,该第三资源信息是中断处理在执行时
所需要的所述第一OS的计算机资源的信息;第二判断步骤,根据在
所述第一资源获得步骤所获得的所述第一资源信息和在所述第三资 源获得步骤所获得的所述第三资源信息,来判断所述中断处理在执行
时所需要的计算机资源中是否至少有一部分处于正在使用的状态;以 及中断处理禁止步骤,在所述第二判断步骤判断为所述中断处理在执 行时所需要的计算机资源中至少有一部分处于正在使用的情况下,禁 止进行中断处理。
据此,在中断处理进行时所需要的第一OS的计算机资源为正在使 用的情况下,禁止在客户机OS任务执行时的中断处理。据此,可以防 止因在客户机OS任务执行时的中断处理而造成的误工作的发生等。
并且,也可以是,所述任务切换控制方法进一步包括第三资源
获得步骤,获得第三资源信息,该第三资源信息是中断处理在执行时
所需要的所述第一OS的计算机资源的信息;第二判断步骤,根据在
所述第一资源获得步骤所获得的所述第一资源信息和在所述第三资 源获得步骤所获得的所述第三资源信息,来判断所述中断处理在执行
时所需要的计算机资源中是否至少有一部分处于正在使用的状态;第 二检测步骤,在所述第二判断步骤判断为所述中断处理在执行时所需 要的计算机资源中至少有一部分处于正在使用的情况下,检测正在使 用的计算机资源是否已被释放;以及第二再次判断步骤,在所述第二 检测步骤检测出正在使用的所述第一OS的计算机资源己被释放的情 况下,再次判断所述中断处理在执行时所需要的计算机资源中是否至 少有一部分处于正在使用的状态;在所述第一判断步骤判断为可以进 行切换、且在所述第二再次判断步骤判断为所述中断处理在执行时所 需要的计算机资源中至少有一部分处于未被使用的情况下,在所述第 一切换步骤将任务切换到在所述检测步骤检测出唤醒请求的客户机 OS任务。
据此,在中断处理执行时所需要的第一OS的计算机资源为正在 使用,且在客户机OS任务在执行时不可进行中断处理的情况下,可 以监视第一 OS的计算机资源的使用状况,在中断处理执行时所需要 的第一 OS的计算机资源被释放时,可以对任务进行切换。因此,可 以在中断处理执行时所需要的计算机资源为正在使用的状态下,使不可进行任务切换的情况下的任务应答性提高。并且,可以防止因在客
户机OS任务执行时的中断处理而造成的误工作的发生等。
并且,也可以是,所述任务切换控制方法进一步包括环境保持 步骤,在所述第一判断步骤判断为所述任务可以切换到在所述检测步 骤检测出唤醒请求的客户机os任务的情况下,保持所述第一 os的
环境;以及环境返回步骤,在该客户机OS任务结束时,使在所述环
境保持步骤所保持的环境返回。
据此,可以在主机os任务执行时切换为客户机os任务,在客
户机OS任务结束后使主机OS任务返回的情况下,使切换为客户机
os任务之前的os环境返回。因此,可以在客户机os任务执行的前 后,确保os环境的相容性。
并且,也可以是,所述任务切换控制方法进一步包括变更请求
获得步骤,在所述第一切换步骤中被切换的所述客户机OS任务在执
行过程中获得变更请求,该变更请求请求变更在所述第一切换步骤切
换任务之前所执行的主机OS任务的状态;以及任务状态变更步骤,
根据在所述变更请求获得步骤所获得的变更请求,来变更在所述环境
保持步骤所保持的环境;在所述环境返回步骤中,使在所述任务状态
变更步骤所变更的环境返回。
据此,在客户机os任务执行过程中,对于在任务切换前所执行 的主机os任务,发生状态(优先级以及执行状态)变更请求的情况 下,可以变更在环境保持步骤所保持的OS的环境。据此,可以变更 返回后的主机OS任务的状态,并可以维持计算机系统的相容性。
并且,也可以是,所述任务切换控制方法进一步包括第二切换步
骤,在所述第一切换步骤所切换的所述客户机OS任务执行结束后, 将任务切换到所述主机OS任务中的最后所处的被执行的状态的主机
os任务。
据此,可以在客户机os任务结束后,使切换到客户机os任务 之前所执行的主机os任务返回。因此,可以在客户机os任务结束
后,继续执行在切换到客户机OS任务之前所执行的主机OS任务。
并且,也可以是,所述任务切换控制方法进一步包括任务判断
步骤,判断所述多个客户机OS任务中是否有一个以上处于可以执行 的状态;第二切换步骤,在所述任务判断步骤判断为所述多个客户机 OS任务中至少有一个以上处于不可执行的状态的情况下,在所述客 户机OS任务执行结束后,将任务切换到所述主机OS任务中最后所 处的被执行的状态的主机OS任务。
据此,可以在可以执行的客户机OS任务全部执行后,使将任务 切换到客户机OS任务之前所执行的主机OS任务返回。因此,可以 在可以执行的客户机OS任务全部执行完毕后,使在切换到客户机 OS任务之前所执行的主机OS任务继续执行。
并且,也可以是,所述主机os任务以及所述客户机os任务分
别具有决定任务执行顺序的优先级;所述任务切换控制方法进一步包 括优先级变更步骤,在所述第一判断步骤判断为可以切换到客户机 OS上的任务的情况下,将在所述第一切换步骤切换任务之前所执行 的主机OS任务的优先级,变更为所述主机OS任务中最高的优先级。 据此,可以通过将在将任务切换到客户机OS任务之前所执行的 主机OS任务的优先级,设为主机OS任务的优先级中最高的优先级, 从而在可以执行的客户机OS任务全部执行结束后,使切换到客户机 OS任务之前所执行的主机OS任务返回。因此,可以在可以执行的 所有客户机OS任务结束后,使切换到客户机OS任务之前所执行的
主机os任务继续执行。而且,可以在不用对现有的os功能进行改
进(例如,调度程序的改进)的情况下,自动执行在切换任务之前所
执行的主机os任务。
并且,也可以是,所述多个任务包括多个所述客户机OS任务;
所述任务切换控制方法进一步包括第三判断步骤,判断所述第一 OS 是否处于可以将任务切换到所述主机OS任务以及所有所述多个客户 机OS任务的状态;在所述第三判断步骤判断为所述第一 OS处于可
以切换的状态的情况下,在所述第一切换步骤将任务切换到在所述检
测步骤检测出唤醒请求的客户机OS任务;在所述第三判断步骤判断
为所述第一 OS处于不可切换的状态的情况下,在所述第一判断步骤
根据在所述第一资源获得步骤所获得的所述第一资源信息和在所述
第二资源获得步骤所获得的所述第二资源信息,来判断是否可以切换
到在所述检测步骤检测出唤醒请求的客户机OS任务。
据此,在第一os处于可以进行任务切换的状态下,不执行第一
资源获得步骤、第二资源获得步骤以及第一判断步骤,而是进行任务
切换。因此,可以减少在第一os处于可以切换任务的情况下的处理量。
并且,也可以是,本发明所涉及的计算机系统是复数的任务做动
作的计算机系统,包括检测单元,检测任务的唤醒请求;第一资源
获得单元,获得第一资源信息,该第一资源信息是所述计算机系统的
计算机资源中、正在使用的计算机资源的信息;第二资源获得单元, 获得第二资源信息,该第二资源信息是,在所述检测单元中检测出唤 醒请求的任务在执行时所需要的计算机资源的信息;第一判断单元, 根据在所述第一资源获得单元获得的所述第一资源信息和在所述第 二资源获得单元获得的所述第二资源信息,来判断是否可以将任务切 换到在所述检测单元检测出唤醒请求的任务;以及切换单元,在所述 第一判断单元判断为可以进行切换的情况下,将任务切换到在所述检 测单元检测出唤醒请求的任务。
据此,可以根据现在正在使用的计算机资源以及检测出唤醒请求 的任务在执行时所需要的计算机资源的信息,来判断是否可以进行任 务的切换。因此,在被执行的任务至少需要的计算机资源为未被使用 的情况下,可以进行任务切换。据此,与以往的仅在计算机系统稳定 且可以进行切换的所有的资源为未被使用的情况下,才进行任务切换 的计算机系统相比,可以以更多的状况进行任务切换。因此,本发明 可以实现任务应答性能高的计算机系统。
而且,本发明不仅可以作为上述的任务切换控制方法来实现,还 可以将这些任务切换控制方法中所包含的特征性步骤作为单元的计 算机系统来实现,还可以将这些任务切换控制方法中所包含的特征性 步骤作为使计算机执行的程序来实现。并且,这样的程序可以通过 CD—ROM等记录介质或互联网等传输介质来流通。
本发明可以提供任务应答性能高的任务切换控制方法以及计算 机系统。


图1是以往的计算机系统的任务切换处理的流程图。
图2是本发明的实施例1所涉及的计算机系统的构成图。 图3是本发明的实施例l所涉及的计算机系统的任务切换处理 的流程图。
图4是本发明的实施例2所涉及的计算机系统的构成图。
图5是本发明的实施例2所涉及的计算机系统的任务切换处理
的流程图。
图6是本发明的实施例3所涉及的计算机系统的构成图。
图7是本发明的实施例3所涉及的计算机系统的任务切换处理
的流程图。
图8是本发明的实施例3所涉及的计算机系统的任务优先级的 构成图。
图9是本发明的实施例3所涉及的计算机系统的任务优先级变 更的一示例图。
图IO是本发明的实施例3所涉及的计算机系统的特权客户机OS 任务在执行过程中,主机OS任务的状态变更处理流程图。
图11是本发明的实施例3所涉及的计算机系统的任务切换处理 的变形例的流程图。
图12是本发明的实施例3所涉及的计算机系统的变形例的构成图。
图13是本发明的实施例3所涉及的计算机系统的任务切换处理 的变形例的流程图。
具体实施例方式
以下,参照附图对利用本发明所涉及的任务切换控制方法的计算 机系统的实施例进行详细说明。 (实施例1)
本发明的实施例1所涉及的计算机系统根据正在使用的计算机 资源和唤醒请求所检测出的任务在执行时所需要的计算机资源的信 息,来判断是否可以进行任务的切换。据此,可以实现任务应答功能 高的计算机系统。
首先,对本发明的实施例l所涉及的计算机系统的构成进行说明。
图2是本发明的实施例1所涉及的计算机系统的构成图。图2所 示的计算机系统100是有多个任务140、 141、以及142运行的计算 机系统。计算机系统100包括作为硬件资源的CPU110以及在 CPU110上运行的作为软件资源的任务切换部120。在此所谓的任务 是指在CPU上的处理的执行单位。并且,在具备虚拟存储管理功能 的OS上,多个任务能够共享地址空间,将这些任务的集合称为任务 群组。
任务切换部120进行多个任务140、 141、以及142的切换。任 务切换部120包括第一计算机资源获得单元121、第二计算机资源 获得单元122、任务切换判断单元123、调度程序(dispatcher) 124 以及任务唤醒请求检测单元125。
任务唤醒请求检测单元125检测任务140、 141、以及142的唤 醒请求。
第一计算机资源获得单元121获得计算机系统100的计算机资源 中正在使用的计算机资源的信息。第二计算机资源获得单元122获得 任务在执行时所需要的计算机资源的信息,所述任务是由任务唤醒请 求检测单元125检测出唤醒请求的任务。在此,所谓计算机资源是指 存储管理结构以及运行队列(nmqueue)。
任务切换判断单元123根据计算机资源的信息,来判断是否可以 向检测出唤醒请求的任务进行任务切换,所述计算机资源的信息是 指第一计算机资源获得单元121所获得的正在使用的计算机资源 的信息以及第二计算机资源获得单元122所获得的检测出唤醒请求 的任务在执行时所需要的计算机资源的信息。
调度程序124在任务切换判断单元123判断为可以进行任务切换
的情况下,向由任务唤醒请求检测单元125检测出唤醒请求的任务进 行任务切换。
接着,对计算机系统100的工作进行说明。 图3是计算机系统100的任务切换处理流程图。 如图3所示,首先任务唤醒请求检测单元125检测任务的唤醒请 求(步骤S101)。以下,以任务140的唤醒请求被检测出的情况为 例进行说明。任务唤醒请求检测单元125在检测出任务140的唤醒请 求的情况下(步骤S101的"是"),第一计算机资源获得单元121 获得计算机系统100现在正在使用的计算机资源的信息(步骤S102)。 接着,第二计算机资源获得单元122获得任务140在执行时所需要的 计算机资源的信息(步骤S103)。
接着,任务切换判断单元123根据计算机资源的信息,来判断是 否可以向检测出唤醒请求的任务140进行任务切换(步骤S104), 所述计算机资源的信息是指第一计算机资源获得单元121所获得 的正在使用的计算机资源的信息,以及第二计算机资源获得单元122 获得的任务140在执行时所需要的计算机资源的信息。任务切换判断 单元123在检测出唤醒请求的任务140在执行时所需要的计算机资源 全部为未被使用的情况下,判断是否可以进行向检测出唤醒请求的任 务140的任务切换(步骤104的"是")。并且,任务切换判断单元 123在检测出唤醒请求的任务140在执行时所需要的计算机资源中有 一个以上为正在使用的情况下,则判断为不可进行任务切换(步骤 S104的"否")。在判断为可以进行任务切换的情况下(步骤S104 的"是"),调度程序124将任务切换到在步骤S101中检测出唤醒 请求的任务UO (步骤S105)。另一方面,在任务切换判断单元123 判断为不可进行任务切换的情况下(步骤S104的"否"),调度程 序124不进行任务切换。
根据以上所述,本发明的实施例1所涉及的计算机系统100根据 现在正在使用的计算机资源和检测出唤醒请求的任务在执行时所需 要的计算机资源的信息,来判断是否可以进行任务的切换。因此,在 被执行的任务至少需要的计算机资源为未被使用的情况下,可以进行
任务切换。据此,与以往的仅在计算机系统稳定且可以进行切换的所 有的资源为未被使用的情况下才进行任务切换的计算机系统相比,可 以以更多的状况进行任务切换。因此,本发明的实施例l所涉及的计
算机系统IOO可以实现任务应答功能高的计算机系统。
而且,在以上说明中,虽然是在获得正在使用的资源(步骤S102) 之后获得任务在运行时所需要的资源(步骤S103),但也可以是在 获得任务在运行时所需要的资源(步骤S103)之后,获得正在使用 的资源(步骤S102)。并且,含有获得正在使用的资源(步骤S102) 和获得任务在运行时所需要的资源(步骤S103)的所有处理或其中 一部分的处理也可以同时进行。 (实施例2)
本发明的实施例2将对适用于限定任务的任务切换的实施例进 行说明,所述限定任务是指将本发明在单一 OS上运行的任务。
首先,对本发明的实施例2所涉及的计算机系统的构成进行说明。
图4是本发明实施例2所涉及的计算机系统的构成图。
如图4所示,计算机系统200是由通常任务群组240和限定任务 群组250运行的计算机系统。计算机系统200包括作为硬件资源的 CPU210,以及作为CPU210上运行的软件资源的OS220和OS扩展 部230。计算机系统200在OS220的控制下执行通常任务群组240和 限定任务群组250中所包括的多个任务。
通常任务群组240包括多个通常任务241和242。限定任务群组 250包括多个限定任务251和252。通常任务241和242在OS220上 运行,是使用OS220的所有计算机资源(以下记作"OS资源")的 任务。限定任务251和252在OS220上运行,是仅使用OS220的资 源中的一部分的任务。
OS220包括调度程序221和任务唤醒检测单元222。 OS扩展部 230包括第一OS资源获得单元231、第二 OS资源获得单元232、 任务切换判断单元233以及多个限定任务资源表234。
多个限定资源表234与多个限定任务251和252 —一对应。限定
任务资源表234中记载有对应的限定任务251和252在执行时所需要 的OS资源的信息。
任务唤醒请求检测单元222检测限定任务251和252的唤醒请 求。第一 OS资源获得单元231获得OS220的计算机资源中的正在使 用的OS资源的信息。第二 OS资源获得单元232参照限定任务资源 表234,获得检测出唤醒请求的限定任务在执行时所需要的OS资源 的信息,所述限定任务资源表234与由任务唤醒请求检测单元222检 测出唤醒请求的限定任务相对应。在此,所谓OS资源是指存储管理 结构和运行队列等。
任务切换判断单元233根据OS资源的信息,来判断是否可以向 检测出唤醒请求的限定任务进行任务切换,所述OS资源的信息是 指第一 OS资源获得单元231所获得的正在使用的OS资源的信息 以及第二 OS资源获得单元232所获得的检测出唤醒请求的限定任务 在执行时所需要的OS资源的信息。
调度程序221在任务切换判断单元233判断为可以进行任务切换 的情况下,向由任务唤醒请求检测单元222检测出唤醒请求的限定任 务进行任务切换。
接着,对计算机系统200的工作进行说明。
图5是计算机系统200的任务切换处理的流程图。
如图5所示,首先任务唤醒请求检测单元222检测限定任务的唤 醒请求(步骤S201)。以下,以限定任务251的唤醒请求被检测出 的情况为例进行说明。在任务唤醒请求检测单元222检测出限定任务 251的唤醒请求的情况下(步骤S201的"是"),任务唤醒请求检 测单元222判断检测出的任务是否为限定任务(步骤S202)。检测 出的任务为限定任务(步骤S202的"是"),接着,第一 OS资源 获得单元231获得OS220现在正在使用的OS资源的信息(步骤 S203)。其次,第二OS资源获得单元232参照限定任务251所对应 的限定任务资源表234,获得限定任务251在执行时所需要的OS资 源的信息(步骤S204)。
任务切换判断单元233根据OS资源的信息,来判断是否可以向
检测出唤醒请求的限定任务251进行任务切换,所述OS资源的信息 是指第一 OS资源获得单元231所获得的正在使用的OS资源的信 息以及第二 OS资源获得单元232所获得的限定任务251在执行时所 需要的OS资源的信息。任务切换判断单元233在检测出唤醒请求的 限定任务251在执行时所需要的OS资源全部为未被使用的情况下, 判断是否可以进行向检测出唤醒请求的限定任务251的任务切换(步 骤205的"是")。并且,任务切换判断单元233在检测出唤醒请求 的限定任务251在执行时所需要的OS资源中有一个以上为正在使用 的情况下,则判断为不可进行任务切换(步骤S205的"否")。在 判断为可以进行任务切换的情况下(步骤S205的"是"),调度程 序221将任务切换到在步骤S201中检测出唤醒请求的限定任务251 (步骤S206)。另一方面,在任务切换判断单元233判断为不可进行 任务切换的情况下(步骤S205的"否"),调度程序221不进行任 务切换。
其次,以通常任务241的唤醒请求被检测出的情况为例进行说明。
任务唤醒请求检测单元222检测出通常任务241的唤醒请求的情 况下(步骤S201的"是"),因为检测出的任务为通常任务(步骤 S202的"否"),所以,任务切换判断单元233判断是否可以切换 到通常任务241 (步骤S207)。例如,按照使用中的资源,OS上是 否为可以切换的状态是有规定的,在可以切换的状态下,任务切换判 断单元233判断为可以切换任务。具体而言,为了对所有的任务进行 稳定的切换而指定多个资源,在所有被指定的资源为未被使用的情况 下,判断为可以切换。并且,在正在执行中断处理过程中,判断为不 可切换。
任务切换判断单元233判断为可以进行任务切换的情况下(步骤 S207的"是"),任务被切换为通常任务241 (步骤S208)。并且, 任务切换判断单元233判断为不可进行任务切换的情况下(步骤S207 的"否"),则不进行任务切换。
根据以上所述,本发明的实施例2所涉及的计算机系统200根据
现在正在使用的OS资源和检测出唤醒请求的限定任务在执行时所需 要的OS资源的信息,来判断是否可以进行向限定任务的任务切换。
因此,在被执行的任务至少需要的os资源为未被使用的情况下,可
以进行任务切换。据此,与以往的仅在计算机系统稳定且可以进行切 换的所有的资源为未被使用的情况下才进行任务切换的计算机系统
相比,可以以更多的状况进行任务切换。因此,本发明的实施例2所 涉及的计算机系统200可以实现任务应答功能高的计算机系统。
而且,在以上说明中,虽然是在获得正在使用的资源(步骤S203) 之后,获得任务在运行时所需要的资源(步骤S204),但也可以是 在获得任务在运行时所需要的资源(步骤S204)之后,获得正在使 用的资源(步骤S203)。并且,含有获得正在使用的资源(步骤S203) 的所有处理或其中一部分的处理和获得任务在运行时所需要的资源 (步骤S204)的所有处理或其中一部分的处理也可以同时进行。
并且,检测出唤醒请求的任务为限定任务的情况下(步骤S202 的"是"),可以进行与步骤S207同样的可以进行切换的判断。在 此情况下,在被判断为可以进行切换时,不进行步骤S203、 S204、 以及S205的处理,而执行任务切换(步骤S206),在被判断为不可 进行切换时,可以进行步骤S203以后的处理。据此,在进行与步骤 S207同样的切换判断时,可以减少在判断为可以切换的情况下的处 理量。而且,与步骤S207同样的切换判断可以在判断是否为限定任 务(步骤S202)之前进行。
(实施例3)
在本发明的实施例3中,对适用于将本发明在主机(host)OS上运 行的客户机(guest)OS任务的任务切换的实施例进行说明。
首先,对本发明实施例3所涉及的计算机系统的构成进行说明。 图6是本发明实施例3所涉及的计算机系统的构成图。 图6所示的计算机系统300是主机OS任务群组360和客户机 OS群组370运行的计算机系统。计算机系统300包括作为硬件资 源的CPU310、在CPU310上运行的作为软件资源的主机OS320、主 机OS扩展部330以及客户机OS350。主机OS例如是通用OS。客户
机OS350是作为主机OS320上的一个以上的任务来运行的OS,例如 是实时OS。计算机系统300在主机OS320和客户机OS350的控制下, 执行主机OS任务群组360和客户机OS任务群组370中所包括的多 个任务。
主机OS任务群360包括多个主机OS任务361、 362、以及363。 主机OS任务361、 362、以及363是在主机OS320上运行的任务。 客户机OS任务群组370包括多个特权客户机OS任务371和多个 非特权客户机OS任务372。特权客户机OS任务371和非特权客户 机OS任务372是作为在主机OS320上的任务来运行的客户机OS350 上的任务。并且,特权客户机OS任务371是以比非特权客户机OS 任务372高的优先级来执行的任务。
主机OS320包括调度程序321、任务唤醒请求检测单元322、 主机OS环境323、以及中断资源表324。主机OS扩展部330包括 第一主机OS资源获得单元331、第二主机OS资源获得单元332、任 务切换判断单元333、主机OS环境保存单元334、主机OS环境保持 单元335、主机OS环境返回单元336、变更请求获得单元337、主机 OS环境变更单元338、第三主机OS资源获得单元339、中断禁止单 元340、以及优先级控制单元341。客户机OS350包括多个客户机 OS任务资源表351。多个客户机OS任务资源表351与多个特权客户 机OS任务371 —一对应。
客户机OS任务资源表351中记载有对应的特权客户机OS任务 371在执行时所需要的OS资源的信息。
中断资源表324中记载有主机OS320的中断处理器(中断处理) 在执行时所需要的OS资源的信息。
任务唤醒请求检测单元322检测特权客户机OS任务371的唤醒 请求。
第一主机OS资源获得单元331获得主机OS320的计算机资源中 正在使用的OS资源的信息。并且,第一主机OS资源获得单元331 在以后将要叙述的任务切换判断单元333判断为不可切换到检测出 唤醒请求的特权客户机OS任务的情况下,检测正在使用的OS资源 是否已被释放。而且,第一主机OS资源获得单元331检测出正在使 用的OS资源已被释放的情况下,再次获得OS计算机资源中的、主 机OS320的计算机资源中的、正在使用的OS资源的信息。
第二主机OS资源获得单元332参照由任务唤醒请求检测单元 322检测出唤醒请求的特权客户机OS任务所对应的客户机OS任务 资源表351,获得检测出唤醒请求的特权客户机任务在执行时所需要 的OS资源的信息。
第三主机OS资源获得单元339参照中断资源表324,获得主机 OS320的中断处理在执行时所需要的OS资源的信息。在此,所谓 OS资源是指存储管理结构和运行队列等。
任务切换判断单元333根据OS资源的信息,来判断是否可以向 检测出唤醒请求的特权客户机OS任务进行任务切换,所述OS资源 的信息是指第一主机OS资源获得单元331所获得的正在使用的 OS资源的信息以及第二主机OS资源获得单元332所获得的检测出 唤醒请求的特权客户机OS任务在执行时所需要的OS资源的信息。 具体而言,任务切换判断单元333在由任务唤醒请求检测单元322检 测出唤醒请求的特权客户机OS任务所使用的所有OS资源为未被使 用的情况下,判断为可以向特权客户机OS任务进行切换。
并且,任务切换判断单元333根据OS资源的信息来判断是否可 以在检测出唤醒请求的特权客户机OS任务正在运行时进行中断处 理,所述OS资源的信息是指第一主机OS资源获得单元331所获 得的正在使用的OS资源的信息,以及第三主机OS资源获得单元339 所获得的在中断处理时所需要的OS资源的信息。具体而言,任务切 换判断单元333根据OS资源的信息来判断在中断处理时所需要的
os资源的至少一部分是否被正在使用,所述os资源的信息是指
第一主机OS资源获得单元331所获得的正在使用的OS资源的信息, 以及第三主机OS资源获得单元339所获得的在中断处理时所需要的 OS资源的信息。任务切换判断单元333在中断处理时所需要的OS 资源的至少一部分为正在使用的情况下,判断为不可在特权客户机 OS任务运行中执行中断处理。任务切换判断单元333在中断处理时 所需要的所有os资源均为未被使用的情况下,判断为可以在特权客 户机OS任务运行中执行中断处理。
调度程序321在任务切换判断单元333判断为可以进行任务切换 的情况下,向检测出唤醒请求的特权客户机OS任务进行任务切换。
主机OS环境323为主机OS的环境的信息,例如是调度程序 321在将任务切换到特权客户机OS任务之前所执行的主机OS任务 的优先级、被执行的主机OS任务的执行状态(Runnhig(运行)或 Wait(等待))、以及调度策略等。在此,所谓的调度策略是指决定任 务执行顺序的规则,例如,从优先级高的任务开始执行,或按每个规 定的时间内所决定的顺序来执行任务。
在任务切换判断单元333判断为可以切换到检测出唤醒请求的 特权客户机OS任务,调度程序321将任务切换到特权客户机OS任 务之时,主机OS环境保存单元334获得主机OS环境323。主机OS 环境保持单元335保持主机OS环境保存单元334所获得的主机OS 环境323。
在特权客户机OS任务运行结束后,并在返回到将任务切换到特 权客户机OS任务之前所执行的主机OS任务之时,主机OS环境返 回单元336使主机OS环境保持单元335所保持的主机OS环境返回 到主机OS320。
变更请求获得单元337在特权客户机OS任务执行过程中获得变 更主机OS任务的状态(优先级以及执行状态)的请求,所述主机 OS任务是在将任务切换到特权客户机OS任务之前所执行的任务。 主机OS环境变更单元338根据变更请求获得单元337所获得的变更 请求,来变更主机OS环境保持单元335所保持的主机OS环境(主 机OS任务的状态)。
中断禁止单元340在任务切换判断单元333判断为检测出唤醒请 求的特权客户机OS任务执行中不可进行中断处理的情况下,禁止中 断处理。
优先级控制单元341在调度程序321将任务切换到特权客户机 OS任务时,将切换任务之前所执行的主机OS任务的优先级变更为 多个主机os任务中最高的优先级。在此,所谓优先级是指决定任务
执行顺序的值。
其次,对计算机系统300的工作进行说明。 图7是计算机系统300的任务切换处理流程图。 如图7所示,首先,任务唤醒请求检测单元322检测特权客户机 OS任务的唤醒请求(步骤S301)。以下,以特权客户机OS任务371 的唤醒请求被检测出的情况为例进行说明。并且,特权客户机OS任 务371的唤醒请求被检测出时,主机OS任务361被执行。在任务唤 醒请求检测单元322检测出特权客户机OS任务371的唤醒请求的情 况下(步骤S301的"是"),任务唤醒请求检测单元322判断检测 出的任务是否为特权客户机OS任务(步骤S302)。由于检测出的任 务为特权客户机OS任务(步骤S302的"是"),因此,任务切换 判断单元333判断是否可以切换任务(步骤S303)。例如,按照使 用中的资源,OS上是否为可以切换的状态是有规定的,在可以切换 的状态下,任务切换判断单元333则判断为可以切换任务。具体而言, 为了对所有的任务进行稳定的切换而指定多个资源,在所有被指定的 资源为未被使用的情况下,判断为可以切换。并且,在正在执行中断 处理过程中,判断为不可切换。
在任务切换判断单元333判断为不可进行任务切换的情况下(步 骤S303的"否"),接着,第一主机OS资源获得单元331获得主 机OS320现在正在使用的OS资源的信息(步骤S304)。其次,第 二主机OS资源获得单元332参照特权客户机OS任务371所对应的 客户机OS任务资源表351,来获得特权客户机OS任务371在执行 时所需要的OS资源的信息(步骤S305)。
其次,任务切换判断单元333根据OS资源的信息,来判断是否 可以向检测出唤醒请求的特权客户机OS任务371进行任务切换,所 述OS资源的信息是指第一主机OS资源获得单元331所获得的正 在使用的OS资源的信息以及第二主机OS资源获得单元332所获得 的特权客户机OS任务371在执行时所需要的OS资源的信息。任务 切换判断单元333在检测出唤醒请求的特权客户机OS任务371在执
行时所需要的OS资源全部为未被使用的情况下,判断是否可以进行 向检测出唤醒请求的特权客户机OS任务371的任务切换(步骤306 的"是")。并且,任务切换判断单元333在检测出唤醒请求的特权 客户机OS任务371在执行时所需要的OS资源中有一个以上为正在 使用的情况下,则判断为不可进行任务切换(步骤S306的"否")。 在步骤S306任务切换被判断为不可的情况下(步骤S306的 "否"),则第一主机OS资源获得单元331监视正在使用的OS资源 是否被变更(步骤S307)。在正在使用的OS资源被变更的情况下(步 骤S307的"是"),第一主机OS资源获得单元331获得变更后的 被使用的OS资源的信息(步骤S308)。任务切换判断单元333根据 OS资源的信息,来判断是否可以向特权客户机OS任务371进行任 务切换,所述OS资源的信息是指在步骤S308第一主机OS资源获 得单元331所获得的正在使用的OS资源的信息,以及在步骤305第 二主机OS资源获得单元332所获得的特权客户机OS任务371在执 行时所需要的OS资源的信息。在任务切换被判断为不可的情况下(步 骤S306的"否"),则再次进行步骤S307、 S308、 S306,直至在步 骤S306任务切换被判断为可以进行为止,重复步骤S307、S308、S306。 即,第一主机OS资源获得单元331在步骤S306中被判断为不可向 特权客户机OS任务进行切换的情况下(步骤S306的"否"),检 测正在使用的OS资源是否被释放,在检测出正在使用的OS资源已 被释放时,再次获得正在使用的OS资源的信息。任务切换判断单元 333根据OS资源的信息,来判断是否可以向特权客户机OS任务371 进行任务切换,所述OS资源的信息是指在步骤S308获得的正在 使用的OS资源的信息,以及在步骤305第二主机OS资源获得单元 332所获得的特权客户机OS任务371在执行时所需要的OS资源的 信息。
这样,本发明实施例3所涉及的计算机系统在特权客户机OS任 务在执行时所需要的OS资源正被使用、不可进行任务切换的情况下, 监视OS资源的使用状况,当特权客户机OS任务在执行时所需要的 OS资源被释放时,对任务进行切换。因此,可以提高在特权客户机
OS任务在执行时所需要的OS资源被使用、不可进行任务切换时的
任务应答功能。
在步骤S306被判断为可以进行任务切换的情况下(步骤S306 的"是"),第三主机OS资源获得单元339参照中断处理资源表324, 来获得主机OS的中断处理所使用的OS资源的信息(步骤S309)。 其次,任务切换判断单元333根据OS资源的信息来判断是否可以在 特权客户机OS任务正在执行时执行中断处理,所述OS资源的信息 是指第三主机OS资源获得单元339所获得的中断处理所使用的 OS资源的信息,以及第一主机OS资源获得单元331所获得的正在 使用的OS资源的信息(步骤S310)。具体而言,任务切换判断单元 333在中断处理时所需要的所有OS资源均为未被使用的情况下,判 断为可以执行中断处理。并且,任务切换判断单元333在中断处理时 所需要的OS资源中至少一个以上为正在使用的情况下,判断为不可 执行中断处理。在不可执行中断处理的情况下(步骤S310的"否"), 中断禁止单元340则禁止在特权客户机OS任务371正在执行中进行 中断处理(步骤S311)。例如,中断禁止单元340通过将主机OS的 中断屏蔽的级别提高,从而禁止在特权客户机OS任务371正在执行 中进行中断处理。
这样,本发明的实施例3所涉及的计算机系统300在中断处理所 使用的OS资源处于被使用的情况下,禁止在特权客户机OS任务371 正在执行中进行中断处理。据此,可以防止在特权客户机OS任务371 正在执行中因中断处理而导致错误工作的发生等。
在步骤S310被判断为可以进行中断处理的情况下(步骤S310 的"是"),以及在禁止中断处理(步骤S311)之后,主机OS环境 保存单元334获得现在的主机OS320的主机OS环境323,并保持到 主机OS环境保持单元335 (步骤S312)。
其次,调度程序321在步骤S301将任务切换到检测出唤醒请求 的特权客户机OS任务371 (步骤S313)。其次,优先级控制单元341 变更作为正在执行的任务的主机OS任务361的优先级(步骤S314)。
图8是主机OS361、 362、 363、特权客户机OS任务371以及非
特权客户机OS任务372的优先级关系的模式图。
如图8所示,多个特权客户机OS任务371的优先级最高,其次 是多个非特权客户机OS任务372的优先级,优先级最低的是多个主 机OS任务361、 362、以及363。并且,在多个特权客户机OS任务 371的优先级和多个非特权客户机OS任务372的优先级之间设置有 预约优先级380。
图9是优先级控制单元341对任务切换之前所执行的主机OS任 务的优先级进行变更的示例图。如图9所示,优先级控制单元341在 步骤S314将主机OS任务361的优先级提高到预约优先级380。
这样,本发明的实施例3所涉及的计算机系统300在向特权客户 机OS任务371进行任务切换时,将任务切换之前所执行的主机OS 任务361 (或非特权客户机OS任务)的优先级变更为特权客户机OS 任务以外的任务(主机OS任务以及非特权客户机OS任务)中最高 的优先级。据此,在特权客户机OS任务371结束后,任务被自动切 换到在特权客户机OS任务以外的任务(主机OS任务以及非特权客 户机OS任务)中最后被执行的任务。即,通过变更优先级,不是对 现有的主机OS的功能进行改进(例如,调度的改进),而是可以自 动执行任务切换之前所执行的主机OS任务361。并且,主机OS环 境保存单元334在保存主机OS320的主机OS环境323后,在任务切 换之前所执行的主机OS任务361的执行状态为正在待机(Wait)的 情况下,主机优先级控制单元341将此正在待机的执行状态变更为正 在执行(Running)。据此,可以防止错误操作的发生,该错误操作 是指在向特权客户机OS任务371进行任务切换时的主机OS任务 361的执行状态为待机状态的情况下、特权客户机OS任务371的任 务执行结束后、主机OS任务361的执行不能再次开始。
由优先级控制单元341变更优先级(步骤S314)后,执行特权 客户机OS任务371 (步骤S315)。特权客户机OS任务371结束后, 调度程序321将任务切换到任务切换之前所执行的主机OS任务361 。 其次,主机OS环境返回单元336使保持在主机OS环境保持单元335 中的主机OS环境返回(步骤S316)。这样,在主机OS任务361正
在执行中将任务切换到特权客户机OS任务371,在客户机OS任务 结束后使主机OS任务返回的情况下,使切换到特权客户机OS任务 371之前的主机OS环境返回。因此,可以在执行特权客户机OS371 的前后确保主机OS环境的相容性。
并且,如图9所示,优先级控制单元341在向主机OS任务361 进行任务切换时,参照保持在主机OS环境保持单元335中的主机 OS任务361原来的优先级,将主机OS任务361的优先级从预约优 先级380变更为原来的优先级。
另一方面,在步骤S303,在被判断为可以进行任务切换的情况 下(步骤S303的"是"),若进行上述的步骤S304到步骤S316的 处理,则将任务切换到特权客户机OS任务371 (步骤S318)。这样, 主机OS320在处于可以进行任务切换的状态的情况下,通过不进行 上述的步骤S304到步骤S316的处理,从而可以减少主机OS320在 处于可以进行任务切换的状态下的处理量。
其次,以主机OS任务363的唤醒请求被检测出的情况为例进行 说明。
任务唤醒请求检测单元322检测出主机OS任务363的唤醒请求 的情况下(步骤S301的"是"),因为检测出的任务为通常任务(步 骤S302的"否"),所以接下来,任务切换判断单元333判断是否 可以切换到主机OS任务363 (步骤S317)。例如,按照使用中的资 源,OS上是否为可以切换的状态是有规定的,在可以切换的状态下, 任务切换判断单元333判断为可以切换任务。具体而言,为了对所有 的任务进行稳定的切换而指定多个资源,在所有被指定的资源为未被 使用的情况下,判断为可以切换。并且,在正在执行中断处理过程中, 判断为不可切换。
任务切换判断单元333判断为可以进行任务切换的情况下(步骤 S317的"是"),任务被切换为主机OS任务363 (步骤S318)。并 且,在任务切换判断单元333判断为不可进行任务切换的情况下(步 骤S317的"否"),则不进行任务切换。并且,非特权客户机OS 任务372的唤醒请求被检测出时的处理与主机OS任务363的唤醒请 求被检测出时的处理相同。
以下,对图7的步骤S315中、将任务切换到特权客户机OS任 务371之前所执行的主机OS任务361的状态变更工作进行说明。
图10是特权客户机OS任务371在执行中计算机系统300的主 机OS任务361的状态变更处理流程图。如图IO所示,变更请求获 得单元337在步骤S313执行被切换的特权客户机OS任务371时, 监视任务切换前所执行的主机OS任务361的状态变更的请求(步骤 S401)。变更请求获得单元337在获得变更请求的情况下(步骤S401 的"是"),主机OS环境变更单元338根据变更请求获得单元337 获得的变更请求,来变更主机OS环境保持单元335所保持的主机 OS环境(步骤S402)。变更后的主机OS环境在上述步骤S316中由 主机OS环境返回单元336来返回。在此,变更请求获得单元337获 得的变更请求是由特权客户机OS任务371所发生的主机OS任务361 的执行状态变更请求以及优先级变更请求,或者是由特权客户机OS
请求以及优先级变更请求等。
这样,本发明的实施例3所涉及的计算机系统300在特权客户机 OS任务371执行中,在对于任务切换之前所执行的主机OS任务361 发生了状态(优先级以及执行状态等)的变更请求的情况下,变更主 机OS环境保持单元335所保持的主机OS环境。据此,可以变更返 回后的主机OS任务361的状态,并可以维持计算机系统300的相容 性。
根据以上所述,本发明的实施例3所涉及的计算机系统300根据 现在正在使用的OS资源以及被检测出唤醒请求的特权客户机OS任 务在执行时所需要的OS资源,来判断是否可以进行特权客户机OS 任务的切换。因此,在被执行的特权客户机OS任务至少需要的OS 资源为未被使用的情况下,可以进行任务切换。据此,与以往的仅在 计算机系统稳定且可以进行切换的所有的资源为未被使用的情况下, 才进行任务切换的计算机系统相比,可以以更多的状况进行任务切 换。因此,本发明的实施例3所涉及的计算机系统300可以实现任务
应答功能高的计算机系统。
并且,在上述说明中,在步骤S310不可执行中断处理的情况下 (步骤S310的"否"),中断禁止单元340禁止在特权客户机OS任 务371执行中进行中断处理(步骤S311),不过,在不可执行中断 处理的情况下(步骤S310的"否"),在中断处理所需要的OS资 源被释放时,任务切换判断单元333也可以判断为可以进行任务切 换。以下对本发明的实施例3所涉及的计算机系统300的变形例进行 说明,即对中断处理所需要的OS资源被释放时,判断为可以进行任 务切换的计算机系统的工作进行说明。
图11是本发明的实施例3所涉及的计算机系统300的任务切换 处理的变形例的流程图。如图11所示,在判断为不可进行中断处理 的情况下(步骤S310的"否"),第一主机OS资源获得单元331 监视正在被使用的OS资源是否已被变更(步骤S319)。在被使用的 OS资源已被变更的情况下(步骤S319的"是"),第一主机OS资 源获得单元331获得变更的后被使用的OS资源的信息(步骤S320)。 任务切换判断单元333根据OS资源的信息来判断是否可以在特权客 户机OS任务正在运行时进行中断处理(步骤S310),所述OS资源 的信息是指在步骤S320第一主机OS资源获得单元331所获得的 正在使用的OS资源的信息,以及在步骤S309第三主机OS资源获得 单元339所获得的在中断处理时所需要的OS资源的信息。在判断为 不可进行中断处理的情况下(步骤S310的"否"),再次执行步骤 S319、 S320、以及S310,直至在步骤S310判断为可以进行中断处理 为止,则反复步骤S319、 S320、以及S310。即,在步骤S310判断 为不可进行中断处理的情况下(步骤S310的"否"),第一主机OS 资源获得单元331检测正在使用的OS资源是否被释放,在检测出正 在使用的OS资源已被释放的情况下,再次获得正在使用的OS资源 的信息。任务切换判断单元333根据OS资源的信息再次判断是否可 以在特权客户机OS任务371正在运行时进行中断处理,所述OS资 源的信息是指在步骤S320所获得的正在使用的OS资源的信息, 以及在步骤S309第三主机OS资源获得单元339所获得的在中断处 理时所需要的OS资源的信息。在步骤S303判断为可以进行切换且 在步骤S310判断为可以进行中断处理的情况下,调度程序321将任 务切换到特权客户机OS任务371。
在此,如图7所示,在特权客户机OS任务执行中不可进行中断 处理的情况下,通过禁止中断处理,从而可以提高对于特权客户机 OS任务的任务应答功能。另一方面,如图11所示,在特权客户机 OS任务执行中不可进行中断处理的情况下,中断处理在执行时所需 要的OS资源被释放时,通过进行向特权客户机OS任务的切换,从 而可以提高对于中断处理的应答功能。
并且,在上述说明中,在步骤S314通过变更作为被执行的任务 的主机OS任务361的优先级,在特权客户机OS任务结束后,自动 地执行了主机OS任务361,不过,也可以进行以下的处理。
图12是本发明的实施例3所涉及的计算机系统的变形例的构成 图。图12所示的计算机系统400与图6所示的计算机系统300相比, 不同之处是在主机OS扩张部330所具备的不是优先级控制单元341 , 而是任务检测单元401。并且,对于与图6同样的构成使用相同的符 号,并省略详细说明。任务检测单元401在特权客户机Os任务结束 时,检测是否有可以执行的特权客户机OS任务。即任务检测单元401 判断多个特权客户机OS任务371中是否有一个以上处于可以执行状 态。图13是计算机系统400的任务切换处理的流程图。
如图13所示,在将任务切换到特权客户机OS任务371 (步骤 S313)之后,不进行优先级变更(步骤S314),而执行特权客户机 OS任务(步骤S315)。特权客户机OS任务371结束后(步骤S315 之后),任务检测单元401检测是否有可以执行的特权客户机OS任 务(步骤S410)。在检测出有可以执行的特权客户机OS任务的情况 下(步骤S410的"是"),调度程序321将任务切换到检测出的特 权客户机OS任务,从而使检测出的特权客户机OS任务得以执行(步 骤S411)。在检测出的特权客户机OS任务结束后,任务检测单元 401检测是否有可以执行的特权客户机OS任务(步骤S410)。在没 有检测到可以执行的特权客户机OS任务的情况下(步骤S410的
"否"),主机OS环境返回单元336使保持在主机OS环境保持单元 335中的主机OS环境返回(步骤S316)。
主机OS环境返回后,调度程序321将任务强制地切换到任务切换之 前所执行的主机OS任务361。通过以上的处理,在特权客户机OS 任务结束后,可以执行在任务切换前所执行的主机OS任务361。而 且,要执行图13所示的处理,则需要设置任务检测单元401。由任 务检测单元401所进行的处理例如可以通过改善调度表来实现。因 此,在进行上述图7所示的优先级变更处理的情况下,可以在不改善 调度表等状态下进行,其优点是可以使优先级变更处理容易进行。另 一方面,在图13所示的处理中,虽然需要改良调度表等,但优点是 可以使处理简化并容易控制。
并且,在上述的说明中,在获得正在使用的资源(步骤S304) 之后,获得了任务所需要的资源(步骤S305),但也可以是在获得 任务所需要的资源(步骤S305)之后,获得正在使用的资源(步骤 S304)。并且,获得正在使用的资源(步骤S304)时所包括的全部 或一部分的处理,以及获得任务所需要的资源(步骤S305)时所包 括的全部或一部分的处理也可以同时进行。
并且,步骤S303以及S317的切换判断也可以在判断是否为特权 客户机OS任务(步骤S302)之前进行。
并且,在上述说明中,在步骤S305到S308的处理(特权客户机 OS任务所需要的OS资源是否为正在被使用的判断处理)之后,进 行步骤S309到S3U的处理(中断处理在执行时所需要的OS资源是 否为正在被使用的判断处理),不过,也可以在步骤S309到S311 的处理之后进行步骤S305到S308的处理。并且,在步骤S305到S308 的处理中所包括的全部或一部分的处理,以及步骤S309到S311的处 理中所包括的全部或一部分的处理也可以同时进行。
本发明可以适用于多个任务运行的计算机系统以及计算机系统 中的任务切换控制方法,.尤其可以适用于在通用OS上作为一个以上 的任务的实时OS所运行的混合OS等,以及混合OS中的任务切换 控制方法。
权利要求
1.一种任务切换控制方法,对多个任务运行的计算机系统的任务切换进行控制,包括检测步骤,检测任务的唤醒请求;第一资源获得步骤,获得第一资源信息,该第一资源信息是所述计算机系统的计算机资源中、正在使用的计算机资源的信息;第二资源获得步骤,获得第二资源信息,该第二资源信息是在所述检测步骤中检测出唤醒请求的任务在执行时所需要的计算机资源的信息;第一判断步骤,根据在所述第一资源获得步骤获得的所述第一资源信息以及在所述第二资源获得步骤获得的所述第二资源信息,来判断是否可以将任务切换到在所述检测步骤检测出唤醒请求的任务;以及第一切换步骤,在所述第一判断步骤判断为可以进行切换的情况下,将任务切换到在所述检测步骤检测出唤醒请求的任务。
2 .如权利要求1所述的任务切换控制方法, 所述计算机系统在OS的控制下执行所述多个任务; 所述多个任务包括通常任务,在所述OS上运行,使用所述OS的计算机资源的全 部;以及限定任务,在所述OS上运行,仅使用所述OS的计算机资源的 一部分;在所述检测步骤检测所述限定任务的唤醒请求; 在所述第一资源获得步骤获得第一资源信息,该第一资源信息是所述OS的计算机资源中、正在使用的计算机资源的信息;在所述第二资源获得步骤获得第二资源信息,该第二资源信息是,在所述检测步骤检测出唤醒请求的限定任务在执行时所需要的所述OS的计算机资源的信息; 所述第一判断步骤,根据在所述第一资源获得步骤获得的所述第 一资源信息以及在所述第二资源获得步骤获得的所述第二资源信息, 来判断是否可以将任务切换到在所述检测步骤检测出唤醒请求的限定任务;在所述第一判断步骤判断为可以进行切换的情况下,所述第一切 换步骤将任务切换到在所述检测步骤检测出唤醒请求的限定任务。
3 .如权利要求1所述的任务切换控制方法, 所述计算机系统在第一 OS和第二 OS的控制下执行所述多个任 务,所述第二OS作为所述第一OS上的一个以上的任务来运行;所述多个任务包括主机OS任务,是在所述第一OS上运行的任务;以及客户机OS任务,是在所述第二 OS上运行的任务,所述第二 OS上运行的任务是在所述第一 OS为主机OS时,所述第一 OS上的任务;在所述检测步骤检测所述客户机OS任务的唤醒请求; 在所述第一资源获得步骤获得第一资源信息,该第一资源信息是 所述第一OS的计算机资源中、正在使用的计算机资源的信息;在所述第二资源获得步骤获得第二资源信息,该第二资源信息是,在所述检测步骤检测出唤醒请求的客户机OS任务在执行时所需 要的所述第一OS的计算机资源的信息;所述第一判断步骤,根据在所述第一资源获得步骤获得的所述第 一资源信息以及在所述第二资源获得步骤获得的所述第二资源信息, 来判断是否可以将任务切换到在所述检测步骤检测出唤醒请求的客户机OS任务;在所述第一判断步骤判断为可以进行切换的情况下,所述第一切换步骤将任务切换到在所述检测步骤检测出唤醒请求的客户机OS任务。
4.如权利要求3所述的任务切换控制方法, 在所述检测步骤检测出唤醒请求的客户机OS任务所使用的计算机资源的全部均为未被使用的情况下,则在所述第一判断步骤判断为可以将任务切换到所述客户机OS任务。
5 .如权利要求3所述的任务切换控制方法,进一步包括第一检测步骤,在所述第一判断步骤判断为不可将任务切换到在所述检测步骤检测出唤醒请求的客户机OS任务的情况下,检测正在 使用的所述第一 OS的计算机资源是否己被释放;第一资源再次获得步骤,在所述第一检测步骤检测出正在使用的 所述第一OS的计算机资源已被释放的情况下,再次获得第一资源信 息,该第一资源信息是所述第一OS的计算机资源中、正在使用的所 述第一OS的计算机资源的信息;以及再次判断步骤,根据在所述第一资源再次获得步骤中获得的所述 第一资源信息以及在所述第二资源获得步骤中获得的所述第二资源 信息,来判断是否可以将任务切换到在所述检测步骤检测出唤醒请求 的客户机OS任务。
6. 如权利要求3所述的任务切换控制方法,进一步包括 第三资源获得步骤,获得第三资源信息,该第三资源信息是中断处理在执行时所需要的所述第一 OS的计算机资源的信息;第二判断步骤,根据在所述第一资源获得步骤所获得的所述第一资源信息以及在所述第三资源获得步骤所获得的所述第三资源信息,来判断所述中断处理在执行时所需要的计算机资源中是否至少有一部分处于正在使用的状态;以及中断处理禁止步骤,在所述第二判断步骤判断为所述中断处理在执行时所需要的计算机资源中至少有一部分处于正在使用的情况下,禁止进行中断处理。
7. 如权利要求3所述的任务切换控制方法,进一步包括 第三资源获得步骤,获得第三资源信息,该第三资源信息是中断 处理在执行时所需要的所述第一 OS的计算机资源的信息;第二判断步骤,根据在所述第一资源获得步骤所获得的所述第一 资源信息以及在所述第三资源获得步骤所获得的所述第三资源信息, 来判断所述中断处理在执行时所需要的计算机资源中是否至少有一 部分处于正在使用的状态;第二检测步骤,在所述第二判断步骤判断为所述中断处理在执行 时所需要的计算机资源中至少有一部分处于正在使用的情况下,检测 正在使用的计算机资源是否已被释放;以及第二再次判断步骤,在所述第二检测步骤检测出正在使用的所述 第一OS的计算机资源已被释放的情况下,再次判断所述中断处理在 执行时所需要的所述第一 OS的计算机资源中是否至少有一部分处于 正在使用的状态;在所述第一判断步骤判断为可以进行切换、且在所述第二再次判 断步骤判断为所述中断处理在执行时所需要的计算机资源中至少有 一部分处于未被使用的情况下,所述第一切换步骤将任务切换到在所 述检测步骤检测出唤醒请求的客户机OS任务。
8 .如权利要求3所述的任务切换控制方法,进一步包括 环境保持步骤,在所述第一判断步骤判断为所述任务可以切换到在所述检测步骤检测出唤醒请求的客户机OS任务的情况下,保持所述第一OS的环境;以及环境返回步骤,在该客户机OS任务结束时,使在所述环境保持步骤所保持的环境返回。
9.如权利要求8所述的任务切换控制方法,进一步包括 变更请求获得步骤,在所述第一切换步骤中被切换的所述客户机 OS任务在执行过程中获得变更请求,该变更请求是指请求变更在所 述第一切换步骤切换任务之前所执行的主机OS任务的状态;以及任务状态变更步骤,根据在所述变更请求获得步骤所获得的变更 请求,来变更在所述环境保持步骤所保持的环境; 在所述环境返回步骤中,使在所述任务状态变更步骤所变更的环 境返回。
10.如权利要求3所述的任务切换控制方法,进一步包括第二 切换步骤,在所述第一切换步骤所切换的所述客户机OS任务执行结 束后,将任务切换到所述主机OS任务中的最后处于被执行的状态的 主机OS任务。
11.如权利要求3所述的任务切换控制方法,进一步包括 任务判断步骤,判断所述多个客户机os任务中是否有一个以上处于可以执行的状态;以及第二切换步骤,在所述任务判断步骤判断为所述多个客户机os任务中至少有一个以上处于不可执行的状态的情况下,在所述客户机OS任务执行结束后,将任务切换到所述主机OS任务中最后处于被执行的状态的主机os任务。
12 .如权利要求3所述的任务切换控制方法, 所述主机OS任务以及所述客户机OS任务分别具有决定任务执行顺序的优先级;所述任务切换控制方法进一步包括优先级变更步骤,在所述第一判断步骤判断为可以切换到客户机OS上的任务的情况下,将在所述第一切换步骤切换任务之前所执行的主机OS任务的优先级,变更为所述主机OS任务中最高的优先级。
13 .如权利要求3所述的任务切换控制方法,所述多个任务包括多个所述客户机OS任务;所述任务切换控制方法进一步包括第三判断步骤,判断所述第一 OS是否处于可以将任务切换到所述主机OS任务以及所有所述多个 客户机OS任务的状态;在所述第三判断步骤判断为所述第一OS处于可以切换的状态的情况下,在所述第一切换步骤将任务切换到在所述检测步骤检测出唤醒请求的客户机OS任务;在所述第三判断步骤判断为所述第一 OS处于不可切换的状态的 情况下,所述第一判断步骤根据在所述第一资源获得步骤所获得的所 述第一资源信息以及在所述第二资源获得步骤所获得的所述第二资 源信息,来判断是否可以将任务切换到在所述检测步骤检测出唤醒请 求的客户机OS任务。
14.一种计算机系统,是多个任务运行的计算机系统,包括检测单元,检测任务的唤醒请求;第一资源获得单元,获得第一资源信息,该第一资源信息是所述 计算机系统的计算机资源中、正在使用的计算机资源的信息;第二资源获得单元,获得第二资源信息,该第二资源信息是由所 述检测单元检测出唤醒请求的任务在执行时所需要的计算机资源的 信息;第一判断单元,根据所述第一资源获得单元获得的所述第一资源 信息以及所述第二资源获得单元获得的所述第二资源信息,来判断是否可以将任务切换到由所述检测单元检测出唤醒请求的任务;以及切换单元,在所述第一判断单^;判断为可以进行切换的情况下,将任务切换到由所述检测单元检测出唤醒请求的任务。
15. —种程序,使计算机执行多个任务运行的计算机系统中的任务切换控制方法,包括检测步骤,检测任务的唤醒请求;第一资源获得步骤,获得第一资源信息,该第一资源信息是所述计算机系统的计算机资源中、正在使用的计算机资源的信息;第二资源获得步骤,获得第二资源信息,该第二资源信息是在所 述检测步骤中检测出唤醒请求的任务在执行时所需要的计算机资源 的信息;第一判断步骤,根据在所述第一资源获得步骤获得的所述第一资 源信息以及在所述第二资源获得步骤获得的所述第二资源信息,来判断是否可以将任务切换到在所述检测步骤检测出唤醒请求的任务;以 及切换步骤,在所述第一判断步骤判断为可以进行切换的情况下, 将任务切换到在所述检测步骤检测出唤醒请求的任务。
16 . —种记录介质,记录有程序,该程序用于使计算机执行多 个任务运行的计算机系统中的任务切换控制方法,包括 检测步骤,检测任务的唤醒请求;第一资源获得步骤,获得第一资源信息,该第一资源信息是所述 计算机系统的计算机资源中、正在使用的计算机资源的信息;第二资源获得步骤,获得第二资源信息,该第二资源信息是在所 述检测步骤中检测出唤醒请求的任务在执行时所需要的计算机资源 的信息;第一判断步骤,根据在所述第一资源获得步骤获得的所述第一资 源信息以及在所述第二资源获得步骤获得的所述第二资源信息,来判 断是否可以将任务切换到在所述检测步骤检测出唤醒请求的任务;以 及切换步骤,在所述第一判断步骤判断为可以进行切换的情况下, 将任务切换到在所述检测步骤检测出唤醒请求的任务。
全文摘要
本发明的任务切换控制方法是对多个任务运行的计算机系统中的任务切换进行控制的方法,包括检测步骤,检测任务的唤醒请求;第一资源获得步骤,获得第一资源信息,该第一资源信息是所述计算机系统的计算机资源中、正在使用的计算机资源的信息;第二资源获得步骤,获得第二资源信息,该第二资源信息是检测出唤醒请求的任务在执行时所需要的计算机资源的信息;判断步骤,根据获得的所述第一资源信息和获得的所述第二资源信息,来判断是否可以将任务切换到检测出唤醒请求的任务;切换步骤,在所述判断步骤判断为可以进行切换的情况下,将任务切换到检测出唤醒请求的任务。
文档编号G06F9/48GK101169737SQ200710181220
公开日2008年4月30日 申请日期2007年10月25日 优先权日2006年10月25日
发明者竹内彰 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1