虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序的制作方法

文档序号:6592492阅读:140来源:国知局
专利名称:虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序的制作方法
技术领域
本发明涉及在一台物理计算机中控制多台虚拟计算机的执行的虚拟计算机控制装置、 虚拟计算机控制方法及虚拟计算机控制程序,尤其是涉及切换多台虚拟计算机的虚拟计算 机控制装置、虚拟计算机控制方法及虚拟计算机控制程序。
背景技术
随着微处理器的性能改善,作为高效利用硬件的技术,用l台物理计算机中实现多台 虚拟计算机(通过软件实现的虚拟的计算机)的虚拟化技术被采用。以下,将该物理计算机
记述为信息处理装置。
在家电设备等嵌入式设备(embedded device)中,要求兼顾GUI (Graphical User Interface,图形用户接口)或多媒体处理等多功能性和设备控制或同歩通信等实时性。为 此,通过让适合于多媒体处理等多功能性的虚拟计算机和适合于实时性的虚拟计算机在1 台信息处理装置上切换并执行,以实现两种处理的兼顾。
作为以往的切换虚拟计算机的方法,有一种方法是让具备重视实时性的OS(操作系统) 的虚拟计算机优先执行,当该OS处于空闲状态(idle state)时,让当前动作中的虚拟计算 机切换为其他虚拟计算机来执行。还有一种方法是给多台虚拟计算机分配固定的优先级, 利用该优先级来进行虚拟计算机的调度(schedule)。
在让具备重视实时性的OS的虚拟计算机始终优先的方法中,即使其他虚拟计算机中 有重要处理发生,也无法立即执行该重要处理。另外,在利用固定的优先级来执行虚拟计 算机的计划的方法中,难以由多台虚拟计算机共同执行重视实时性的处理。
作为解决该课题的以往方法,有一种根据所要执行的处理来改变虚拟计算机的优先级 的技术(例如,参照闩本专利公开公报特开2000 — 242512号)。gp,在以往技术中,将虚 拟计算机的优先级设定为由该虚拟计算机执行的任务的优先级。所谓任务的优先级,是 OS的任务调度中所使用的值。当某个虚拟计算机执行具有高优先级的任务时,由于该虚 拟计算机的优先级也变高,因此须切换成高优先级的虚拟计算机,以执行高优先级的任务。
然而,在所述以往的结构中,每当OS执行任务调度时,执行中的虚拟计算机(OS)都要暂停(suspended),控制多台虚拟计算机的切换的OS切换程序运行,来确定接下来要执 行的虚拟计算机。5卩,以往技术存在这样的问题即使在处理返回暂停的相同虚拟计算机 的情况下,也会发生虚拟计算机的暂停和恢复的处理。

发明内容
本发明是为了解决上述的问题,其目的在于提供一种能够削减虚拟计算机的切换所需 的开销(overhead)的虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序。
本发明所涉及的虚拟计算机控制装置包括分别具有进行基于任务的优先级执行的任 务调度的操作系统的多台虚拟计算机;以及控制所述多台虚拟计算机的切换的虚拟计算机 控制部,所述多台虚拟计算机的每一台具有执行用于进行将当前动作中的虚拟计算机切 换为作为切换对象的其他虚拟计算机的切换处理的切换任务的任务执行部;从当前动作中 的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级的优先级获取部;以 及将所述切换任务的优先级设定为由所述其他虚拟计算机的所述优先级获取部获取的所 述优先级的优先级设定部,其中,所述任务执行部在根据所述操作系统的任务调度来执行 所述切换任务时,对所述虚拟计算机控制部通知由所述优先级获取部获取的所述优先级和 将当前动作中的虚拟计算机切换为所述其他虚拟计算机的切换指示,所述虚拟计算机控制 部接收由所述任务执行部通知的所述优先级和切换指示,将当前动作中的虚拟计算机切换 为所述其他虚拟计算机。
根据该结构,多台虚拟计算机分别具有进行基于任务的优先级执行的任务调度的操作 系统,虚拟计算机控制部控制多台虚拟计算机的切换。任务执行部执行用于进行将当前动 作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务,优先级 获取部从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先 级,优先级设定部将切换任务的优先级设定为由其他虚拟计算机的优先级获取部获取的优 先级。任务执行部在根据操作系统的任务调度执行切换任务时,对虚拟计算机控制部通知 由优先级获取部获取的优先级和将当前动作中的虚拟计算机切换为其他虚拟计算机的切 换指示。虚拟计算机控制部接收由任务执行部所通知的优先级和切换指示,将当前动作中 的虚拟计算机切换为其他虚拟计算机。
根据本发明,切换任务的优先级被设定为其他虚拟计算机中的优先级最高的任务的优 先级,切换任务仅在虚拟计算机被切换时才加以执行,因此可削减虚拟计算机的暂停和恢 复的处理次数,从而可削减虚拟计算机的切换所需的开销。本发明的目的、特征及优点通过以下的详细说明和附图可以更加明确。


图1是表示本发明实施例1中的信息处理装置结构的框图。
图2是表示本发明实施例1中的任务管理表的一例的图。
图3是表示本发明实施例1中的虚拟计算机标识符表的一例的图。
图4是表示本发明实施例1中的第一虚拟计算机的切换处理的一例的流程图。
图5是表示本发明实施例1中的虚拟计算机控制部的切换处理的一例的流程图。
图6是表示本发明实施例1中的第二虚拟计算机的切换处理的一例的图。
图7是表示本发明实施例2中的信息处理装置结构的框图。
图8是表示本发明实施例2中的中断表的一例的图。
图9是表示本发明实施例2中的虚拟计算机控制部的中断处理的一例的流程图。
图IO是表示本发明实施例2中的优先级表的一例的图。
图ll是表示本发明实施例3中的执行上下文存储部的结构的图。
图12是表示本发明实施例4中的信息处理装置结构的框图。
具体实施例方式
以下,参照附图来说明本发明的实施例。另外,以下的实施例只是将本发明具体化的 一例,并不限定本发明的技术范围。 (实施例1)
图l是表示本发明的实施例1中的信息处理装置结构的框图。
图1所示的信息处理装置包括CPU(中央运算装置)l、中断控制器(niterruption controller) 2、外部设备3及存储器4。
对于CPU1,只要处理能力充分,则可任意使用。中断控制器2将外部设备3输出的 中断要求通知给CPU1。
外部设备3为各种输入输出装置,使用与信息处理装置的使用目的相适应的装置。例 如,外部设备3为键设备、通信设备、显示设备、解码器、编码器、DSP傲字信号处理(Digital Signal Processor))或DMA(直接存储器访问(Direct Memory Access))控制器等。
存储器4包括第一虚拟计算机10、第二虚拟计算机20、虚拟计算机控制部30、虚拟 计算机优先级存储部40及执行上下文(execution context)存储部50。存储器4可使用任意类型,例如只读存储器(ROM)、随机存取存储器(RAM)或快闪存储器等。而且,存储器4没有必要由单一的存储装置构成,可以是同种的多个存储器的组合或者不同种类的多个存储器的组合。进一歩,除了存储器4以外,也可以设置例如硬盘之类的外部存储装置,在信息处理装置的动作不会出现问题的范围内可以将存储器4的内容移至外部存储装置。
而且,当第一虚拟计算机IO、第二虚拟计算机20、虚拟计算机控制部30、虚拟计算机优先级存储部40及执行上下文存储部50存在于存储器4中时,它们是作为虚拟计算机控制程序而存在,通过CPU1执行该虚拟计算机控制程序,作为第一虚拟计算机10、第二虚拟计算机20、虚拟计算机控制部30、虚拟计算机优先级存储部40及执行上下文存储部50而发挥作用。
第一虚拟计算机10包括执行包含模拟任务(dummy task )110在内的1个以上任务(task)的任务执行部100以及第一 OS120。包含模拟任务110在内的所有的任务分别设定有优先级。第一OS120进行基于任务的优先级执行的任务的调度(scheduling of tasks)。
任务执行部100根据预先对各任务设定的优先级来依序执行任务。而且,任务执行部IOO还执行模拟任务110,该模拟任务110用于执行将当前动作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理。
模拟任务110是反映第二虚拟计算机20的优先级的任务,包括虚拟计算机切换通知部111及优先级设定请求部112。
虚拟计算机切换通知部111向第一 OS120输出最优先任务优先级获取要求,第一OS120从任务中获取最优先执行的最优先任务的优先级。然后,虚拟计算机切换通知部111向虚拟计算机控制部30输出虚拟计算机切换通知,让第一虚拟计算机10暂停,将处理移至虚拟计算机控制部30。另外,虚拟计算机切换通知包含有所获取的最优先任务的优先级、切换源(switchingsource)的虚拟计算机(此处是第一虚拟计算机IO)的标识符和切换目标(switching destination)的虚拟计算机(此处是第二虚拟计算机20)的标识符。
由此,通过第一OS120的任务调度,在轮到执行模拟任务110的时刻,进行从第一虚拟计算机10向第二虚拟计算机20的切换处理。另外,所谓最优先任务,是以除了执行状态的任务以外的接下来有可能调度的任务为对象。即,执行状态的模拟任务不会成为最优先任务。
优先级设定请求部112在模拟任务IIO(第一虚拟计算机IO)从暂停被恢复时,向第一OS120发送用于设定模拟任务110的优先级的优先级设定请求。接着,优先级设定请求部112在模拟任务110的优先级设定完成时,从第一OS120接收优先级设定完成通知,结束模拟任务110的处理。随后,根据第一 OS120的任务调度,开始接下来要执行的任务处理。在从第二虚拟计算机20向第一虚拟计算机10的切换发生时刻的第二虚拟计算机20的最优先任务的优先级,被设定为结束时的模拟任务110的优先级。
第一OSl20包括任务调度器(task scheduler) 121、优先级获取部122以及优先级设定部123。
任务调度器121调度第一 OS120下属的任务的执行顺序。在调度对象的任务中包含有模拟任务IIO。而且,任务调度器121保持用于管理任务的任务管理表。
图2是表示本发明的实施例1中的任务管理表的一例的图。图2所示的任务管理表是包含作为各任务的管理信息的任务ID、任务状态及任务优先级的例子。任务ID是可识别各任务的标识符,只要能够唯一确定任务即可。任务状态表示当前的任务的状态,有"执行状态"、"可执行状态"和"待机状态"这3种状态。"执行状态"表示任务正在执行中,多个任务不会同时为"执行状态"。"可执行状态"表示当其他任务的执行结束时任务可由任务调度器121执行。所谓"待机状态",是指任务在满足任务量(semaphore)、事件或待机一定时间等条件之前自身停止的状态。
任务优先级表示任务的优先级。另外,图2中是以数值表示任务优先级,数值越小,优先级越高。另外,任务优先级也可用数值以外的信息来表现。而且,任务优先级还可利用OS的服务,例如UNIX(注册商标)OS中的ps命令而从任务结构体中获取,并储存到任务管理表中。
优先级获取部122从模拟任务110接收最优先任务优先级获取要求,参照上述的任务管理表,从自身所属的第一虚拟计算机10的可执行任务中获取优先级最高的最优先任务的优先级,并将获取的优先级返回模拟任务110。另外,最优先任务是从除了任务状态为"执行状态"的任务以外的任务中选择。因此,模拟任务110始终被排除在最优先任务之外。
优先级设定部123从模拟任务110接收优先级设定请求,设定模拟任务110的优先级。优先级设定部123将模拟任务110的优先级设定为由第二虚拟计算机20的优先级获取部222获取的优先级。具体而言,优先级设定部123获取储存在虚拟计算机优先级存储部40中的第二虚拟计算机20的最优先任务的优先级,将上述任务管理表的模拟任务110的优先级更新为所获取的优先级。而且,优先级设定部123在模拟任务110的优先级设定完成时,向模拟任务110发送优先级设定完成通知。
虚拟计算机切换通知部lll在根据操作系统的任务调度执行了模拟任务110后,对虚拟计算机控制部30通知由优先级获取部122获取的优先级和将当前动作中的第一虚拟计算机10切换为第二虚拟计算机20的切换指示。
第二虚拟计算机20包括执行包含模拟任务210在内的1个以上任务的任务执行部200和第二OS220。包含模拟任务210在内的所有的任务分别被设定有优先级。第二OS220进行基于任务的优先级执行的任务的调度。
任务执行部200根据预先对各任务设定的优先级来依序执行任务。而且,任务执行部200还执行模拟任务210,该模拟任务110用于执行将当前动作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理。
模拟任务210是反映第一虚拟计算机10的优先级的任务,包括虚拟计算机切换通知部211及优先级设定请求部212。虚拟计算机切换通知部211具有与上述虚拟计算机切换通知部lll相同的功能。而且,优先级设定请求部212具有与上述优先级设定请求部112相同的功能。
第二 OS220包括任务调度器221、优先级获取部222以及优先级设定部223。任务调度器221具有与上述任务调度器121相同的功能。而且,优先级获取部222具有与上述优先级获取部122相同的功能。而且,优先级设定部223具有与上述优先级设定部123相同的功能。
由此,通过第二 OS220的任务调度,在轮到执行模拟任务210的时刻,进行从第二虚拟计算机20向第一虚拟计算机10的切换处理。而且,从第一虚拟计算机10向第二虚拟计算机20的切换发生时刻的第一虚拟计算机10的最优先任务的优先级被设定为结束时的模拟任务210的优先级。
另外,模拟任务110、 210是在第一及第二虚拟计算机10、 20启动时生成。而且,生成时的模拟任务IIO、 210的优先级被设定为最高的优先级。任务执行部100在第一及第二虚拟计算机10、 20启动时生成模拟任务110、 210,并将所生成的模拟任务110、 210的优先级设定为最高优先级。由此,让虚拟计算机内的模拟任务110、 210比其他任务更优先运行,从而可将切换目标的虚拟计算机的最优先任务的优先级设定为模拟任务的优先级。
而且,优先级获取部122、222及优先级设定部123、223并非作为第一及第二 OSllO、210的内部功能,而作为模块形式的设备驱动器(device driver)或程序库(hbmry)可以在以
后追加。
而且,在本实施例l中,虚拟计算机切换通知包含有任务的优先级、切换源的虚拟计算机的标识符以及切换目标的虚拟计算机的标识符,但在控制两台虚拟计算机的切换时并不限于此。在控制两台虚拟计算机的切换时,虚拟计算机切换通知只包含切换源的虚拟计算机的标识符或切换目标的虚拟计算机的标识符中的任一个即可。
虚拟计算机控制部30包括虚拟计算机切换部301及虚拟计算机优先级设定部302,用来控制多台虚拟计算机的切换。虚拟计算机控制部30接收由任务执行部100通知的优先级和切换指示,将当前动作中的第一虚拟计算机10切换为第二虚拟计算机20。而且,虚拟计算机控制部30还接收由任务执行部200通知的优先级和切换指示,将当前动作中的第二虚拟计算机20切换为第一虚拟计算机10。
虚拟计算机切换部301从第一及第二虚拟计算机10、 20接收虚拟计算机切换通知,通过进行虚拟计算机的执行上下文的退避和恢复,来切换虚拟计算机。虚拟计算机切换部301可以利用虚拟计算机切换通知来指定切换源的虚拟计算机和切换目标的虚拟计算机。虚拟计算机切换部301使切换源的虚拟计算机的执行上下文从CPU寄存器退避至执行上下文存储部50,并使切换目标的虚拟计算机的执行上下文从执行上下文存储部50恢复至CPU寄存器。进一步,虚拟计算机切换部301指示虚拟计算机优先级设定部302进行切换源的虚拟计算机的优先级的设定。另外,虚拟计算机切换部301保持有将虚拟计算机的标识符和与标识符对应的对象虚拟计算机编成组的虚拟计算机标识符表。
图3是表示本发明的实施例1中的虚拟计算机标识符表的一例的图。在图3所示的虚拟计算机标识符表中,将标识符与虚拟计算机对应起来加以存储。如图3所示,第一虚拟计算机10与标识符"A"对应,第二虚拟计算机20与标识符"B"对应。
虚拟计算机优先级设定部302接收来自虚拟计算机切换部301的指示,并将包含在虚拟计算机切换通知中的优先级作为切换源的虚拟计算机的优先级而储存至虚拟计算机优先级存储部40。
虚拟计算机优先级存储部40存储在虚拟计算机的切换发生时刻的切换源的虚拟计算机的优先级。虚拟计算机优先级存储部40中存储的虚拟计算机的优先级是切换源的虚拟计算机的任务中最优先执行的最优先任务的优先级。另外,所谓最优先任务,是以除了执
行状态的任务以外的接下来有可能被调度的任务为对象。即,模拟任务不会成为最优先任务。
执行上下文存储部50存储切换源的虚拟计算机的执行上下文。虚拟计算机切换部301通过将切换源的虚拟计算机的执行上下文从CPU寄存器存储至执行上下文存储部50,而使切换源的虚拟计算机的执行上下文退避。而且,虚拟计算机切换部301通过将切换目标的虚拟计算机的执行上下文从执行上下文存储部50读取至CPU寄存器,而使切换目标的虚拟计算机的执行上下文恢复。另外,执行上下文存储部50为每台虚拟计算机存储执行上下文。
虚拟计算机切换部301在接收到由任务执行部100通知的优先级和切换指示时,使与切换前的第一虚拟计算机IO对应的执行上下文退避至执行上下文存储部50,将由任务执行部100通知的优先级存储于虚拟计算机优先级存储部400中,并使与切换后的第二虚拟计算机20对应的执行上下文从执行上下文存储部50恢复。
切换后的第二虚拟计算机20中所具备的任务执行部200再次执行被暂停的模拟任务210。切换后的第二虚拟计算机20中所具备的优先级设定部223获取存储在虚拟计算机优先级存储部400中的切换前的第一虚拟计算机11的优先级,并将所获取的优先级设定为模拟任务210的优先级。
根据以上结构,本实施例1中的信息处理装置在其他的虚拟计算机的优先级高于执行中的虚拟计算机的时刻,使虚拟计算机控制部30运行,进行虚拟计算机的切换处理。艮P,没有必要在OS每次执行任务调度时,都要暂停执行中的虚拟计算机来判断是否进行切换。在使执行中的虚拟计算机暂停时,始终会发生向其他虚拟计算机的切换,从而可减少立即恢复为暂停之前动作的相同虚拟计算机的处理。由此,可削减因不需要的执行上下文的暂停和恢复造成的开销。
而且,虽然在不仅为退避和恢复执行上下文,还为进一步提高安全性而进行存储器空间的切换时,因虚拟计算机的切换造成的开销会增大,但在本实施例l中,也可减少因该存储器空间的切换造成的开销。
而且,本实施例l在信息处理装置安装重视实时性的虚拟计算机和不重视实时性的虚拟计算机的情况下特别有效。例如,要求实时性的处理作为第一虚拟计算机10的任务而安装,作为第一OS120使用实时性优异的RTOS(实时OS)。同时,与不要求实时性的用户接口相关的处理作为第二虚拟计算机20的任务而安装,作为第二 OS220使用丰富地提供各种图形处理功能的OS。
在以往的方法中,判断是否暂停重视实时性的虚拟计算机来进行切换的结果,使处理再次返回重视实时性的虚拟计算机的情况较多,从而发生多余的执行上下文的退避和恢复。然而,本实施例1的信息处理装置可削减因多余的执行上下文的暂停和恢复造成的开销,可同时实现实时性能和使用丰富的图形处理功能的优异的用户接口。
另外,第一 OS120与第二 OS220未必必须是不同性能的0S,第一 OS120与第二OS220也可使用相同性能的OS。.另外,例如从第一虚拟计算机10切换为第二虚拟计算机20时,虚拟计算机控制部30通过将动作的第一虚拟计算机10的IP(指令指针(instruction Pointer))、栈指针(stackpomter)、通用寄存器、基址指针(base pomter)或旗标(flag)等执行上下文保存为供第一虚拟计算机10所用,让执行上下文从CPU寄存器退避。而且,虚拟计算机控制部30将第二虚拟计算机20所用而加以保存的执行上下文恢复至CPU寄存器。由此,虚拟计算机控制部30实现第一及第二虚拟计算机10、 20的切换。
在本实施例l中,信息处理装置相当于虚拟计算机控制装置的一例,第一虚拟计算机10及第二虚拟计算机20相当于多台虚拟计算机的一例,虚拟计算机控制部30相当于虚拟计算机控制部的一例,任务执行部IOO、 200相当于任务执行部的一例,优先级获取部122相当于优先级获取部的一例,优先级设定部123相当于优先级设定部的一例,执行上下文存储部50相当于执行上下文存储部的一例,虚拟计算机优先级存储部40相当于优先级存储部的一例,模拟任务110、 210相当于切换任务的一例。
图4至图6是表示本发明的实施例1中的信息处理装置的处 理流程的流程图。此处表示图1中的从第一虚拟计算机10切换为第二虚拟计算机20的切换动作的一例。而且,图4是表示本发明的实施例1中的第一虚拟计算机IO的切换处理的一例的流程图,图5是表示本发明的实施例1中的虚拟计算机控制部30的切换处理的一例的流程图,图6是表示本发明的实施例l中的第二虚拟计算机20的切换处理的一例的流程图。
首先,在图4中,CPUl执行第一虚拟计算机lO。在第一虚拟计算机10的执行中,第一OS120的任务调度器121基于任务管理表中的任务优先级进行任务调度。接着,任务调度器121选择模拟任务110作为接下来要执行的任务,使任务管理表中的模拟任务的任务状态成为执行状态。任务调度器121指示任务执行部IOO执行模拟任务110。任务执行部IOO根据来自任务调度器121的指示执行模拟任务110。由此开始模拟任务110的处理(步骤S1)。
接着,模拟任务110的虚拟计算机切换通知部111向第一 OS120发送最优先任务优先级获取要求(步骤S2)。
接着,第一 OS120的优先级获取部122接收由模拟任务110的虚拟计算机切换通知部111发送的最优先任务优先级获取要求(步骤S3)。然后,优先级获取部122参照任务管理表,获取优先级最高的任务的优先级,即,获取任务执行部100在模拟任务110之后接着要执行的任务的优先级(最优先任务优先级)(步骤S4)。
接着,优先级获取部122将所获取的最优先任务优先级通知给模拟任务110(步骤S5)。例如,在任务调度器121具有图2所示的任务管理表时,优先级获取部122将任务状态为可执行状态的任务中优先级最高的第三任务的优先级发送给模拟任务UO。
接着,模拟任务110的虚拟计算机切换通知部111接收由第一 OS120的优先级获取部122发送的最优先任务优先级(歩骤S6)。然后,虚拟计算机切换通知部111用接收到的最优先任务优先级作成虚拟计算机切换通知,并将作成的虚拟计算机切换通知发送给虚拟计算机控制部30(歩骤S7)。至此,处理从模拟任务110移至虚拟计算机控制部30。例如,虚拟计算机切换通知部lll使用软件中断。CPU1在从中断控制器2接收到切换中断的发生通知后检测到软件中断时,跳(銜至例外矢量(exc印tKm vector)。作为该跳跃目的地的例外矢量,被设定在虚拟计算机控制部30中。由此,在虚拟计算机切换通知发生时,可使虚拟计算机控制部30动作。
接着,在图5中,虚拟计算机控制部30的虚拟计算机切换部301接收由虚拟计算机切换通知部lll发送的虚拟计算机切换通知(步骤Sll)。然后,虚拟计算机切换部301使切换源的第一虚拟计算机10的执行上下文从CPU寄存器退避至执行上下文存储部50(步骤S12)。
接着,虚拟计算机切换部301指示虚拟计算机优先级设定部302设定切换源的第一虚拟计算机10的优先级(步骤S13)。
接着,虚拟计算机优先级设定部302接收来自虚拟计算机切换部301的指示,将包含在虚拟计算机切换通知中的优先级(最优先任务优先级)作为切换源的虚拟计算机(第一虚拟计算机10)的优先级而存储至虚拟计算机优先级存储部40中(步骤S14)。另外,要设定的优先级被包含在虚拟计算机切换通知中,但本发明并不特别限定于此,也可获取软件中断的自变量或共有存储器上预先决定的区域的数据作为优先级。
接着,虚拟计算机切换部301使切换目标的第二虚拟计算机20的执行上下文从执行上下文存储部50恢复至CPU寄存器(步骤S15)。
通过虚拟计算机控制部30,第二虚拟计算机20的执行上下文被恢复,从而暂停的第二虚拟计算机20恢复。由于第二虚拟计算机20是在模拟任务210的处理中途暂停,所以从模拟任务210的暂停部位再次开始处理。
接着,在图6中,模拟任务210的优先级设定请求部212向第二OS220发送优先级设定请求(步骤S21)。
接着,第二 OS220的优先级设定部223接收由模拟任务210的优先级设定请求部212发送的优先级设定请求(歩骤S22)。优先级设定部223获取虚拟计算机优先级存储部40中储存的第一虚拟计算机10的最优先任务优先级(歩骤S23)。然后,优先级设定部223 将任务管理表的模拟任务210的任务优先级更新(设定)为所获取的最优先任务优先级(歩骤 S24)。然后,优先级设定部223向模拟任务210发送优先级设定完成通知(歩骤S25)。
接着,模拟任务210的优先级设定请求部212接收由第二 OS220的优先级设定部223 发送的优先级设定完成通知(歩骤S26)。然后,优先级设定请求部212结束模拟任务210 的执行(歩骤S27)。由此,第二 OS220的任务调度器221进行第二虚拟计算机20中的任 务调度,确定在执行结束的模拟任务210之后接下来要执行的任务。
根据以上所述,本实施例1中的信息处理装置生成模拟表示作为切换对象的其他虚拟 计算机的模拟任务,并将该模拟任务的优先级设定为作为切换对象的其他虚拟计算机的优 先级最高的任务的优先级。OS的任务调度器在其他虚拟计算机的优先级高于执行中的虚 拟计算机的时刻,使模拟任务成为执行状态,任务执行部执行模拟任务。由此,虚拟计算 机控制部30运行以进行切换处理。g卩,没有必要在OS每次执行任务调度时,都要暂停 执行中的虚拟计算机来判断是否进行切换。在使执行中的虚拟计算机暂停时,始终会发生 向其他虚拟计算机的切换,从而可减少立即恢复为暂停之前动作的相同虚拟计算机的处 理。即,可削减因不需要的执行上下文的暂停和恢复造成的开销。
本实施例1中,在从第一虚拟计算机10切换为第二虚拟计算机20时,将第一虚拟计 算机10中的最优先任务优先级设定为第二虚拟计算机20的模拟任务的优先级,但也可在 中途变更第二虚拟计算机20的模拟任务的优先级。
例如,在将第一虚拟计算机10所具有的第一OS120设为RTOS,将第二虚拟计算机 20所具有的第二 OS220设为LinuxOS时,在通过RTOS下载了数据后,由LinuxOS 对该数据进行编码及再生处理。这样,在将第一虚拟计算机10中已处理的数据在适合于 该数据处理的第二虚拟计算机20进行处理时,必须在第一虚拟计算机10中进行处理之后, 将第一虚拟计算机10切换为第二虚拟计算机20。
此时,在图5的步骤S13中,当指示虚拟计算机优先级设定部302进行切换源的第一 虚拟计算机10的优先级的设定时,虚拟计算机切换部301变更通知给虚拟计算机优先级 设定部302的优先级,使其低于第一虚拟计算机10的任务管理表中储存的模拟任务的优 先级。接着,虚拟计算机优先级设定部302接收来自虚拟计算机切换部301的指示,并将 变更后的优先级作为切换源的虚拟计算机(第一虚拟计算机10)的优先级而储存到虚拟计算 机优先级存储部40中。
变更后的优先级作为第二虚拟计算机20的模拟任务的优先级而被设定。由于该变更后的优先级低于第一虚拟计算机10的模拟任务的优先级,所以可使作为切换目标的第二 虚拟计算机20优先动作。
(实施例2)
图7是表示本发明的实施例2中的信息处理装置结构的框图。另外,在图7所示的实 施例2所涉及的信息处理装置中,对与图l所示的实施例1的信息处理装置相同的结构标 注了相同的符号,并省略详细说明。
图7所示的信息处理装置与实施例1同样,包括CPU(中央运算装置)l、中断控制器 2、外部设备3及存储器4。
存储器4包括第一虚拟计算机11、第二虚拟计算机21、虚拟计算机控制部300、虚 拟计算机优先级存储部400及执行上下文存储部50。
第一虚拟计算机ll包括执行包含模拟任务IIO在内的l个以上任务的任务执行部100 和第一OS150。包含模拟任务110在内的所有的任务分别设定有优先级。第一OS150进 行基于任务的优先级来执行的任务的调度。而且,模拟任务110是反映第二虚拟计算机21 的优先级的任务,包括虚拟计算机切换通知部111及优先级设定请求部112。该模拟任务 110与实施例1中说明的结构相同。
第一 OS150包括任务调度器121、优先级获取部122、优先级设定部123以及中断 处理部130。除了中断处理部130以外,与实施例l中说明的结构相同。此处,只对不同 的构成要素即中断处理部130进行详细说明。
中断处理部130包括1个以上的中断处理程序(interruptionhandler) 140。中断处理 程序140表示中断后要执行的处理,并分别设定有优先级。而且,当中断发生时,第一 OS150的中断处理部130接收中断控制器2所通知的中断通知,执行与中断因素相应的 中断处理程序140。
另外,实施例2中的任务调度器121存储用于管理任务及中断处理程序的任务管理表。 任务管理表具有各任务的管理信息和各中断处理程序的管理信息。具体而言,任务管理表 除了有任务ID、任务状态及任务优先级以外,还有用于识别中断处理程序的中断处理程序 ID、表示中断处理程序的状态的中断处理程序状态以及表示中断处理程序的优先级的中断 处理程序优先级。
第二虚拟计算机21包括执行包含模拟任务210在内的1个以上任务的任务执行部200 和第二OS250。包含模拟任务210在内的所有的任务分别设定有优先级。第二OS250进行基于任务的优先级执行的任务的调度。而且,模拟任务210是反映第一虚拟计算机11 的优先级的任务,包括虚拟计算机切换通知部211及优先级设定请求部212。该模拟任务 210与实施例1中说明的结构相同。
第二 OS250包括任务调度器221、优先级获取部222、优先级设定部223以及中断 处理部230。除了中断处理部230以外,与实施例1中说明的结构相同。而且,中断处理 部230具有与上述的中断处理部130相同的功能。
虚拟计算机控制部300包括虚拟计算机切换部301、虚拟计算机优先级设定部302、 中断接收部303以及中断优先级储存判断部304。虚拟计算机控制部300除了控制基于任 务调度的虚拟计算机的切换以外,还控制基于中断发生的虚拟计算机的切换。
中断接收部303接收用于通知对多台虚拟计算机的中断的中断通知,利用包含在中断 通知中的中断因素,从多台虚拟计算机中判断中断对象的虚拟计算机。中断接收部303通 过CPU1从中断控制器2接收通知中断发生的中断通知。中断接收部303基于包含在接收 到的中断通知中的中断因素,判断中断对象的虚拟计算机(第一虚拟计算机ll或第二虚拟 计算机21),并进行对中断对象的虚拟计算机(第一虚拟计算机11或第二虚拟计算机21) 的中断通知设定。另外,中断接收部303保持有将中断因素与中断对象的虚拟计算机编成 组的中断表。中断接收部303参照该中断表判断中断对象的虚拟计算机。
图8是表示本发明的实施例2中的中断表的一例的图。在图8所示的中断表中,第一 虚拟计算机11作为中断对象的虚拟计算机而与中断因素"A"、 "B"及"C"相对应,第二虚 拟计算机21作为中断对象的虚拟计算机而与中断因素"D"相对应。另外,如图8所示,在 本实施例2中,是将中断因素与中断对象的虚拟计算机以表格格式对应起来进行存储,但 本发明并不特别限定于此,中断因素与中断对象的虚拟计算机也可以以虚拟计算机控制部 能够唯一地确定中断对象的虚拟计算机的数据格式、例如函数或链接格式等加以存储。
中断优先级储存判断部304判断是否将与中断因素相对应的优先级设定为中断对象的 虚拟计算机的优先级。中断优先级储存判断部304在中断发生的时候,判断动作中的虚拟 计算机(第一虚拟计算机11或第二虚拟计算机21)与中断对象的虚拟计算机(第一虚拟计算 机11或第二虚拟计算机21)是否一致。如果当前动作中的虚拟计算机与中断对象的虚拟计 算机并不一致,则中断优先级储存判断部304指示虚拟计算机优先级设定部302将与发生 的中断对应的优先级储存至虚拟计算机优先级存储部400中。
并且,中断优先级储存判断部304判断由中断接收部303判断的中断对象的虚拟计算 机是否与中断前动作的虚拟计算机相同。如果被判断为中断对象的虚拟计算机与中断之前动作的虚拟计算机并不相同,则虚拟计算机优先级设定部302将与中断因素相对应的优先 级设定为中断对象的虚拟计算机的优先级。
虚拟计算机优先级存储部400除了存储在虚拟计算机的切换发生时刻存储的切换源的 虚拟计算机的优先级以外,还储存中断发生的时刻所发生的中断的优先级。虚拟计算机的 优先级是该虚拟计算机的任务中最优先执行的最优先任务的优先级。另外,所谓最优先任 务,是以除了执行状态的任务以外的接下来有可能被调度的任务为对象。即,模拟任务不 会成为最优先任务。
根据以上的结构,在本实施例2中的信息处理装置中,在其他虚拟计算机的优先级高 于执行中的虚拟计算机的时刻,虚拟计算机控制部30运行,进行虚拟计算机的切换处理。 而且,在中断发生时,虚拟计算机控制部30动作,当此中断为并非执行中的其他虚拟计 算机的中断时,将中断的优先级作为虚拟计算机优先级而储存至虚拟计算机优先级存储部 400中。由此,能够实现与中断和任务的优先级相符的虚拟计算机的切换。BP,没有必要 在OS每次执行任务调度时,都要暂停执行中的虚拟计算机来判断是否进行切换处理。在 使执行中的虚拟计算机暂停时,始终会发生向其他虚拟计算机的切换,从而可减少立即恢 复为暂停之前动作的相同虚拟计算机的处理。由此,可削减因不需要的执行上下文的暂停 和恢复造成的开销。
在本实施例2中,信息处理装置相当于虚拟计算机控制装置的一例,第一虚拟计算机 11及第二虚拟计算机21相当于多台虚拟计算机的一例,虚拟计算机控制部300相当于虚 拟计算机控制部的一例,虚拟计算机优先级设定部302相当于虚拟计算机优先级设定部的 一例,中断接收部303相当于中断接收部的一例,中断优先级储存判断部304相当于中断 优先级储存判断部的一例,虚拟计算机优先级存储部400相当于优先级存储部的一例。
图9是表示本发明的实施例2中的虚拟计算机控制部的中断处理的一例的流程图。图 9中表示了中断发生时的虚拟计算机控制部300的动作的一例。
当发生基于外部设备3的中断时,中断控制器2对CPU1输出通知中断发生的中断通 知。由此开始中断处理。例如,CPU1在从中断控制器2接收到中断发生通知后检测到中 断时,跳(移)至中断矢量。作为该跳跃目标的中断矢量被设定在虚拟计算机控制部300中。 由此,在中断发生时,可使虚拟计算机控制部300动作。
首先,虚拟计算机控制部300的中断接收部303从中断控制器2接收中断通知(步骤 S31)。当接收到中断通知时,中断接收部303向虚拟计算机切换部301指示执行上下文的 退避。接着,虚拟计算机切换部301使动作中的虚拟计算机的执行上下文从CPU寄存器退 避至执行上下文存储部50,并向中断接收部303通知执行上下文的退避完成(歩骤S32)。
接着,中断接收部303使用包含在接收到的中断通知中的中断因素,判断中断对象的 虚拟计算机(第一虚拟计算机11或第二虚拟计算机21),进行对中断对象的虚拟计算机的 中断通知设定,并向中断优先级储存判断部304通知中断对象的虚拟计算机的标识符(步 骤S33)。
接着,中断优先级储存判断部304使用从中断接收部303通知的中断对象的虚拟计算 机的标识符,判断中断对象的虚拟计算机是否与中断发生前动作的虚拟计算机相同(步骤 S34)。
如果被判断为中断对象的虚拟计算机与中断发生之前动作的虚拟计算机不同(在歩骤 S34中为"否"),则中断优先级储存判断部304指示虚拟计算机优先级设定部302将与所发 生的中断对应的优先级储存至虚拟计算机优先级存储部400中(步骤S35)。接着,虚拟计 算机优先级设定部302接收来自中断优先级储存判断部304的指示,将与所发生的中断对 应的优先级储存到虚拟计算机优先级存储部400中(步骤S36)。
另外,中断优先级储存判断部304为每台虚拟计算机保持各中断处理程序的优先级作 为优先级表。中断优先级储存判断部304参照优先级表,向虚拟计算机优先级设定部302 指示设定的优先级的值。
图10是表示本发明的实施例2中的优先级表的一例的图。中断优先级储存判断部304 具有第一虚拟计算机用优先级表Tl和第二虚拟计算机用优先级表T2。第一虚拟计算机用 优先级表T1将第一虚拟计算机11的中断处理部130所执行的第一至第三中断处理程序与 预先为第一至第三中断处理程序设定的优先级相对应。第二虚拟计算机用优先级表T2将 第二虚拟计算机21的中断处理部230所执行的第四至第六中断处理程序与预先为第四至 第六中断处理程序设定的优先级相对应。
如果被判断为中断对象的虚拟计算机与中断发生前动作的虚拟计算机相同(在步骤 S34为"是"),或者在被判断为中断对象的虚拟计算机与中断发生之前动作的虚拟计算机不 同之后,将与中断对应的优先级储存至虚拟计算机优先级存储部400中,则中断接收部303 指示虚拟计算机切换部301恢复在步骤S32中退避的执行上下文。虚拟计算机切换部301 使暂停执行的虚拟计算机的执行上下文从执行上下文存储部50恢复至CPU寄存器,完成 中断处理(步骤S37)。
另外,在歩骤S36中,虚拟计算机优先级设定部302也可以将与所发生的中断对应的优先级和已被存储在虚拟计算机优先级存储部400中的最优先任务的优先级进行比较,仅 在与所发生的中断对应的优先级高于所存储的最优先任务的优先级时才更新虚拟计算机 优先级存储部400。
艮i],虚拟计算机优先级设定部302将与中断因素相对应的优先级和存储在虚拟计算机 优先级存储部400中的优先级进行比较,当与中断因素相对应的优先级高于存储在虚拟计 算机优先级存储部400中的优先级高时,将与中断因素相对应的优先级设定为中断对象的 虚拟计算机的优先级。
而且,在步骤S36中,虚拟计算机优先级设定部302也可以将与所发生的中断对应的 优先级和规定的阈值进行比较,仅在与所发生的中断对应的优先级高于规定的阈值时才更 新虚拟计算机优先级存储部400。
接下来,对本实施例2中的中断处理后的动作进行说明。另外,对在第一虚拟计算机 11的动作中发生中断处理的情况进行说明。
如果中断对象的虚拟计算机为第一虚拟计算机11,在步骤S37恢复了执行上下文后, 中断处理部130执行与中断对应的中断处理程序。并且,当中断处理程序的执行结束时, 任务调度器121根据优先级来确定应执行的第一虚拟计算机11的任务。
另一方面,如果中断对象的虚拟计算机为第二虚拟计算机21,在步骤S37恢复了执 行上下文后,任务执行部100根据优先级依序执行第一虚拟计算机11的任务。并且,在 执行模拟任务110的时刻,开始图4至图6所示的切换处理。在切换处理中,执行图4至 图6所示的步骤S1至S22的处理。另外,在步骤S14中,虚拟计算机优先级存储部400 将包含在虚拟计算机切换通知中的优先级与已储存的与中断对应的优先级一起进行储存。
在步骤S23中,优先级设定部223获取储存在虚拟计算机优先级存储部40中的第一 虚拟计算机10的最优先任务优先级和与中断对应的优先级。接下来,在步骤S24中,优 先级设定部223将任务管理表的模拟任务210的任务优先级更新为所获取的最优先任务优 先级,并将任务管理表的中断处理程序的任务优先级更新为所获取的与中断对应的优先 级。随后,执行步骤S25至S27的处理,结束模拟任务210的执行。
当模拟任务210的执行结束时,任务调度器221根据优先级来确定应执行的第二虚拟 计算机21的任务。并且,在任务管理表中设定的中断处理程序的执行时刻,中断处理部 230执行与中断对应的中断处理程序。当中断处理程序的执行结束时,任务调度器221根 据优先级来确定应执行的第二虚拟计算机21的任务。
根据以上所述,本实施例2中的信息处理装置生成模拟表示作为切换对象的其他虚拟计算机的模拟任务,并将该模拟任务的优先级设定为作为切换对象的其他虚拟计算机的优
先级最高的任务的优先级。OS的任务调度器在其他虚拟计算机的优先级高于执行中的虚
拟计算机的时刻,使模拟任务成为执行状态,任务执行部执行模拟任务。由此,虚拟计算
机控制部300运行,以进行切换处理。即,没有必要在OS每次执行任务调度时,都要暂 停执行中的虚拟计算机来判断是否进行切换处理。在使执行中的虚拟计算机暂停时,始终 会发生向其他虚拟计算机的切换,从而可减少立即恢复为暂停之前动作的相同虚拟计算机 的处理。g卩,可削减因不需要的执行上下文的暂停和恢复造成的丌销。
进一歩,在中断发生时,如果是执行中的虚拟计算机的中断,则对执行中的虚拟计算 机的OS进行中断通知,而如果是对并非执行中的其他虚拟计算机的中断,则将中断的优 先级设定为虚拟计算机的优先级,使中断前的虚拟计算机动作。由此,能够实现与中断的 优先级和任务的优先级相符的虚拟计算机的切换。即,没有必要在OS每次执行任务调度
时,都要暂停执行中的虚拟计算机来判断是否进行切换。在使执行中的虚拟计算机暂停时, 始终会发生向其他虚拟计算机的切换,从而可减少立即恢复为暂停之前动作的相同虚拟计 算机的处理。由此,可削减因不需要的执行上下文的暂停和恢复造成的开销。
另外,在实施例1及2中对虚拟计算机为两台的情况进行了说明,但本发明并不特别 限定于此,也可设置3台以上的虚拟计算机。
(实施例3)
接下来,对本发明的实施例3所涉及的信息处理装置进行说明。本实施例3中,在发 生病毒故障或OS故障时,虚拟计算机通过将规定的优先级通知给虚拟计算机控制部,恢 复到正常动作的状态。
另外,由于实施例3所涉及的信息处理装置的结构与图l所示的实施例1的信息处理 装置大致相同,所以只对不同结构进行说明。实施例3与实施例1,执行上下文存储部50 的结构不同。
图11是表示本发明的实施例3中的执行上下文存储部的结构的图。 执行上下文存储部50为每台虚拟计算机存储由虚拟计算机控制部30退避的执行上下 文。执行上下文存储部50对应虚拟计算机的台数而具备第一执行上下文存储部50 — 1至 第N执行上下文存储部50 — N。另外,图ll所示的是信息处理装置包括三台以上虚拟计 算机的情况,但本发明并不特别限定于此,信息处理装置也可像图l所示那样包括两台虚 拟计算机。第--执行上下文存储部50 — 1存储第一虚拟计算机的执行上下文,第二执行上下文存 储部50—2存储第二虚拟计算机的执行上下文,第N执行上下文存储部50 —N存储第N 虚拟计算机的执行上下文。
在实施例1中,执行上下文存储部50为每台虚拟计算机只存储l个执行上下文,每 当执行上下文被退避时执行上下文就被重写(overwrite)存储。而实施例3中,执行上下文 存储部50每当执行上下文被退避时就将该执行上下文储存到不同的区域中,为每台虚拟 计算机存储多个执行上下文。
艮口,第一执行上下文存储部50—1存储第一执行上下文数据51 — 1至第M执行上下 文数据51—M,第二执行上下文存储部50 — 2存储第一执行上下文数据52 — 1至第M执 行上下文数据52—M,第N执行上下文存储部50—N存储第一执行上下文数据53 —1至 第M执行上下文数据53—M。
另外,第一执行上下文存储部50 — 1至第N执行上下文存储部50—N所存储的执行 上下文的个数M是根据存储器的容量等预先设定的。
虚拟计算机切换部301使切换源的虚拟计算机的执行上下文从CPU寄存器退避执行 上下文存储部50。此时,虚拟计算机切换部301将切换源的虚拟计算机的执行上下文存 储至执行上下文存储部50的与切换源的虚拟计算机对应的区域(第一执行上下文存储部50 一1至第N执行上下文存储部50 — N中的任意之一)中。另外,首次将执行上下文作为第 一执行上下文数据保存,下次将执行上下文作为第二执行上下文数据保存。并且,当保存 的数据个数超过用于确保一台虚拟计算机的退避的个数M时,再次作为第一执行上下文数 据保存,
当检测到系统异常或系统故障时,无论优先级如何,都使模拟任务运行。另外,前提 是当检测到系统异常或系统故障时模拟任务可运行。
虚拟计算机切换部通知部lll在当前动作中的虚拟计算机发生故障时,并非是向虚拟 计算机优先级设定部302通知切换源的第一虚拟计算机10的最优先任务优先级,而是通 知表示当前动作中的虚拟计算机发生故障的故障优先级。
接着,虚拟计算机优先级设定部302接收来自虚拟计算机切换通知部111的指示,如 果该指示中包含有表示发生系统异常或系统故障的故障优先级,则并不将故障优先级储存 至虚拟计算机优先级存储部40中,而是将处理移至虚拟计算机切换部301。
接着,虚拟计算机切换部301使进行了虚拟计算机切换通知的虚拟计算机的执行上下 文从执行上下文存储部50恢复至CPU寄存器。在此,虚拟计算机切换部301从执行上下文存储部50中存储的执行上F文中使最旧的执行上下文恢复至CPU寄存器。
另外,在本实施例3中,是从执行上下文存储部50中存储的执行上下文中使最旧的
执行上下文恢复至CPU寄存器,但本发明并不特别限定于此,可以使最新的执行上下文
恢复至CPU寄存器,也可以使任意的执行上下文恢复至CPU寄存器。
而且,在模拟任务无法执行的状态的情况下,虚拟计算机控制部30也可以通过看门
狗定时器等检测出异常状态,并强制地使正常时的执行上下文恢复至CPU寄存器。
通过以上结构,即使虚拟计算机发生病毒故障或OS故障,也可恢复到正常动作的状态。
(实施例4)
在上述的实施例1中,是使一个CPU1作为第一虚拟计算机10及第二虚拟计算机20 而发挥作用,但本发明并不特别限定于此,也可以使多个CPU作为各不相同的虚拟计算 机发挥作用。
图12是表示本发明的实施例4所涉及的信息处理装置结构的框图。另外,在图12所 示的实施例4的信息处理装置中,对与图1所示的实施例1的信息处理装置相同的结构标 注了相同的符号,并省略详细说明。
图12所示的信息处理装置包括第一CPU5、第二CPU6、中断控制器2、外部设备3 以及存储器4。在通常状态下,第一CPU5作为第一虚拟计算机10而工作,第二CPU6 作为第二虚拟计算机20工作。然而,当第一CPU5及第二CPU6的其中之一的CPU的 负载量增大,或变成空闲状态时,另一CPU将作为第一虚拟计算机10及第二虚拟计算机 20而工作。此时,另一CPU执行实施例1中说明的切换处理。另外,通过第一CPU5和 第二 CPU6的其中之一而使虚拟计算机控制部30、虚拟计算机优先级存储部40以及执行 上下文存储部50动作。
根据以上的结构,即使在通过多个CPU使多台虚拟计算机动作的情况下,也可以切 换多台虚拟计算机,从而能够削减因不需要的执行上下文的暂停和恢复造成的开销。
另外,本实施例1至4中的信息处理装置的各构成要素典型的是作为软件而加以实现, 但也可以用集成电路LSI来实现。各构成要素可以分别被集成为一个芯片(one chip),也 可以将一部分或全部集成为一个芯片。在此,虽然为LSI,但根据集成度的不同有时也被 称为IC、系统LSI、大规模(super)LSI、超大规模(ultra)LSI。而且,集成电路化的技术 不仅限于LSI,也可以通过专用电路或通用处理器来实现。也可以利用在LSI制造后可编))、或者可重新构成LSI 内部的电路单元的连接或设定的可重构处理器(reconfigurable processor)。此外,如果随 着半导体技术的进歩或派生的其他技术而出现可替换LSI的集成电路化的技术,毋庸置疑 也可以使用该技术来进行功能块的集成化。
另外,上述的具体实施方式
中主要包含了具有以下结构的发明。
本发明所涉及的虚拟计算机控制装置包括分别具有进行基于任务的优先级执行的任 务调度的操作系统的多台虚拟计算机;以及控制所述多台虚拟计算机的切换的虚拟计算机 控制部,所述多台虚拟计算机的每一台具有执行用于进行将当前动作中的虚拟计算机切 换为作为切换对象的其他虚拟计算机的切换处理的切换任务的任务执行部;从当前动作中 的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级的优先级获取部;以 及将所述切换任务的优先级设定为由所述其他虚拟计算机的所述优先级获取部获取的所 述优先级的优先级设定部,其中,所述任务执行部在根据所述操作系统的任务调度来执行 所述切换任务时,对所述虚拟计算机控制部通知由所述优先级获取部获取的所述优先级和 将当前动作中的虚拟计算机切换为所述其他虚拟计算机的切换指示,所述虚拟计算机控制 部接收由所述任务执行部通知的所述优先级和切换指示,将当前动作中的虚拟计算机切换 为所述其他虚拟计算机。
根据该结构,多台虚拟计算机分别具有进行基于任务的优先级执行的任务调度的操作 系统,虚拟计算机控制部控制多台虚拟计算机的切换。任务执行部执行用于进行将当前动 作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务,优先级 获取部从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先 级,优先级设定部将切换任务的优先级设定为由其他虚拟计算机的优先级获取部获取的优 先级。任务执行部在根据操作系统的任务调度执行切换任务时,对虚拟计算机控制部通知 由优先级获取部获取的优先级和将当前动作中的虚拟计算机切换为其他虚拟计算机的切 换指示。虚拟计算机控制部接收由任务执行部所通知的优先级和切换指示,将当前动作中 的虚拟计算机切换为其他虚拟计算机。
因此,由于切换任务的优先级被设定为其他虚拟计算机中的优先级最高的任务的优先 级,切换任务仅在虚拟计算机被切换时才加以执行,因此可削减虚拟计算机的暂停和恢复 的处理次数,从而可削减虚拟计算机的切换所需的开销。
而且,在上述虚拟计算机控制装置中,优选的是,所述任务执行部在所述多台虚拟计 算机的启动时生成所述切换任务,将所生成的所述切换任务的优先级设定为最高优先级。根据此结构,由于切换任务在多台虚拟计算机的启动时被生成,所生成的切换任务的 优先级被设定为最高优先级,因此可在多台虚拟计算机的启动时首先执行切换任务,设定 该切换任务的优先级。
而且,在上述虚拟计算机控制装置中,优选的是,所述虚拟计算机控制部具备接收 用于通知对所述多台虚拟计算机的中断的中断通知,使用包含在所述中断通知中的中断因 素,从所述多台虚拟计算机中判断中断对象的虚拟计算机的中断接收部;以及判断是否将 与所述中断因素相对应的优先级设定为所述中断对象的虚拟计算机的优先级的中断优先 级储存判断部。
根据此结构,中断接收部接收用于通知对多台虚拟计算机的中断的中断通知,使用包 含在中断通知中的中断因素,从多台虚拟计算机中判断中断对象的虚拟计算机。而且,中 断优先级储存判断部判断是否将与中断因素相对应的优先级设定为中断对象的虚拟计算 机的优先级。
因此,由于在发生中断时,可判断是否将与中断因素相对应的优先级设定为中断对象 的虚拟计算机的优先级,因此可以优先执行中断对象的虚拟计算机。
而且,在上述虚拟计算机控制装置中,优选的是,所述中断优先级储存判断部判断由 所述中断接收部判断的中断对象的虚拟计算机是否与中断前动作的虚拟计算机相同,所述 虚拟计算机控制部还具备虚拟计算机优先级设定部,在判断出中断对象的虚拟计算机与中 断前动作的虚拟计算机不同时,将与所述中断因素相对应的优先级设定为所述中断对象的 虚拟计算机的优先级。
根据此结构,由中断接收部判断的中断对象的虚拟计算机是否与中断前动作的虚拟计 算机相同得以判断。并且,当判断出中断对象的虚拟计算机与中断前动作的虚拟计算机不 同时,与中断因素相对应的优先级被设定为中断对象的虚拟计算机的优先级。
因此,当中断对象的虚拟计算机与中断前动作的虚拟计算机不同时,可以优先执行与 中断前动作的虚拟计算机不同的中断对象的其他虚拟计算机。
而且,在上述虚拟计算机控制装置中,优选的是还包括存储由所述任务执行部通知的 所述优先级的优先级存储部,其中所述虚拟计算机控制部还具备虚拟计算机优先级设定 部,用来将与所述中断因素相对应的优先级和所述优先级存储部中存储的优先级进行比 较,当与所述中断因素相对应的优先级高于所述优先级存储部中存储的优先级时,将与所 述中断因素相对应的优先级设定为所述中断对象的虚拟计算机的优先级。
根据此结构,在优先级存储部中存储有由任务执行部所通知的优先级。并且,与中断因素相对应的优先级和优先级存储部中存储的优先级被加以比较,当与中断因素相对应的 优先级高于优先级存储部中存储的优先级时,与中断因素相对应的优先级被设定为中断对 象的虚拟计算机的优先级。
因此,当与中断因素相对应的优先级高于存储在优先级存储部中的优先级时,将与中 断因素相对应的优先级设定为中断对象的虚拟计算机的优先级,因此在发生中断时,未必 需要执行中断,可优先执行优先级更高的任务。
而且,在上述虚拟计算机控制装置中,优选的是还包括存储各虚拟计算机的执行上下 文的执行上下文存储部,其中,所述虚拟计算机控制部使与切换前的虚拟计算机对应的执 行上下文退避至所述执行上下文存储部,并使与切换后的虚拟计算机对应的执行上下文从 所述执行上下文存储部恢复。
根据此结构,执行上下文存储部中存储有各虚拟计算机的执行上下文。并且,与切换 前的虚拟计算机对应的执行上下文被退避至执行上下文存储部,与切换后的虚拟计算机对 应的执行上下文从执行上下文存储部予以恢复。
因此,由于在虚拟计算机切换之前,与切换前的虚拟计算机对应的执行上下文被退避, 所以可以从暂停时的状态开始执行切换任务。
而且,在上述虚拟计算机控制装置中,优选的是还包括存储由所述任务执行部所通知 的所述优先级的优先级存储部,其中,所述虚拟计算机控制部在接收到由所述任务执行部 通知的所述优先级和切换指示时,使与切换前的虚拟计算机对应的执行上下文退避至所述 执行上下文存储部,将由所述任务执行部通知的所述优先级存储至所述优先级存储部,并 使与切换后的虚拟计算机对应的执行上下文从所述执行上下文存储部恢复,切换后的虚拟 计算机中所具有的所述任务执行部再次执行被暂停的切换任务,切换后的虚拟计算机中所
具有的所述优先级设定部获取所述优先级存储部中存储的切换前的虚拟计算机的所述优 先级,并将所获取的所述优先级设定为切换任务的优先级。
根据此结构,在优先级存储部中存储有由任务执行部所通知的优先级。并且,虚拟计 算机控制部在接收到由任务执行部通知的优先级和切换指示时,使与切换前的虚拟计算机 对应的执行上下文退避至执行上下文存储部,将由任务执行部通知的优先级存储至优先级 存储部。随后,虚拟计算机控制部使与切换后的虚拟计算机对应的执行上下文从执行上下 文存储部恢复。切换后的虚拟计算机中所具有的任务执行部再次执行被暂停的切换任务, 切换后的虚拟计算机中所具有的优先级设定部获取优先级存储部中存储的切换前的虚拟 计算机的优先级,并将所获取的优先级设定为切换任务的优先级。因此,由于在与切换后的虚拟计算机对应的执行上下文从执行上下文存储部恢复之 后,切换后的虚拟计算机的被暂停的切换任务被再次执行,并且切换前的虚拟计算机的优 先级被设定为切换任务的优先级,因此可以将切换后的虚拟计算机的切换任务的优先级设 定为切换前的虚拟计算机的优先级最高的任务的优先级。
而且,在上述虚拟计算机控制装置中,优选的是,所述执行上下文存储部为每台虚拟 计算机存储被所述虚拟计算机控制部退避的执行上下文,所述任务执行部在当前动作中的 虚拟计算机发生故障时,对所述虚拟计算机控制部通知表示当前动作中的虚拟计算机已发 生故障的故障优先级,所述虚拟计算机控制部在接收到由所述任务执行部通知的所述故障 优先级时,使所述执行上下文存储部中存储的最旧的执行上下文恢复。
根据此结构,在执行上下文存储部中,为每台虚拟计算机存储有被虚拟计算机控制部 退避的执行上下文。并且,任务执行部在当前动作中的虚拟计算机发生故障时,对虚拟计 算机控制部通知表示当前动作中的虚拟计算机已发生故障的故障优先级。虚拟计算机控制 部在接收到由任务执行部通知的故障优先级时,使执行上下文存储部中存储的最旧的执行 上下文恢复。
因此,由于即使在当前动作中的虚拟计算机发生故障的情况下,执行上下文存储部中
存储的最旧的执行上下文恢复也能被恢复,所以可以使虚拟计算机返回故障发生前的状 太
本发明所涉及的虚拟计算机控制方法,用于控制分别具有进行基于任务的优先级执行
的任务调度的操作系统的多台虚拟计算机的切换,其包括执行用于进行将当前动作中的 虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务的任务执行步
骤;从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级的 优先级获取歩骤;将所述切换任务的优先级设定为在所述其他虚拟计算机的所述优先级获 取步骤中获取的所述优先级的优先级设定步骤;当根据所述操作系统的任务调度来执行所 述切换任务时,通知在所述优先级获取步骤中获取的所述优先级和将当前动作中的虚拟计 算机切换为所述其他虚拟计算机的切换指示的通知步骤;以及接收在所述任务执行步骤中 通知的所述优先级和切换指示,将当前动作中的虚拟计算机切换为所述其他虚拟计算机的 切换步骤。
根据此结构,在任务执行步骤执行用于进行将当前动作中的虚拟计算机切换为作为切 换对象的其他虚拟计算机的切换处理的切换任务。在优先级获取歩骤从当前动作中的虚拟 计算机自身的可执行的任务中获取优先级最高的任务的优先级。在优先级设定步骤将切换任务的优先级设定为在其他虚拟计算机的优先级获取歩骤中获取的优先级。在通知步骤中 当根据操作系统的任务调度来执行切换任务时,通知在优先级获取歩骤中获取的优先级和 将当前动作中的虚拟计算机切换为其他虚拟计算机的切换指示。在切换歩骤接收在任务执 行歩骤中通知的优先级和切换指示,将当前动作中的虚拟计算机切换为其他虚拟计算机。
因此,由于切换任务的优先级被设定为其他虚拟计算机的优先级最高的任务的优先 级,切换任务仅在虚拟计算机被切换时才得以执行,因此可削减虚拟计算机的暂停和恢复 的处理次数,从而可削减虚拟计算机的切换所需的开销。
本发明所涉及的虚拟计算机控制程序,使电脑作为分别具有进行基于任务的优先级执 行的任务调度的操作系统的多台虚拟计算机和控制所述多台虚拟计算机的切换的虚拟计 算机控制部而发挥作用,所述多台虚拟计算机的每一台具有执行用进行将当前动作中的
虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务的任务执行部; 从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级的优
先级获取部;以及将所述切换任务的优先级设定为由所述其他虚拟计算机的所述优先级获
取部获取的所述优先级的优先级设定部,其中,所述任务执行部在根据所述操作系统的任 务调度来执行所述切换任务时,对所述虚拟计算机控制部通知由所述优先级获取部获取的 所述优先级和将当前动作中的虚拟计算机切换为所述其他虚拟计算机的切换指示,所述虚 拟计算机控制部接收由所述任务执行部通知的所述优先级和切换指示,将当前动作中的虚 拟计算机切换为所述其他虚拟计算机。
根据该结构,多台虚拟计算机分别具有进行基于任务的优先级执行的任务调度的操作 系统,虚拟计算机控制部控制多台虚拟计算机的切换。任务执行部执行用于进行将当前动 作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务,优先级 获取部从本虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级,优先级设 定部将切换任务的优先级设定为由其他虚拟计算机的优先级获取部获取的优先级。任务执 行部在根据操作系统的任务调度来执行切换任务时,对虚拟计算机控制部通知由优先级获 取部获取的优先级和将当前动作中的虚拟计算机切换为其他虚拟计算机的切换指示。虚拟 计算机控制部接收由任务执行部所通知的优先级和切换指示,将当前动作中的虚拟计算机
切换为其他虚拟计算机。
因此,由于切换任务的优先级被设定为其他虚拟计算机中的优先级最高的任务的优先 级,切换任务仅在虚拟计算机被切换时才得以执行,因此可削减虚拟计算机的暂停和恢复 的处理次数,从而可削减虚拟计算机的切换所需的开销。另外,发明的实施方式的各项中的具体实施方式
或实施例到底使本发明的技术内容明 确,不应只被具体例限定而被狭义地解释,在本发明的精神和权利要求书的范围内可进行 各种变更而加以实施。
产业上的利用可能性
本发明所涉及的虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序对 于具有多台虚拟计算机的大型计算机及个人电脑等是有用的。而且,本发明所涉及的虚拟
计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序在AV设备等家电设备、手 机之类的通信设备、产业设备及乘用设备等用途中也极为有用。
权利要求
1.一种虚拟计算机控制装置,其特征在于包括多台虚拟计算机,分别具有进行基于任务的优先级执行的任务调度的操作系统;以及虚拟计算机控制部,控制所述多台虚拟计算机的切换,其中,所述多台虚拟计算机的每一台具备任务执行部,执行用于进行将当前动作中的虚拟计算机切换为作为切换对象的其他虚拟计算机的切换处理的切换任务;优先级获取部,从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级;以及优先级设定部,将所述切换任务的优先级设定为由所述其他虚拟计算机的所述优先级获取部获取的所述优先级,其中所述任务执行部,在根据所述操作系统的任务调度来执行所述切换任务时,将由所述优先级获取部获取的所述优先级和将当前动作中的虚拟计算机切换为所述其他虚拟计算机的切换指示通知给所述虚拟计算机控制部,所述虚拟计算机控制部,接收由所述任务执行部通知的所述优先级和切换指示,将当前动作中的虚拟计算机切换为所述其他虚拟计算机。
2. 根据权利要求1所述的虚拟计算机控制装置,其特征在于所述任务执行部在所述 多台虚拟计算机启动时生成所述切换任务,并将所生成的所述切换任务的优先级设定为最 高优先级。
3. 根据权利要求1或2所述的虚拟计算机控制装置,其特征在于,所述虚拟计算机控 制部包括中断接收部,接收用于通知所述多台虚拟计算机中断的中断通知,利用包含在所述中 断通知中的中断因素,从所述多台虚拟计算机中判断作为中断对象的虚拟计算机;以及中断优先级储存判断部,判断是否将与所述中断因素相对应的优先级作为所述中断对 象的虚拟计算机的优先级而设定。
4. 根据权利要求3所述的虚拟计算机控制装置,其特征在于所述中断优先级储存判断部,判断由所述中断接收部判断的中断对象的虚拟计算机是 否与中断前动作的虚拟计算机相同,所述虚拟计算机控制部还具备虚拟计算机优先级设定部,在中断对象的虚拟计算机被 判断为与中断前动作的虚拟计算机不同时,将与所述中断因素相对应的优先级作为所述中 断对象的虚拟计算机的优先级而设定。
5. 根据权利要求3所述的虚拟计算机控制装置,其特征在于还包括存储由所述任务 执行部通知的所述优先级的优先级存储部,其中,所述虚拟计算机控制部还具备虚拟计算机优先级设定部,在将与所述中断因素相对应 的优先级和所述优先级存储部中存储的优先级进行比较,当与所述中断因素相对应的优先 级高于所述优先级存储部中存储的优先级时,将与所述中断因素相对应的优先级作为所述 中断对象的虚拟计算机的优先级而设定。
6. 根据权利要求1至5中任一项所述的虚拟计算机控制装置,其特征在于还包括存 储各虚拟计算机的执行上下文的执行上下文存储部,其中,所述虚拟计算机控制部,使与切换前的虚拟计算机对应的执行上下文退避至所述执行 上下文存储部,并使与切换后的虚拟计算机对应的执行上下文从所述执行上下文存储部恢 复。
7. 根据权利要求6所述的虚拟计算机控制装置,其特征在于还包括存储由所述任务 执行部通知的所述优先级的优先级存储部,其中,所述虚拟计算机控制部,在接收到由所述任务执行部通知的所述优先级和切换指示 时,使与切换前的虚拟计算机对应的执行上下文退避至所述执行上下文存储部,将由所述 任务执行部通知的所述优先级存储到所述优先级存储部,并使与切换后的虚拟计算机对应 的执行上下文从所述执行上下文存储部恢复,切换后的虚拟计算机所包含的所述任务执行部,再次执行被暂停的切换任务, 切换后的虚拟计算机所包含的所述优先级设定部,获取所述优先级存储部中存储的切 换前的虚拟计算机的所述优先级,并将所获取的所述优先级作为切换任务的优先级而设 定。
8. 根据权利要求6或7所述的虚拟计算机控制装置,其特征在于所述执行上下文存储部,针对每台虚拟计算机存储被所述虚拟计算机控制部退避的执 行上下文,所述任务执行部,在当前动作中的虚拟计算机发生故障时,对所述虚拟计算机控制部 通知表示当前动作中的虚拟计算机已发生故障的故障优先级,所述虚拟计算机控制部,在接收到由所述任务执行部通知的所述故障优先级时,使存 储在所述执行上下文存储部中的最旧的执行上下文恢复。
9. 一种虚拟计算机控制方法,用于控制多台虚拟计算机的切换,其中所述多台虚拟计 算机分别具有进行基于任务的优先级执行的任务调度的操作系统,其特征在于包括以下步骤任务执行步骤,执行用于进行将当前动作中的虚拟计算机切换为作为切换对象的其他 虚拟计算机的切换处理的切换任务;优先级获取步骤,从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高 的任务的优先级;优先级设定步骤,将所述切换任务的优先级设定为在所述其他虚拟计算机的所述优先 级获取步骤中获取的所述优先级;通知步骤,当根据所述操作系统的任务调度来执行所述切换任务时,通知在所述优先 级获取步骤中获取的所述优先级和将当前动作中的虚拟计算机切换为所述其他虚拟计算 机的切换指示;以及切换步骤,接收在所述任务执行步骤通知的所述优先级和切换指示,将当前动作中的 虚拟计算机切换为所述其他虚拟计算机。
10. —种虚拟计算机控制程序,其特征在于使电脑作为分别具有进行基于任务的优 先级执行的任务调度的操作系统的多台虚拟计算机和控制所述多台虚拟计算机的切换的 虚拟计算机控制部而发挥作用,其中,所述多台虚拟计算机的每一台具有,任务执行部,执行用于执行将当前动作中的虚拟计算机切换为作为切换对象的其 他虚拟计算机的切换处理的切换任务;优先级获取部,从当前动作中的虚拟计算机自身的可执行的任务中获取优先级最高的任务的优先级;以及优先级设定部,将所述切换任务的优先级设定为由所述其他虚拟计算机的所述优 先级获取部获取的所述优先级,其中,所述任务执行部,在根据所述操作系统的任务调度来执行所述切换任务时, 将由所述优先级获取部获取的所述优先级和将当前动作中的虚拟计算机切换为 所述其他虚拟计算机的切换指示通知给所述虚拟计算机控制部,所述虚拟计算机控制部,接收由所述任务执行部通知的所述优先级和切换指 示,将当前动作中的虚拟计算机切换为所述其他虚拟计算机。
全文摘要
第一虚拟计算机(10)的任务执行部(100)在根据操作系统的任务调度来执行模拟任务(110)时,对虚拟计算机控制部(30)通知由优先级获取部(122)获取的优先级和将当前动作中的第一虚拟计算机(10)切换为第二虚拟计算机(20)的切换指示,虚拟计算机控制部(30)接收由任务执行部(100)通知的优先级和切换指示,将当前动作中的第一虚拟计算机(10)切换为第二虚拟计算机(20)。根据此结构,可以削减虚拟计算机的切换所需要的开销。
文档编号G06F9/46GK101689127SQ20098000047
公开日2010年3月31日 申请日期2009年4月22日 优先权日2008年4月28日
发明者加藤一臣, 宫崎亮太, 齐藤雅彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1