首页> 中国专利> 一种计算机及虚拟环境中的任务调度方法

一种计算机及虚拟环境中的任务调度方法

摘要

本发明提供一种计算机及虚拟环境中的任务调度方法,其中计算机包括:硬件平台,包括CPU;虚拟机管理器,安装在硬件平台上;第一操作单元,安装有第一操作系统,第一操作系统安装在虚拟机管理器上;第二操作单元,安装有第二操作系统,第二操作系统安装在虚拟机管理器上;虚拟机管理器包括:第一处理单元,用于在接收到第二操作系统的任务的中断请求时,停止对第一操作系统的任务的调度处理;调度单元,用于在第一操作系统的任务当前占用CPU的时间片结束时,调度第二操作系统响应第二操作系统的任务的中断请求。该方案使第二操作系统的任务的中断请求得到及时响应。

著录项

  • 公开/公告号CN101685407A

    专利类型发明专利

  • 公开/公告日2010-03-31

    原文格式PDF

  • 申请/专利权人 联想(北京)有限公司;

    申请/专利号CN200810223296.8

  • 发明设计人 顾正华;汤良;

    申请日2008-09-28

  • 分类号G06F9/48;G06F9/455;

  • 代理机构北京银龙知识产权代理有限公司;

  • 代理人许静

  • 地址 100085 北京市海淀区上地信息产业基地创业路6号

  • 入库时间 2023-12-17 23:52:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-01-16

    授权

    授权

  • 2010-05-12

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20080928

    实质审查的生效

  • 2010-03-31

    公开

    公开

说明书

技术领域

本发明涉及计算机领域,特别是指一种计算机及虚拟环境中的任务调度方法。

背景技术

在计算机的虚拟技术领域中,虚拟机的架构通常如图1所示,包括硬件平台,安装在硬件平台上的虚拟机管理器(如VMM、Hyperviser等),安装在虚拟机管理器上的多个操作系统,如图中的第一操作系统和第二操作系统,这些操作系统之间是相互隔离的,虚拟机管理器分别为这些操作系统分别虚拟出相应的硬件,来支持该操作系统的运行,第一操作系统中运行的任务和第二操作系统中运行的任务互不影响,用户通常在其中一个操作系统中运行专门的任务,如用户选择利用第二操作系统专门运行多媒体应用程序等,而第一操作系统专门用来上网或者对计算机的硬件直接进行操作等。

在上述架构中,当第一操作系统正在运行一个任务时,此时用户需要切换到第二操作系统运行另一任务,如,可以是多媒体任务或者用户输入的任务,该多媒体任务如果要想得到及时处理,则虚拟机管理器就应该立即将对计算机CPU资源的使用从第一操作系统切换到第二操作系统。然而,如图2所示,目前的虚拟机管理器在第一操作系统和第二操作系统之间任务的调度算法是:等到第一操作系统的任务完成后,才有可能响应第二操作系统的任务的中断请求,也就是说,在第二操作系统的任务的中断请求到达时,第一操作系统的任务正在占用第一时间片(CPU的一个时间片通常为30ms),该任务不会停止执行,后续的若干个时间片可能都会被第一操作系统的任务使用,第二操作系统也不会被调度,直到第一操作系统的任务结束时,该第二操作系统才可能被调度,响应第二操作系统的中断请求,但也可能继续调度第一操作系统,这样就使第二操作系统的任务的中断请求得不到及时响应。虚拟机管理器在调度操作系统的任务的中断时,只考虑到了操作系统对CPU占用的时间片的多少,而没有考虑到操作系统的任务的中断请求响应的及时性,针对第二操作系统的任务的中断请求,就会造成第二操作系统的任务得不到及时处理,对于多媒体任务来讲,就会出现画面和/或声音的停顿。

发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:

虚拟机系统中,第一操作系统的任务正在运行时,第二操作系统有任务的中断要处理,由于第二操作系统得不到虚拟机管理器的调度,因此第二操作系统的任务的中断得不到及时响应。

发明内容

本发明要解决的技术问题是提供一种计算机及虚拟环境中的任务调度方法,使第二操作系统的任务的中断得到及时响应处理,保证第二操作系统运行的稳定性。

为解决上述技术问题,本发明的实施例提供技术方案如下:

一种计算机,包括:

硬件平台,包括CPU;

虚拟机管理器,安装在所述硬件平台上;

第一操作单元,安装有第一操作系统,所述第一操作系统安装在所述虚拟机管理器上;

第二操作单元,安装有第二操作系统,所述第二操作系统安装在所述虚拟机管理器上;所述虚拟机管理器包括:

第一处理单元,用于在接收到所述第二操作系统的任务的中断请求时,停止对所述第一操作系统的任务的调度处理;

调度单元,用于在所述第一操作系统的任务当前占用所述CPU的时间片结束时,调度所述第二操作系统响应所述第二操作系统的任务的中断请求。

优选的,所述虚拟机管理器还包括:

第二处理单元,用于在所述第一处理单元停止对所述第一操作系统的任务的调度处理时,缩短所述第一操作系统的任务当前占用所述CPU的时间片的长度,并将所述CPU的下一个时间片分配给所述第二操作系统的任务的中断使用。

优选的,所述虚拟机管理器还包括:

第三处理单元,用于在所述调度单元调度所述第二操作系统响应所述第二操作系统的任务的中断请求之后,解除所述第一处理单元停止对所述第一操作系统的任务的调度处理。

优选的,所述第一处理单元具体为:

阻塞单元,用于在接收到所述第二操作系统的任务的中断请求时,产生阻塞命令,并根据所述阻塞命令停止对所述第一操作系统的任务的调度处理。

优选的,所述第二处理单元具体为:

中断处理模块,用于在所述第一处理单元停止对所述第一操作系统的任务的调度处理时,调用中断处理函数,根据所述中断处理函数缩短所述第一操作系统的任务当前占用所述CPU的时间片的长度,并将所述CPU的下一个时间片分配给所述第二操作系统的任务的中断使用。

本发明的实施例还提供一种虚拟环境中的任务调度方法,包括:

在接收到第二操作系统的任务的中断请求时,停止对第一操作系统的任务的调度处理;

在所述第一操作系统的任务当前占用所述CPU的时间片结束时,调度所述第二操作系统响应所述第二操作系统的任务的中断请求。

优选的,在接收到第二操作系统的任务的中断请求时,停止对第一操作系统的任务的调度处理的步骤之后还包括:

缩短所述第一操作系统的任务当前占用所述CPU的时间片的长度,并将所述CPU的下一个时间片分配给所述第二操作系统的任务的中断使用。

优选的,在所述第一操作系统的任务当前占用所述CPU的时间片结束时,调度所述第二操作系统响应所述第二操作系统的任务的中断请求的步骤之后还包括:

解除所述第一处理单元停止对所述第一操作系统的任务的调度处理。

优选的,所述停止对第一操作系统的任务的调度处理具体为:

产生阻塞命令,并根据所述阻塞命令停止对所述第一操作系统的任务的调度处理。

优选的,所述缩短所述第一操作系统的任务当前占用所述CPU的时间片的长度具体为:

调用中断处理函数,根据所述中断处理函数缩短所述第一操作系统的任务当前占用所述CPU的时间片的长度。

本发明的实施例具有以下有益效果:

上述方案在第二操作系统的任务的中断请求到达时,强制调度第二操作系统,停止对第一操作系统的调度,并最大限度在缩短当前第一操作系统的任务占用CPU的时间片,并将CPU时间片分配给当前要处理中断请求的第二操作系统的任务,使该第二操作系统的任务的中断请求得到及时响应。

附图说明

图1为现有的虚拟机系统结构示意图;

图2为现有的虚拟机系统中,各操作系统对CPU时间片的调度情况示意图;

图3为本发明的实施例计算机的结构示意图;

图4为图3所示计算机的一实施例结构示意图;

图5为图4所示计算机的一实施例结构示意图;

图6为本发明的实施例计算机中,各操作系统对CPU时间片的调度情况示意图;

图7为图5所示计算机对CPU时间片的调度情况示意图;

图8为本发明的实施例虚拟环境中的任务调度方法流程示意图。

具体实施方式

为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明的实施例针对现有虚拟机系统中第二操作系统的任务的中断请求得不到及时响应的问题,提供一种计算机及虚拟环境中的任务调度方法。

如图3所示,本发明的实施例计算机,包括:硬件平台,该硬件平台至少包括CPU;虚拟机管理器,安装在硬件平台上;第一操作单元,安装有第一操作系统,第一操作系统安装在虚拟机管理器上;第二操作单元,安装有第二操作系统,第二操作系统安装在虚拟机管理器上;其中,所述虚拟机管理器包括:第一处理单元,用于在接收到第二操作系统的任务的中断请求时,停止对第一操作系统的任务的调度处理;调度单元,用于在第一操作系统的任务当前占用CPU的时间片结束时,调度第二操作系统响应第二操作系统的任务的中断请求。这里的第一处理单元,具体来讲,可以是一阻塞单元,用于在接收到第二操作系统的任务的中断请求时,产生阻塞命令,如Block命令,并根据阻塞命令停止对第一操作系统的任务的调度处理,阻塞第一操作系统,强制调度第二操作系统,将下一个时间片分配给第二操作系统的任务使用,这样使该第二操作系统的任务的中断请求得到及时响应,保证了第二操作系统运行的稳定性。

如图4所示,在本发明的另一实施例中,上述虚拟机管理器还包括:第二处理单元,用于在第一处理单元停止对第一操作系统的任务的调度处理时,缩短第一操作系统的任务当前占用CPU的时间片的长度,并将CPU的下一个时间片分配给第二操作系统的任务的中断使用。具体来讲,该第二处理单元可以为中断处理模块,用于在第一处理单元停止对第一操作系统的任务的调度处理时,调用中断处理函数,如Do_IRQ函数,根据中断处理函数缩短第一操作系统的任务当前占用所述CPU的时间片的长度,并将CPU的下一个时间片分配给第二操作系统的任务的中断使用。在第二操作系统的任务的中断请求得到调度的同时,最大限度地缩短当前第一操作系统的任务占用CPU的时间片,使第一操作系统立即结束对CPU时间片的占用,并将CPU时间片分配给当前要处理中断的第二操作系统的任务,这样,使第二操作系统的任务的中断请求到达时,该第二操作系统能够及时得到虚拟机管理器的调度,同时也能够尽快地得到虚拟机管理器为该第二操作系统分配的时间片,使该第二操作系统的任务的中断请求得到及时响应。

如图5所示,在本发明的又一实施例中,上述虚拟机管理器还包括:第三处理单元,用于在调度单元调度第二操作系统响应第二操作系统的任务的中断请求之后,解除第一处理单元停止对所述第一操作系统的任务的调度处理。这样使第二操作系统的任务结束时,第一操作系统还能够继续得到虚拟机管理器的调度,并继续处理该第一操作系统的任务,使整个计算机系统运行具有稳定性。

如图6所示,为上述实施例中,各操作系统对CPU时间片的调度情况示意图;在第一操作系统的任务所占用的CPU的时间片30ms还没有结束时,第二操作系统的任务的中断请求到达,则该第一操作系统当前占用的CPU的时间片就会被缩短,第二操作系统立即得到调度,并开始占用CPU的时间片,响应该第二操作系统的任务的中断请求。

如图7所示,为上述图4所示实施例响应第二操作系统的中断请求的情况示意图,第一操作系统的任务占用CPU的时间片正在运行,第二操作系统的任务的中断请求到达,虚拟机管理器就会立即停止对第一操作系统的调度,开始调度第二操作系统,即停止第一操作系统使用下一个CPU的时间片,而是将下一个时间片分配给第二操作系统使用,为了使第二操作系统能够更加及时在响应该到达的任务的中断请求,虚拟机管理器还缩短当前第一操作系统当前占用CPU的时间片,使第一操作系统尽快保存当前任务的处理结果,停止对当前CPU时间片的占用,并分配给第二操作系统的任务使用,这样使第二操作系统的中断请求得到及时处理和响应,在第二操作系统的任务结束时,还需要使第一操作系统能够继续运行该第一操作系统的任务,因此,虚拟机管理器通常在调度第二操作系统后,还应该解除对第一操作系统的停止调度,使整个计算机系统正常运行得到保证。

综上,上述实施例通过在虚拟机管理器增加一些处理模块,在第二操作系统的任务的中断请求到达时,能够及时调度第二操作系统,同时缩短第一操作系统的任务所占用的CPU的时间片,使第二操作系统的任务的中断请求能够得到及时响应,保证第二操作系统运行的稳定性。

如图8所示,本发明的实施例还提供一种虚拟环境中的任务调度方法,包括:

步骤S81,在接收到第二操作系统的任务的中断请求时,停止对第一操作系统的任务的调度处理;具体来讲,可以产生阻塞命令,如Block命令,并根据阻塞命令停止对第一操作系统的任务的调度处理;

步骤S82,在第一操作系统的任务当前占用所述CPU的时间片结束时,调度第二操作系统响应所述第二操作系统的任务的中断请求。

步骤S81之后还包括:缩短所述第一操作系统的任务当前占用CPU的时间片的长度,并将CPU的下一个时间片分配给第二操作系统的任务的中断使用,具体来讲,可调用中断处理函数,如Do_IRQ函数,根据中断处理函数缩短第一操作系统的任务当前占用所述CPU的时间片的长度。

步骤S82之后还包括:解除所述第一处理单元停止对所述第一操作系统的任务的调度处理。

该方法实施例通过在第二操作系统的任务的中断到达时,强制调度第二操作系统,停止对第一操作系统的调度,并最大限度在缩短当前第一操作系统的任务占用CPU的时间片,并将CPU时间片分配给当前要处理中断的第二操作系统的任务,这样,使第二操作系统的任务的中断请求到达时,该第二操作系统能够及时得到虚拟机管理器的调度,同时也能够尽快地得到虚拟机管理器为该第二操作系统分配的时间片,使该第二操作系统的任务的中断请求得到及时处理,保证了第二操作系统运行的稳定性。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号