專利名稱:虛擬計算機控制裝置、虛擬計算機控制方法、虛擬計算機控制程序以及集成電路的制作方法
技術領域:
本發明涉及一種在具備多個虛擬計算機的虛擬計算機系統中適當地對處理器進行省電控制的技術。
背景技術:
近年,具備分別獨立地使操作系統動作的多個虛擬計算機和控制這些虛擬計算機的虛擬計算機控制裝置的虛擬計算機系統已為公知。例如在專利文獻I中公開了一種通過管理來自多個操作系統的請求內容來削減耗電的虛擬計算機系統。更詳細而言,專利文獻I的虛擬計算機系統是執行多個操作系統的虛擬計算機系統,具有存儲包含各個操作系統的硬件設備的執行狀態的執行信息的存儲單元。而且,具有受理硬件設備的電源接通請求和電源切斷請求的至少其中之一請求的請求受理單元。還具有電源切換控制單元,該電源切換控制單元基于執行信息控制有關請求的處理執行,在操作系統向某硬件設備發出了電源接通請求和電源斷開請求的情況下,在其它的操作系統正在使用該硬件設備時不讓進行電源接通請求或電源斷開請求的處理執行。然而,在專利文獻I的虛擬計算機系統中,能夠管理各操作系統的虛擬計算機控制裝置管理各操作系統對硬件設備的執行狀態和電源接通和斷開請求,進行省電控制。也就是說,在專利文獻I的結構中,存在除了操作系統所具有的省電功能外,還需要在虛擬計算機控制裝置中設置省電功能的問題。專利文獻1:日本專利公開公報特開2001-43098號
發明內容
本發明的目的在于提供一種虛擬計算機控制裝置等,在虛擬計算機控制裝置的內部不保持復雜的省電功能,利用操作系統的省電功能來適當地進行虛擬計算機系統整體的省電控制。本發明所提供的一種虛擬計算機控制裝置控制第一虛擬計算機和第二虛擬計算機,該第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,該第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,所述第二操作系統具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部,所述虛擬計算機控制裝置包括虛構任務生成請求部,該虛構任務生成請求部在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。
圖1是表示具備本發明的實施方式的虛擬計算機控制裝置的虛擬計算機系統的結構的圖。
圖2是表示具備本發明的實施方式的虛擬計算機控制裝置的虛擬計算機系統的功能結構的一例的框圖。圖3是表示虛擬計算機執行狀態管理信息的數據結構的一例的圖。圖4是表示中斷保留信息的數據結構的一例的圖。圖5是表示可分配CPU信息的數據結構的一例的圖。圖6是表示調度策略管理信息的數據結構的一例的圖。圖7是表示本實施方式的虛擬計算機控制裝置生成虛構任務的生成請求時的動作的流程圖。圖8是表示本實施方式的虛擬計算機控制裝置生成虛構任務的結束請求時的動作的流程圖。圖9是表示本實施方式的虛擬計算機控制裝置向第二 OS通知虛構任務的生成請求和結束請求時的動作的流程圖。圖10是表示以第二虛擬計算機從忙碌狀態轉變為閑置狀態為契機生成虛構任務的生成請求時的動作的流程圖。圖11是表示在采用了以分時方式分配第一、第二虛擬計算機的執行權的分時策略的情況下第二虛擬計算機用盡時間片時的處理的流程圖。圖12是表示在采用了利用固定優先級策略來決定第一、第二虛擬計算機的執行權的結構的情況下,在第二虛擬計算機的任務的執行過程中發生了對第一虛擬計算機的中斷時的處理的流程圖。圖13是表示本實施方式的比較例的虛擬計算機系統的虛擬計算機內的任務執行狀況的一例的圖。圖14是表示本實施方式的虛擬計算機控制裝置中的虛擬計算機內的任務執行狀況的一例的圖。圖15是表示本實施方式的虛擬計算機控制裝置中的虛擬計算機內的任務執行狀況的一例的圖。
具體實施例方式(至獲得本發明的一實施方式的經過)一般,在操作系統和設備驅動器中設置有控制向處理器、設備等設備提供的電力的結構。操作系統和設備驅動器根據設備的狀況控制向設備的供電,實現系統的省電化。作為一般的省電功能的一例,可列舉如下功能:當設備在一定期間內未被使用或未動作時,停止向設備的供電或降低向設備提供的時鐘信號的頻率來降低向設備提供的電量。一般,操作系統具備這種省電功能。操作系統具備如下功能作為省電功能的一部分,即,在某處理器中不存在由系統處理的任務的閑置(idle)狀態以一定比例發生時,使該處理器的動作停止,并停止向該處理器提供電力。另一方面,在使多個由操作系統和在該操作系統上動作的軟件構成的虛擬計算機動作的虛擬計算機系統中,某虛擬計算機的操作系統無法直接獲知其它虛擬計算機的設備的使用狀況。也就是說,某虛擬計算機無法直接掌握其它虛擬計算機以何種程度使用哪個處理器。因而,在以往的虛擬計算機系統中,存在無法使用操作系統所具備的省電功能在適當的時機將處理器設為省電狀態的問題。為了避免這種問題,作為以往的有關虛擬計算機控制的技術,已知在背景技術中說明的專利文獻1,但是在專利文獻I的結構中,除了操作系統所具有的省電功能外,還需要在虛擬計算機控制裝置中設置省電功能。在此,操作系統所具備的省電功能根據各種條件進行復雜的省電控制。例如進行如下省電控制:在一定的期間統計采樣在處理器中沒有處理的情況,根據其結果停止向處理器的供電、或者降低向處理器提供的時鐘信號的頻率。將這種復雜的操作系統的省電功能移植到虛擬計算機控制裝置的內部會導致開發成本增大,引起開發后的維修成本增大。另外,一般,虛擬計算機系統的省電功能作為操作系統的功能而由操作系統的開發廠商等在開源上(open-source)開發并發展。然而,在專利文獻I的結構中,存在需要追隨操作系統的省電功能的更新來保持虛擬計算機控制裝置的省電功能的問題。因此,本實施方式的虛擬計算機控制裝置的目的在于在虛擬計算機控制裝置的內部不保持復雜的省電功能,能夠利用操作系統的省電功能來實現虛擬計算機系統整體的省電功能。下面,參照附圖來詳細說明本實施方式的虛擬計算機控制裝置。(本實施方式的虛擬計算機控制裝置的說明)圖1是表示具備本發明的實施方式的虛擬計算機控制裝置的虛擬計算機系統的結構的圖。該虛擬計算機系統1000自身能夠供用戶使用,但也可以安裝于各種設備。作為虛擬計算機系統1000,代表性地列舉PC (Personal Computer ;個人計算機)等的通用計算機作為一例。但是,并不限定于此,作為虛擬計算機系統1000,也可以采用PDA (PersonalDigital Assistance:個人數字助理)、便攜電話、智能手機等便攜通信終端。除此之外,作為虛擬計算機系統1000,可以采用電視機,也可以采用硬盤記錄器、DVD、藍光盤等各種盤記錄器以及各種盤播放器,還可以采用汽車導航系統。虛擬計算機系統1000具備處理器1、存儲裝置2、通信裝置34、輸入裝置40、顯示裝置45、計時電路51以及中斷控制器55。這些裝置通過總線50相互連接。另外,根據需要,可以將硬盤裝置25和讀取裝置32連接于總線50。硬盤裝置25、讀取裝置32、輸入裝置40以及顯示裝置45分別通過接口 26、35、41、46連接于總線50。作為處理器I,代表性地采用CPU(Central Processing Unit;中央運算處理裝置)、媒體處理用或圖形處理用的處理器以及DSP(Digital Signal Processor:數字信號處理器)等的運算處理裝置。處理器I可以由單一的處理器構成,也可以由多個處理器構成。作為一例,設虛擬計算機系統1000具有多個處理器11、12、13、14。此外,在圖1的例子中記載了四個處理器,但是處理器I的數目當然并不限于此。存儲裝置2具備ROM (Read Only Memory:只讀存儲器)21和RAM (Random Access Memory:隨機訪問存儲器)22。R0M21存儲規定處理器I的動作的計算機程序以及數據。計算機程序以及數據也能夠存儲在硬盤裝置25中。處理器I根據需要將R0M21或硬盤裝置25所保存的計算機程序以及數據寫入RAM22,執行計算機程序所規定的處理。RAM22還作為臨時存儲伴隨處理器I執行處理而產生的數據的介質而發揮作用。R0M21包括像閃存(Flash)ROM那樣能夠寫入且即使切斷電源也能夠保持存儲內容的非易失性存儲器和存儲介質。RAM22包括當切斷電源時不保持存儲內容的易失性存儲器和存儲介質。硬盤裝置25是向內置的未圖示的硬盤寫入及從該硬盤讀出計算機程序或數據的裝置。讀取裝置32是讀取記錄在記錄介質31 (例如⑶、DVD、存儲卡等)中的計算機程序或數據的裝置。通信裝置34是通過電話線路、網絡線、無線、Bluetooth (藍牙:注冊商標)、紅外線通信等的通信線路33在外部與自身之間交換計算機程序或數據的裝置。輸入裝置40是通過用戶的操作輸入數據、輸入事件等的裝置,例如是排列在PDA上的鍵盤、排列在便攜電話上的輸入按鈕、觸摸面板、可裝卸的鼠標或鍵盤。顯示裝置45是將數據、圖像等顯示在畫面上或通過聲音將數據等輸出的裝置,例如是LCD (Liquid Crystal Display ;液晶顯不器)、有機EL (有機場致發光)、布勞恩管、揚聲器。計時電路51以一定的周期輸出計時中斷信號的裝置。中斷控制器55是將從計時電路51、輸入裝置40、處理器1、作為網絡設備的通信裝置34、硬盤裝置25以及讀取裝置32等發送的中斷請求信號中轉給處理器I的裝置。來自各裝置的中斷請求中附加有優先級。中斷控制器55具有在從多個裝置同時發生了中斷的情況下根據優先級對這些請求進行調解的功能。如上所述,虛擬計算機系統1000構成為計算機。上述計算機程序既能夠通過R0M21、硬盤裝置25、未圖示的軟盤、⑶-ROM等計算機可讀取的記錄介質31提供,也能夠通過通信線路33等傳輸介質提供。例如,通過將讀取裝置32連接到虛擬計算機系統1000能夠讀取記錄在記錄介質31 (CD-ROM)中的計算機程序。另外,能夠將讀出的計算機程序保存在RAM22或硬盤裝置25中。在從作為程序記錄介質的R0M21提供計算機程序的情況下,通過將該R0M21搭載于虛擬計算機系統1000,處理器I能夠執行按照上述計算機程序的處理。通過通信線路33等傳輸介質提供的計算機程序通過通信裝置34來接收,并保存在例如RAM22或硬盤裝置25中。傳輸介質不限于有線傳輸介質,也可以是無線傳輸介質。而且,傳輸介質不僅包括通信線路,還包括中繼通信線路的中繼裝置、例如路由器。通常,虛擬計算機控制裝置的實體保存在存儲裝置2或硬盤裝置25中,通過與處理器I相協作地執行來實現虛擬計算機控制裝置整體。在如上所述的結構中,虛擬計算機控制裝置能夠作為例如在虛擬計算機系統1000上動作的程序來實現。例如在圖1中,構成虛擬計算機控制裝置的程序以及數據保存在存儲裝置2中,通過由處理器I進行處理而動作。此外,虛擬計算機控制裝置還被稱為虛擬計算機監視器、虛擬管理平臺(hypervisor)。圖2是表示本發明的實施方式的虛擬計算機控制裝置100的功能結構的一例的框圖。在圖2的例子中,虛擬計算機控制裝置100控制兩個虛擬計算機。其中一個是第一虛擬計算機110,另一個是第二虛擬計算機120。在圖2所示的例子中,設第一 0S(操作系統)115在第一虛擬計算機110上運行,第二 0S125在第二虛擬計算機120上運行。在此,第一 0S115和第二 0S125可以分別是不同種類的OS、種類相同而版本不同的OS、種類相同且版本也相同的OS的其中之一。在圖2中,采用CPUO至CPU3作為圖1所示的處理器11至14的一例。另外,在圖2所示的例子中,設第二虛擬計算機120的第二 0S125具備省電控制部
271。一般在OS中具備控制向設備提供的電力使耗電降低的結構。在一般的虛擬計算機系統中,由于多個OS動作,因此有可能多個OS的省電功能工作。省電功能控制對CPU等的處理器以及各種設備的供電,因此在多個OS的省電功能工作的情況下,多個電力控制的請求會發生競爭。為了避免該情況,采用使一個虛擬計算機的OS進行省電控制的方法。在本實施方式中,采用第一 0S115不具備省電功能而讓第二 0S125進行省電控制的方式。作為使第二 0S125進行省電控制的例子,除此之外,還可以采用使第一 0S115所具備的省電功能無效的方法。此外,在圖2所示的虛擬計算機控制裝置100中,中斷保留信息221至虛擬計算機執行狀態管理信息224包含在虛擬計算機控制程序中,加載在RAM等的存儲裝置中來保存。而且,在虛擬計算機控制裝置100中,虛構任務生成請求部200至虛構任務結束請求部206包含在虛擬計算機程序中,由CPU執行來實現。首先,說明第一虛擬計算機110的結構。第一虛擬計算機110具備第一 OSl 15、例示為任務262的作為某些處理單位的0個以上的任務以及閑置任務263。第一 0S115具備任務調度器(task scheduler) 251。閑置任務263具備閑置轉變通知部264。在此,任務一般是指由操作系統分配給CPU來執行的程序的單位,還被稱為進程(process)或線程(thread)。以下,將閑置任務和虛構任務以外的任務只記述為任務。在圖2的例子中,在第一虛擬計算機110中僅記載了任務262,但是也有可能存在多個任務,也有可能除了閑置任務263以外一個任務都不存在。閑置任務263被任務調度器251視為與任務262相比優先級最低的任務。并且,閑置任務263是在某CPU中不存在第一虛擬計算機110應該處理的任務的情況下被調度給該CPU的任務。也就是說,閑置任務263是在某CPU中不存在第一虛擬計算機110應該處理的任務時、即第一虛擬計算機在該CPU處于閑置(idle)狀態時執行的任務。在閑置任務263正在執行的情況下,可視為閑置任務263正在動作的CPU在該時間不存在在第一虛擬計算機110內應該專門進行的處理。閑置任務263在通過任務調度器251被分配執行權時,通過閑置轉變通知部264向虛擬計算機控制裝置100通知第一虛擬計算機110處于閑置狀態。除此之外,閑置任務263可以不進行特殊的處理。一般,作為閑置任務263,考慮可以用發出等待對CPU的中斷的命令的程序、或在忙碌循環中等待對CPU的中斷的程序等安裝。任務調度器251根據任務中被決定的優先級調度第一虛擬計算機110內的任務,并分配給CPU來執行。任務調度器251可以將第一虛擬計算機110內的任務262分配給CPUO至CPU3的其中之一。或者,任務調度器251可以將第一虛擬計算機110的任務262分配給多CPU環境中的其中之一 CPU。若用圖2的例子所示,例如,如果第一虛擬計算機110能夠對CPUO和CPUl分配任務262,則任務調度器251將任務262分配給CPUO和CPUl的其中之一來執行。或者,如果第一虛擬計算機110只能對CPUO分配任務262,則任務調度器251 —定將任務262分配給CPUO來執行。接著,說明第二虛擬計算機120的結構。第二虛擬計算機120具備第二 0S125、例示為任務281和任務282的作為某些處理單位的O個以上的任務、閑置任務284以及根據狀況而生成的虛構任務283。第二 0S125具備省電控制部271、虛構任務生成部272、虛構任務結束部273、虛擬中斷處理部274以及任務調度器275。虛構任務283具備虛構任務轉變通知部285。閑置任務284具備閑置轉變通知部286。任務調度器275根據任務中決定的優先級調度第二虛擬計算機120內的任務,并分配給CPU來執行。任務調度器275將第二虛擬計算機120的任務分配給CPUO至CPU3中的至少兩個CPU。即,假設第二 0S125能夠分配的CPU存在多個。而且,假設第一 0S115能夠分配的CPU中的至少一個CPU也能夠由第二 0S125分配。若用圖2的例子所示,例如,如果第一 0S115只能將任務分配給CPU0,則第二0S125能夠對CPUO分配任務。并且,假設第二 0S125除了 CPUO以外還能夠對一個以上的CPU、例如CPUl分配某些任務。一般,由于各虛擬計算機彼此獨立地動作,因此在各虛擬計算機上執行的OS、任務也彼此不能掌握其它的OS、任務的執行狀況。S卩,第二虛擬計算機120無法掌握第二 0S125正在使用的CPU在第一虛擬計算機110中以何種程度使用。在圖2的例子中,在第二虛擬計算機120中僅記載了任務281和任務282,但是也有可能存在多個任務,也有可能除了閑置任務284以外一個任務都不存在。閑置任務284被任務調度器275視為與其它任務相比優先級最低的任務。而且,閑置任務284是在某CPU中不存在第二虛擬計算機120應該處理的任務的情況下被調度給該CPU的任務。也就是說,閑置任務284是在某CPU中不存在第二虛擬計算機120應該處理的任務時、即第二虛擬計算機120在該CPU處于閑置(idle)狀態時執行的任務。在閑置任務284正在執行的情況下,可視為閑置任務284正在動作的CPU在該時間不存在在第二虛擬計算機120內應該專門進行的處理。通過任務調度器275被分配了對某CPU的執行權的閑置任務284的閑置轉變通知部286向虛擬計算機控制裝置100通知在該CPU中第二虛擬計算機120處于閑置狀態。除此之外,閑置任務284可以不進行特殊的處理。一般,作為閑置任務284,考慮可以用發出等待對CPU的中斷的命令的程序、或在忙碌循環中等待對CPU的中斷的程序等安裝。虛構任務283是在由第一虛擬計算機110處理的任務被分配給未被分配由第二虛擬計算機120處理的任務的CPU的情況下表示該CPU處于使用狀態的任務。也就是說,虛構任務283是用于在第一虛擬計算機110內閑置任務263以外的任務在某CPU中動作的情況下使第二虛擬計算機120識別出在該CPU中第一虛擬計算機110的任務正在動作的任務。由此,第二虛擬計算機120判斷在該CPU中第一虛擬計算機110的任務正在動作,從而能夠防止省電控制部271將該CPU設為省電狀態。通過任務調度器275被分配了 CPU的執行權的虛構任務283的虛構任務轉變通知部285向虛擬計算機控制裝置100通知在該CPU中虛構任務283已被執行。虛構任務283除此之外可以不進行特殊的處理。一般,作為虛構任務283,考慮用發出等待對CPU的中斷的命令的程序、或在忙碌循環中等待對CPU的中斷的程序等加以安裝。第二 0S125除了任務調度器275以外還具備省電控制部271、虛構任務生成部
272、虛構任務結束部273以及虛擬中斷處理部274。
省電控制部271控制對CPUO至CPU3等處理器、各種設備的供電。省電控制部271在控制供電時,一般需要掌握所要控制的CPU等處理器、設備的使用狀況。例如,如果控制對象為CPU,則省電控制部271可以通過監視以何種程度對該CPU分配任務,來掌握CPU的使用狀況。具體而言,省電控制部271在指定的動作時機動作,確認在該動作時機CPU是否處于閑置狀態,由此可以掌握CPU的使用狀況。或者,省電控制部271也可以通過計算表示在何種程度的期間該CPU為閑置狀態的閑置率、或與其相反表示該CPU以何種程度被使用的(PU使用率,來掌握CPU的使用狀況。或者,省電控制部271也可以對第二 0S125能夠分配的各CPU的CPU使用率進行綜合來計算第二虛擬計算機120的CPU使用率以掌握CPU的使用狀況。但是,這些掌握CPU的使用狀況的方法只不過是一例,省電控制部271也可以使用其它方法來掌握CPU的使用狀況。如上所述,一方虛擬計算機無法掌握另一方虛擬計算機的CPU的使用狀況。因此,在以往的虛擬計算機系統中,即使通過一方虛擬計算機的OS的省電功能判斷某CPU處于閑置狀態,也有可能另一方虛擬計算機正在使該CPU動作。因而,在以往的虛擬計算機系統中,OS所具備的省電功能無法正確地掌握各虛擬計算機的CPU或設備的使用狀況。因此,本實施方式如上所述那樣設置虛構任務283,從而解決了該問題。虛擬中斷處理部274接收從虛擬計算機控制裝置100發送的中斷種類以及處理中斷所需的信息,并進行指定的處理。例如,虛擬中斷處理部274判定中斷是否為虛構任務283的生成請求的中斷、或虛構任務283的結束請求的中斷、或除此以外的中斷。然后,如果是虛構任務283的生成請求和結束請求的中斷,則虛擬中斷處理部274從虛擬計算機控制裝置100接收確定應該被分配虛構任務283的CPU的CPU識別信息。然后,虛擬中斷處理部274將表示發生了中斷的信息和CPU識別信息通知給虛構任務生成部272或虛構任務結束部273。當通過虛擬計算機控制裝置100的虛擬計算機切換部204對第二虛擬計算機120分配了執行權時,虛擬中斷處理部274開始動作。具體而言,虛擬計算機切換部204在將某CPU的執行權從第一虛擬計算機110切換到第二虛擬計算機120時,將處理轉移到虛擬中斷處理部274以便虛擬中斷處理部274能夠參照中斷處理所需的信息。例如,虛擬計算機切換部204將確定中斷的中斷號、想要交給虛擬中斷處理部274的值保存在CPU的寄存器中。然后,虛擬計算機切換部204可以采用如下方法,即參照中斷向量,將CPU的執行地址切換為虛擬中斷處理部274所具備的中斷處理程序的地址。或者,作為其它方法,也可以采用如下方法:虛擬中斷處理部274當通過虛擬計算機切換部204被賦予執行權時,向虛擬計算機切換部204詢問有關虛擬計算機控制裝置100所保留的中斷的信息。然后,如果存在應該處理的中斷,則虛擬中斷處理部274獲取有關該中斷的信息,根據該信息來處理中斷。虛構任務生成部272從虛擬中斷處理部274接收虛構任務283的生成請求的通知和確定應該被分配該虛構任務283的CPU的CPU識別信息,生成虛構任務283。具體而言,虛構任務生成部272基于接收到的CPU識別信息生成分配給相應的CPU的虛構任務283。在此,虛構任務生成部272將虛構任務283的優先級設定成比閑置任務284的優先級高。另外,虛構任務生成部272將虛構任務283的優先級設定成比任務281、282的優先級低。在此,閑置任務284的優先級低于虛構任務283的優先級。因此,虛構任務283的優先級低于任務281、282、且高于閑置任務284的優先級。虛構任務283具備虛構任務轉變通知部285。通過任務調度器275被分配了執行權的虛構任務283的虛構任務轉變通知部285向虛擬計算機控制裝置100通知虛構任務283正在動作。虛構任務生成部272例如可以采用如下方法:有效地利用第二 0S125所具備的任務生成處理的功能來生成虛構任務283,使任務調度器275將所生成的虛構任務283作為調度對象進行處理。或者,虛構任務生成部272也可以采用如下方法:預先制作多個虛構任務283,在從虛擬中斷處理部274接收到虛構任務283的生成請求的通知的情況下,基于CPU識別信息選擇相應的虛構任務283,并將所選擇的虛構任務283登記在任務調度器275管理調度對象所用的隊列(例如運行隊列(run queue))中。虛構任務結束部273從虛擬中斷處理部274接收虛構任務結束請求的通知和確定被分配有該虛構任務283的CPU的CPU識別信息,開始動作。虛構任務結束部273基于接收到的CPU識別信息,使分配給相應的CPU的虛構任務283結束。虛構任務結束部273例如可以采用如下方法:有效地利用第二 0S125所具備的任務結束處理的功能,讓任務調度器275從調度對象中排除虛構任務283,從而使虛構任務283結束。或者,虛構任務結束部273也可以采用如下方法:基于從虛擬中斷處理部274通知的CPU識別信息選擇虛構任務283,讓任務調度器275從調度對象中排除所選擇的虛構任務283從而使虛構任務283結束。接著,說明虛擬計算機控制裝置100的結構。虛擬計算機控制裝置100具備虛構任務生成請求部200、動作CPU判定部201、虛擬計算機切換部204、中斷判定部205以及虛構任務結束請求部206。而且,虛擬計算機控制裝置100保持中斷保留信息221、調度策略(schedule policy)管理信息222、可分配CPU信息223以及虛擬計算機執行狀態管理信息224并進行管理。另外,虛構任務生成請求部200包括生成判定部202和生成請求通知部203。虛構任務生成請求部200在由第一虛擬計算機110處理的任務被分配給未被分配由第二虛擬計算機120處理的任務的CPU的情況下,生成表示該CPU處于使用狀態的虛構任務283的生成請求并通知給第二 0S125。動作CPU判定部201從多個CPU中確定虛擬計算機切換部204接著應該分配執行權的一個CPU。而且,動作CPU判定部201判定切換執行權之前的虛擬計算機在哪一個CPU中進行了動作。后面將說明動作CPU判定部201的動作的一例。生成判定部202判定是否在第二虛擬計算機120中生成虛構任務283。而且,生成判定部202當判定需要生成虛構任務283時,將虛構任務283的生成委托通知給生成請求通知部203。后面將說明生成判定部202的動作的一例。生成請求通知部203當從生成判定部202受理了虛構任務283的生成委托時,對第二 0S125通知虛構任務283的生成請求。后面將說明生成請求通知部203的動作的一例。虛擬計算機切換部204當接收到虛擬計算機的執行權的切換請求時,基于中斷保留信息221、調度策略管理信息222、可分配CPU信息223以及虛擬計算機執行狀態管理信息224的其中之一,判定將執行權切換到哪一個虛擬計算機,對判定出的虛擬計算機分配執行權。后面將說明虛擬計算機切換部204的動作的一例。中斷判定部205當從例如圖1所示的中斷控制器55獲取到中斷時,基于調度策略管理信息222和虛擬計算機執行狀態管理信息224向虛擬計算機切換部204發出通知,使獲取到的中斷由虛擬計算機來處理,或者保留獲取到的中斷并登記到中斷保留信息221中。虛構任務結束請求部206當從虛擬計算機切換部204接收到虛構任務283的結束委托時,對第二 0S125通知虛構任務283的結束請求。后面將說明虛構任務結束請求部206的動作的一例。接著,說明動作CPU判定部201的動作的一例。在分配給虛擬計算機的某CPU變為閑置狀態,并且該CPU放棄執行權而使控制轉移到虛擬計算機控制裝置100的情況下,動作CPU判定部201確定變為閑置狀態的CPU,并將所確定的CPU的CPU識別信息通知給虛擬計算機切換部204、生成判定部202、生成請求通知部203以及虛構任務結束請求部206。例如,動作CPU判定部201判定第一虛擬計算機110在哪一個CPU變為閑置狀態,將變為閑置狀態的CPU的CPU識別信息通知給虛構任務結束請求部206。而且,在第二虛擬計算機120中,虛構任務283動作,當通過第二虛擬計算機120放棄某一個CPU的執行權時,控制轉移到虛擬計算機控制裝置100。在這種情況下,動作CPU判定部201確定虛構任務283已經動作的CPU,將所確定的CPU的CPU識別信息通知給虛擬計算機切換部204。在此,動作CPU判定部201例如可以向各CPU詢問當前的執行狀態,基于來自各CPU的回答來判定各CPU的執行狀態,從而確定虛構任務283已經動作的CPU。或者,動作CPU判定部201例如可以通過參照由虛擬計算機控制裝置100管理的有關各CPU的執行狀態的信息來確定各CPU的執行狀態,從而確定虛構任務283已經動作的CPU。此外,動作CPU判定部201也可以在自己的處理程序中通過上述手段確認自己被分配給哪一個CPU。接著,說明動作CPU判定部201的動作的其它例子。在對虛擬計算機發生了中斷的情況下,動作CPU判定部201被中斷判定部205通知是對哪一個CPU的中斷,并將相應的CPU的CPU識別信息通知給生成請求通知部203。或者,在發生了對虛擬計算機的中斷的情況下,動作CPU判定部201參照中斷保留信息221,判定中斷是否被保留,如果中斷被保留,則判定所保留的中斷是對哪一個CPU的中斷,并將相應的CPU的CPU識別信息通知給生成請求通知部203。接著,說明生成判定部202的動作的一例。生成判定部202在虛擬計算機切換部204將執行權從第二虛擬計算機120切換到第一虛擬計算機110的流程圖(后述的圖7、圖
10、圖11、圖12)中動作。生成判定部202當從動作CPU判定部201獲取到CPU識別信息時,參照虛擬計算機執行狀態管理信息224,確認相應的CPU中第一虛擬計算機110的執行狀態。如果第一虛擬計算機110的執行狀態為閑置狀態,則意味著第一虛擬計算機110從閑置狀態向產生應該處理的任務的忙碌狀態轉變。因此,生成判定部202在某CPU的執行權被切換到第一虛擬計算機110時,如果該CPU中第一虛擬計算機110的執行狀態為閑置狀態,則將虛構任務283的生成委托通知給生成請求通知部203。此時,生成判定部202將從閑置狀態轉變為有任務狀態的CPU的CPU識別信息也一起通知給生成請求通知部203。圖3是表示虛擬計算機執行狀態管理信息224的數據結構的一例的圖。下面利用圖3具體說明生成判定部202的動作。在圖3的例子中,示出虛擬計算機系統1000具備四個CPU時的虛擬計算機執行狀態管理信息224。在圖3的例子中,虛擬計算機執行狀態管理信息224針對各CPU管理當前被分配有執行權的虛擬計算機、第一虛擬計算機110的執行狀態以及第二虛擬計算機120的執行狀態。第一虛擬計算機的執行狀態和第二虛擬計算機的執行狀態包括表示正在執行某些任務的忙碌狀態的“有任務”、表示不存在執行的任務的狀態的“閑置狀態”、表示正在執行虛構任務283的狀態的“有虛構任務”以及表示是不能分配給第一虛擬計算機的CPU的“不能分配”。在圖3的例子中,當生成判定部202從動作CPU判定部201接收到“CPU3”作為CPU識別信息的通知時,由于第一虛擬計算機的執行狀態為閑置狀態,因此生成判定部202判定需要生成虛構任務283,將虛構任務283的生成委托通知給生成請求通知部203。接著,說明生成請求通知部203的動作的一例。生成請求通知部203在虛擬計算機切換部204將執行權從第二虛擬計算機120切換到第一虛擬計算機110時執行的流程(后述的圖7、圖10、圖11、圖12)中動作。生成請求通知部203當從生成判定部202接收到虛構任務283的生成委托和執行虛構任務283的CPU的CPU識別信息的通知時,將虛構任務283的生成請求通知給第二 0S125。或者,生成請求通知部203當從虛擬計算機切換部204接收到虛構任務283的生成委托和執行虛構任務283的CPU的CPU識別信息的通知時,將虛構任務283的生成請求通知給第二虛擬計算機 120 的第二 0S125。生成請求通知部203將從生成判定部202或虛擬計算機切換部204通知的生成委托和CPU識別信息變換為第二 0S125能夠識別的形式后通知虛構任務283的生成請求。在此,作為通知生成請求的方法,例如考慮將用于生成虛構任務283的虛擬中斷發送給第二 0S125的方法。例如,預先決定意味著虛構任務283的生成請求的虛擬中斷的中斷號,生成請求通知部203可以將該中斷號和執行虛構任務283的CPU的CPU識別信息登記到圖4所示的中斷保留信息221中。也就是說,采用如下方式:生成請求通知部203當被通知虛構任務283的生成委托時,不是將虛構任務283的生成請求立即通知給第二 0S125,而是將虛擬中斷登記到中斷保留信息221中。然后,在執行權從第一虛擬計算機110被切換到第二虛擬計算機120的時機到來時,生成請求通知部203將登記在虛擬中斷保留信息221中的虛擬中斷通知給第二OS 125,向第二 OS 125通知虛構任務283的生成請求。在這種情況下,虛構任務結束請求部206當生成了虛構任務283的結束請求時將該結束請求作為虛擬中斷登記到中斷保留信息221中,在執行權從第一虛擬計算機110被切換到第二虛擬計算機120時,將虛構任務283的結束請求作為虛擬中斷通知給第二0S125。然后,生成請求通知部203在通知虛構任務283的生成請求時,如果在中斷保留信息221中登記有虛構任務283的結束請求的虛擬中斷,則刪除該虛擬中斷,可以將該生成請求和該結束請求相抵消。由此,防止在生成了虛構任務283之后立即結束虛構任務283的情況,從而能夠削減處理的開銷(overhead)。但是,并不限定于此,生成請求通知部203也可以采用當生成虛構任務283時立即向第二 0S125通知虛構任務283的生成請求的方式。圖4是表示中斷保留信息221的數據結構的一例的圖。下面利用圖4說明生成請求通知部203的動作。在圖4的中斷保留信息221中,記錄有作為唯一確定所發生的中斷的中斷識別信息的“發生的中斷號”、表示是向哪一個虛擬計算機發送的中斷的“發送目的地的虛擬計算機”、以及表示向哪一個CPU發送中斷的“發送目的地的CPU”。另外,中斷保留信息221也可以記錄決定了應該優先發送哪一個中斷的“中斷的優先級”。例如,假設意味著虛構任務283的生成請求的虛擬中斷的中斷號是IRQ6,則生成請求通知部203所獲取到的CPU識別信息為CPU3。在這種情況下,如圖4的記錄401所示,在中斷保留信息221中,作為“發生的中斷號”登記有“IRQ6”,作為“發送目的地的虛擬計算機”登記有“第二虛擬計算機”,作為“發送目的地的CPU”登記有“CPU3”。此外,在上述說明中,生成請求通知部203僅通知虛構任務283的生成請求,而不進行虛構任務283的生成。但是,并不限定于此,生成請求通知部203也可以在第二虛擬計算機120中直接生成虛構任務283。在這種情況下,生成請求通知部203執行第二虛擬計算機120所具備的虛構任務生成部272和虛擬中斷處理部274的功能即可。一般,第二虛擬計算機120的任務調度器275用稱為運行隊列的隊列來管理任務的執行狀態。任務調度器275將處于可執行狀態的任務連接到運行隊列,對所連接的任務中的一個任務分配執行權。作為生成請求通知部203在第二虛擬計算機120中直接生成虛構任務283的具體方法,例如可以采用將預先在第二 0S125內生成的虛構任務283連接到由任務調度器275管理的運行隊列的方法。更具體而言,虛擬計算機控制裝置100能夠訪問第二虛擬計算機120的存儲空間。因此,設置在虛擬計算機控制裝置100中的生成請求通知部203可以改寫運行隊列的存儲內容,使預先生成的虛構任務283連接到第二虛擬計算機120的運行隊列。存儲空間的運行隊列的存儲地址可以采用預先靜態地決定的存儲地址,也可以通過在系統的初始化時或啟動時從第二虛擬計算機120向虛擬計算機控制裝置100通知指定的存儲地址,來采用該存儲地址。在此,作為系統的初始化時,除了第二虛擬計算機120的初始化時以外,也可以是虛擬計算機系統1000的初始化時、第二 0S125的初始化時等。另夕卜,作為運行隊列的存儲地址的確定方法,在CPU的寄存器中登記有分配給該CPU的任務的存儲地址的情況下,可以將登記在該寄存器中的存儲地址確定為第二虛擬計算機120的運行隊列的存儲地址。接著,說明虛擬計算機切換部204的動作的一例。當產生了虛擬計算機的切換請求時,虛擬計算機切換部204基于中斷保留信息221、調度策略管理信息222、可分配CPU信息223以及虛擬計算機執行狀態管理信息224的至少其中之一,對多個虛擬計算機的其中之一的虛擬計算機分配執行權。圖5是表示可分配CPU信息223的數據結構的一例的圖。可分配CPU信息223登記哪個CPU能夠分配給哪個虛擬計算機。虛擬計算機切換部204當在某CPU中產生了虛擬計算機的切換請求時,參照可分配CPU信息223,識別能夠在該CPU分配執行權的虛擬計算機。
可分配CPU信息223典型的是在系統的初始化時或在系統的啟動時被設定。可分配CPU信息223只要是能夠管理各虛擬計算機與能夠分配的CPU之間的對應關系的信息,可以采用任何數據形式。從圖5的例子可知,對第一虛擬計算機110能夠分配CPU3,但是對第一虛擬計算機110不能分配CPU3以外的CPU。在圖5的例子中,當在CPU3產生了虛擬計算機的切換請求時,虛擬計算機切換部204將第一虛擬計算機110和第二虛擬計算機120設為執行權的分配對象。或者,在圖5的例子中,當在CPU3以外的CPU產生了虛擬計算機的切換請求時,虛擬計算機切換部204僅將第二虛擬計算機120設為執行權的分配對象。圖6是表示調度策略管理信息222的數據結構的一例的圖。調度策略管理信息222是虛擬計算機的執行權的切換方式已被規定的信息。具體而言,調度策略管理信息222包含:對第一、第二虛擬計算機110、120分配執行權時的優先級被固定的固定優先級策略601 ;以分時方式分配第一、第二虛擬計算機110、120的執行權的分時策略602。除此之外,調度策略管理信息222也可以在分時策略602中采用切換執行權時動態地變更優先級的分時策略。虛擬計算機切換部204按照在固定優先級策略601或分時策略602中規定的優先級,決定對哪個虛擬計算機分配執行權。例如,在采用固定優先級策略601作為執行權的切換方式的情況下,若假定優先級的值大的一方的優先級高,則虛擬計算機切換部204優先于第二虛擬計算機120而對第一虛擬計算機110分配執行權。另一方面,在采用分時策略602作為執行權的切換方式的情況下,在分時策略602中,第一、第二虛擬計算機110、120的優先級被設定為相同。因此,虛擬計算機切換部204與優先級無關地將時間片(time slice)(或者有時被稱為“時間量子(time quantum)”。)交替地分配給第一、第二虛擬計算機110、120,當一方虛擬計算機用盡時間片時,將執行權切換到另一方虛擬計算機。對虛擬計算機切換部204的執行權的切換請求通過各種契機而產生。作為各種契機,可列舉例如,第一虛擬計算機110執行閑置任務263而變為閑置狀態,閑置轉變通知部264將該情況通知給虛擬計算機切換部204。另外,作為各種契機,還可列舉例如第二虛擬計算機120在某CPU執行閑置任務284而在該CPU處于閑置狀態,閑置轉變通知部286將該情況通知給虛擬計算機切換部204。而且,作為各種契機,還可列舉例如在采用分時策略602作為執行權的切換方式的情況下,某虛擬計算機用盡時間片。另外,作為各種契機,還可列舉例如在采用固定優先級策略601作為執行權的切換方式的情況下,對優先級比當前正在執行處理的虛擬計算機高的虛擬計算機的中斷發生。當上述的契機發生時,虛擬計算機切換部204將執行權切換到優先級高的虛擬計算機、或沒有用盡時間片的虛擬計算機、或不處于閑置狀態的虛擬計算機。虛擬計算機切換部204通過動作CPU判定部201或中斷判定部205被通知應該切換執行權的CPU的CPU識別信息。虛擬計算機切換部204在對某CPU切換虛擬計算機的執行權的情況下,將虛擬計算機執行狀態管理信息224中的有關該CPU的信息更新為切換后的信息,然后切換該CPU的執行權。中斷判定部205例如在通過中斷控制器55被通知中斷時,判定該中斷的內容。在此,作為中斷的內容,可列舉有關作為中斷對象的虛擬計算機、或作為中斷對象的CPU的信息。在此,各虛擬計算機預先向虛擬計算機控制裝置100通知需要哪個中斷。或者,虛擬計算機控制裝置100預先決定各虛擬計算機所需的中斷。然后,中斷判定部205將中斷號與中斷的內容對應起來進行管理。因而,中斷判定部205在通過中斷控制器55指定中斷號而被通知了中斷時,能夠根據所通知的中斷號判定作為中斷對象的虛擬計算機和CPU。例如,假設在采用分時策略602作為執行權的切換方式的情況下,某虛擬計算機用盡某CPU的時間片而超時。在這種情況下,中斷判定部205通過中斷控制器55被通知計時中斷。然后,中斷判定部205將在分時調度時登記的計時中斷的中斷號通知給虛擬計算機切換部204,并且利用預先登記的計時處理用的中斷處理程序向虛擬計算機切換部204通知在該CPU中發生了計時中斷。而且,在發生了中斷的情況下,中斷判定部205將中斷號、中斷的發送目的地的虛擬計算機、中斷的發送目的地的CPU以及其它的處理該中斷所需的信息通知給虛擬計算機切換部204。在此,當虛擬計算機切換部204判定不應該立即發送中斷時,中斷判定部205將所發生的中斷的中斷號、發送目的地的虛擬計算機以及發送目的地的CPU登記到中斷保留信息221中。接著,說明虛構任務結束請求部206的動作的一例。虛構任務結束請求部206在執行第一虛擬計算機110變為閑置狀態、虛擬計算機切換部204將執行權從第一虛擬計算機110切換到第二虛擬計算機120的流程圖(后述的圖8)時動作。虛構任務結束請求部206當從虛擬計算機切換部204接收到虛構任務283的結束委托并從動作CPU判定部201接收到CPU識別信息時,生成虛構任務283的結束請求,并將虛構任務283的結束請求通知給第二 0S125。虛構任務結束請求部206將從動作CPU判定部201和虛擬計算機切換部204通知的結束委托和CPU識別信息變換為第二 0S125能夠識別的形式后通知虛構任務283的結束請求。在此,作為通知結束請求的方法,例如考慮將用于結束虛構任務283的虛擬中斷發送給第二 0S125的方法。例如,預先決定意味著虛構任務283的結束請求的虛擬中斷用的中斷號,虛構任務結束請求部206可以將該中斷號和要結束虛構任務283的CPU的CPU識別信息登記到圖4所示的中斷保留信息221中。接著,利用圖4所示的中斷保留信息221具體說明虛構任務結束請求部206的動作。例如,假設意味著虛構任務283的結束請求的虛擬中斷的中斷號是IRQ7,虛構任務結束請求部206所獲取到的CPU識別信息是CPU3。在這種情況下,如圖4的記錄402所示,在中斷保留信息221中,作為“發生的中斷號”登記有“IRQ7”,作為“發送目的地的虛擬計算機”登記有“第二虛擬計算機”,作為“發送目的地的CPU”登記有CPU3的CPU識別信息的 “CPU3”。此外,在上述說明中,虛構任務結束請求部206僅通知虛構任務283的結束請求,不直接使虛構任務283結束。但是,并不限定于此,虛構任務結束請求部206也可以直接結束第二虛擬計算機120的虛構任務283。在這種情況下,虛構任務結束請求部206執行第二虛擬計算機120所具備的虛構任務結束部273和虛擬中斷處理部274的功能即可。
虛構任務結束請求部206可以采用例如從任務調度器275所管理的運行隊列中搜索作為對象的虛構任務283并從運行隊列中取消搜索到的虛構任務283的方法作為在第二虛擬計算機120直接結束虛構任務283的具體方法。更具體而言,虛擬計算機控制裝置100能夠訪問第二虛擬計算機120的存儲空間。因此,設置在虛擬計算機控制裝置100中的虛構任務結束請求部206可以改寫運行隊列的存儲內容,以便從第二虛擬計算機120的運行隊列取消被搜索到的虛構任務283。存儲空間中的運行隊列的存儲地址可以采用預先靜態地決定的存儲器地址,也可以在系統的初始化時或啟動時從第二虛擬計算機120向虛擬計算機控制裝置100通知指定的存儲器地址,來采用該存儲地址。在此,作為系統的初始化時,除了第二虛擬計算機120的初始化時以外,還可以是虛擬計算機系統1000的初始化時、第二0S125的初始化時等。另夕卜,作為運行隊列的存儲地址的確定方法,在CPU的寄存器中登記有分配給該CPU的任務的存儲地址的情況下,也可以將登記在該寄存器中的存儲地址確定為第二虛擬計算機120的運行隊列的存儲地址。另外,虛構任務結束請求部206也可以采用在執行權被切換到第二虛擬計算機120的時機到來時將虛構任務283的結束請求通知給第二 0S125的方式。在這種情況下,虛構任務結束請求部206在虛構任務283的結束請求被生成時,將該結束請求作為虛擬中斷登記到中斷保留信息221即可。在這種情況下,可以采用如下方式,S卩,生成請求通知部203在生成了虛構任務283的生成請求時將該生成請求作為虛擬中斷登記到中斷保留信息221中,在執行權從第一虛擬計算機110被切換到第二虛擬計算機120時,將虛構任務283的結束請求作為虛擬中斷通知給第二 OS 125。然后,虛構任務結束請求部206在通知虛構任務283的結束請求時,如果在中斷保留信息221中登記有虛構任務283的生成請求的虛擬中斷,則刪除該虛擬中斷,使該生成請求和該結束請求相抵消即可。由此,防止在虛構任務283結束之后立即生成虛構任務283的情況,從而能夠削減處理的開銷。但是,并不限定于此,虛構任務結束請求部206也可以采用當生成虛構任務283時立即向第二 0S125通知虛構任務283的結束請求的方式。圖7是表示基于本實施方式的虛擬計算機控制裝置100生成虛構任務283的生成請求時的動作的流程圖。首先,通過上述的某種契機,執行權從第二虛擬計算機120向第一虛擬計算機110的切換請求被通知給虛擬計算機切換部204(S701)。這表示有可能在第一虛擬計算機110中產生了應該新處理的任務。接著,動作CPU判定部201從多個CPU中確定執行權被分配給第一虛擬計算機110的CPU (S702)。然后,動作CPU判定部201將確定的CPU的CPU識別信息通知給虛擬計算機切換部204、生成判定部202、生成請求通知部203以及虛構任務結束請求部206。由此,虛擬計算機切換部204、生成判定部202、生成請求通知部203以及虛構任務結束請求部206能夠確定執行權被切換的CPU。接著,生成判定部202參照圖3所示的虛擬計算機執行狀態管理信息224,確認在相應的CPU中第一虛擬計算機110是否處于閑置狀態(S703)。在圖3的例子中,假設CPU3被確定為通過動作CPU判定部201執行權被切換的CPU。在這種情況下,生成判定部202判定在CPU3中第一虛擬計算機110處于閑置狀態。在此,如果在執行權被切換的CPU中第一虛擬計算機110處于閑置狀態,則生成判定部202能夠判定在該CPU中第一虛擬計算機110從不進行任何處理的狀態向產生了新處理的狀態轉變。因而,如果在該CPU中第一虛擬計算機110處于閑置狀態(在S704中為“是”),則生成判定部202判定需要生成虛構任務283,并將虛構任務283的生成委托通知給生成請求通知部203。然后,生成請求通知部203在第二虛擬計算機120中生成分配給該CPU的虛構任務283的生成請求(S705)。在此,在采用等待執行權從第一虛擬計算機110切換到第二虛擬計算機120后將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以不將所生成的虛構任務283的生成請求通知給第二 0S125而登記到虛擬中斷保留信息221中。另一方面,在采用不等待執行權從第一虛擬計算機110切斷到第二虛擬計算機120而將生成請求通知給第二 0S125的方式的情況下,生成請求通知部203可以立即將生成請求通知給第二 0S125。如果在執行權被切換的CPU中第一虛擬計算機110不處于閑置狀態(在S704中為“否”),則生成判定部202判定不需要生成虛構任務283,使處理進入S706。也就是說,在執行權被切換的CPU中第一虛擬計算機110不處于閑置狀態被認為是第一虛擬計算機110從以前開始利用該CPU執行某些任務,已經生成了對應的虛構任務283。因而,在這種情況下,生成判定部202判定不需要生成虛構任務283。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關執行權被切換的CPU的信息(S706)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對執行權被切換的CPU,將“分配有執行權的虛擬計算機”變更為“第一虛擬計算機”,將“第一虛擬計算機的執行狀態”變更為“有任務”,并根據需要將“第二虛擬計算機的執行狀態”變更為“有虛構任務”。接著,虛擬計算機切換部204將相應的CPU的執行權從第二虛擬計算機120切換到第一虛擬計算機110(S707)。這樣,在執行權從第二虛擬計算機120切換到第一虛擬計算機110時,如果執行權被切換的CPU中第一虛擬計算機110的執行狀態為閑置狀態,則生成判定部202判定生成虛構任務283。然后,生成請求通知部203向第二 0S125通知生成請求。圖8是表示本實施方式的虛擬計算機控制裝置100生成虛構任務283的結束請求時的動作的流程圖。首先,第一虛擬計算機110在CPU3中執行閑置任務,轉變為閑置狀態(S801)。這表示到此為止在第一虛擬計算機110中執行的任務沒有了,第一虛擬計算機110應該處理的任務消失。接著,閑置轉變通知部264向虛擬計算機切換部204通知第一虛擬計算機110從忙碌狀態轉變為閑置狀態(S802)。接著,動作CPU判定部201確定由第一虛擬計算機110執行了閑置任務的CPU (S803)。然后,動作CPU判定部201將確定的CPU的CPU識別信息通知給虛擬計算機切換部204和生成請求通知部203。由此,虛擬計算機切換部204和生成請求通知部203能夠確定執行權被切換的CPU。接著,虛構任務結束請求部206生成虛構任務283的結束請求。(S804)。在此,在采用等待執行權從第一虛擬計算機110切換到第二虛擬計算機120后將生成請求和結束請求通知給第二OS125的方式的情況下,生成請求通知部203可以不將所生成的虛構任務283的結束請求通知給第二 OS125而登記到中斷保留信息221中。另一方面,在采用不等待執行權從第一虛擬計算機110切換到第二虛擬計算機120而將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以立即將生成請求通知給第二 0S125。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關執行權被切換的CPU的信息(S805)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對執行權被切換的CPU,將“分配有執行權的虛擬計算機”變更為“第二虛擬計算機”,將“第一虛擬計算機的執行狀態”變更為“閑置狀態”,并根據需要將“第二虛擬計算機的執行狀態”變更為“閑置狀態”或“有任務”。接著,虛擬計算機切換部204對第二虛擬計算機120分配相應的CPU的執行權(S806)。圖9是表示本實施方式的虛擬計算機控制裝置100向第二 0S125通知虛構任務283的生成請求和結束請求時的動作的流程圖。此外,圖9的流程圖是在采用了等待執行權從第一虛擬計算機110切換到第二虛擬計算機120后將生成請求和結束請求通知給第二0S125的方式時的流程圖。首先,通過某種契機,執行權從第一虛擬計算機110向第二虛擬計算機120的切換請求被通知到虛擬計算機切換部204。然后,虛擬計算機切換部204將某CPU的執行權從第一虛擬計算機110切換到第二虛擬計算機120(S901)。在此,虛擬計算機切換部204在切換虛擬計算機時,可以基于從中斷判定部205獲取的有關中斷的信息、或記錄在中斷保留信息221中的有關中斷的信息,判定切換目的地的虛擬計算機是第二虛擬計算機120。接著,第二 0S125的虛擬中斷處理部274接收從生成請求通知部203通知的虛構任務283的生成請求的虛擬中斷、或從虛構任務結束請求部206通知的虛構任務283的結束請求的虛擬中斷(S902)。接著,虛擬中斷處理部274判定接收到的虛擬中斷是虛構任務283的生成請求的虛擬中斷、還是虛構任務283的結束請求的虛擬中斷(S903)。然后,如果接收到的虛擬中斷是虛構任務283的生成請求的虛擬中斷(在S903中為“生成請求”),則虛擬中斷處理部274從生成請求通知部203接收被分配虛構任務283的CPU的CPU識別信息,并將發生了虛構任務283的生成請求的虛擬中斷的事實和CPU識別信息通知給虛構任務生成部272。接著,虛構任務生成部272生成分配給根據CPU識別信息指定的CPU的虛構任務283 (S904)。另一方面,如果接收到的虛擬中斷是虛構任務283的結束請求的虛擬中斷(在S903中為“結束請求”),則虛擬中斷處理部274從虛構任務結束請求部206接收被分配虛構任務283的CPU的CPU識別信息。然后,虛擬中斷處理部274將發生了虛擬中斷的事實和CPU識別信息通知給虛構任務結束部273。接著,虛構任務結束部273使分配給根據CPU識別信息指定的CPU的虛構任務283結束(S905)。圖10是表示以第二虛擬計算機120從忙碌狀態轉變為閑置狀態為契機來生成虛構任務283的生成請求時的動作的流程圖。首先,第二虛擬計算機120在某CPU中執行閑置任務284,在該CPU中從忙碌狀態轉變為閑置狀態(S1001)。這表示到此為止第二虛擬計算機120在該CPU中執行的任務沒有了,第二虛擬計算機120應該處理的任務消失。接著,閑置轉變通知部286向虛擬計算機切換部204通知第二虛擬計算機120從忙碌狀態轉變為閑置狀態(S1002)。接著,動作CPU判定部201確定通過第二虛擬計算機110執行了閑置任務的CPU(S1003)。然后,動作CPU判定部201將確定的CPU的CPU識別信息通知給虛擬計算機切換部204和生成請求通知部203。由此,虛擬計算機切換部204和生成請求通知部203能夠確定執行權被切換的CPU。在本實施方式所涉及的虛擬計算機控制裝置100中,如果第一虛擬計算機110在某CPU中正在執行閑置任務263以外的任務,第二虛擬計算機120在該CPU中優先于閑置任務284執行虛構任務283。因而,當第二虛擬計算機120在某CPU中正在執行閑置任務284時,第一虛擬計算機110在該CPU中執行閑置任務。因此,在以第二虛擬計算機120在某CPU中從忙碌狀態轉變為閑置狀態為契機而產生了虛擬計算機的切換請求的情況下,生成判定部202由于清楚第一虛擬計算機110在該CPU中處于閑置狀態,因此不需要確認第一虛擬計算機110在該CPU中是否處于閑置狀態。接著,生成判定部202參照中斷保留信息221,確認是否登記有作為對第一虛擬計算機Iio的虛擬中斷的、對相應的CPU的虛擬中斷(S1004)。然后,如果在執行權被切換的CPU中登記有對第一虛擬計算機110的虛擬中斷,則生成判定部202判定第一虛擬計算機110在該CPU中從不進行任何處理的狀態向產生了新處理的狀態轉變。接著,在該CPU中對第一虛擬計算機110的虛擬中斷被登記在中斷保留信息221中的情況下(在S1005中為“是”),生成判定部202判定需要生成虛構任務283,并將虛構任務283的生成委托通知給生成請求通知部203。然后,生成請求通知部203生成虛構任務283的生成請求(S1006)。在此,在采用等待執行權從第一虛擬計算機110切換到第二虛擬計算機120后將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以將所生成的虛構任務283的結束請求登記到中斷保留信息221中。另一方面,在采用不等待執行權從第一虛擬計算機110切換到第二虛擬計算機120而將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以立即將生成請求通知給第二 0S125。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關相應的CPU的信息(S1007)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對執行權被切換的CPU,將“分配有執行權的虛擬計算機”變更為“第一虛擬計算機”,將“第一虛擬計算機的執行狀態”變更為“有任務”,將“第二虛擬計算機的執行狀態”變更為“有虛構任務”。接著,虛擬計算機切換部204將相應的CPU的執行權切換到第一虛擬計算機110(S1007)。另一方面,在相應的CPU中對第一虛擬計算機110的虛擬中斷未被登記在中斷保留信息221中的情況下(在S1005中為“否”),虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關該CPU的信息(S1008)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對該CPU,將“分配有執行權的虛擬計算機”變更為“第二虛擬計算機”,將“第二虛擬計算機120的執行狀態”變更為“閑置狀態”。然后,虛擬計算機切換部204將該CPU的執行權切換到第二虛擬計算機120(S1008)。此外,在S1008中,虛擬計算機切換部204將執行權切換到第二虛擬計算機120,但是將執行權切換到第一虛擬計算機110也沒問題。這樣,在某處理器中第二虛擬計算機120從任務的執行狀態轉變為閑置狀態時,如果在該處理器中存在第一虛擬計算機110應該處理的待機處理的任務,則生成判定部202判定生成虛構任務283。然后,生成請求通知部203生成虛構任務283的生成請求。圖11是表示在采用了以分時方式分配第一、第二虛擬計算機110、120的執行權的分時策略602的情況下第二虛擬計算機120用盡時間片時的處理的流程圖。首先,中斷判定部205從中斷控制器55受理計時中斷(SllOl)。接著,中斷判定部205判定在哪個CPU中虛擬計算機用盡時間片而發生了計時中斷(S1102)。接著,虛擬計算機切換部204參照虛擬計算機執行狀態管理信息224,確認在相應的CPU中被分配執行權的虛擬計算機是第二虛擬計算機120(S1103)。接著,生成判定部202參照虛擬計算機執行狀態管理信息224,確認在相應的CPU中第一虛擬計算機110是否處于閑置狀態(S1104)。如果在相應的CPU中第一虛擬計算機不處于閑置狀態(在S1105中為“否”),則認為由于從以前開始在相應的CPU中執行了某些任務,因此已經生成了對應的虛構任務283。因而,在S1105中為“否”的情況下,生成判定部202不進行虛構任務283的生成請求而使處理進入S1110。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關相應的CPU的信息,并將相應的CPU的執行權切換到第一虛擬計算機110(S1110)。另一方面,如果在相應的CPU中第一虛擬計算機110處于閑置狀態(在S1105中為“是”),則生成判定部202參照中斷保留信息221,確認是否發生了作為對第一虛擬計算機110的虛擬中斷的、對相應的CPU的虛擬中斷(S1106)。然后,在存在作為對第一虛擬計算機110的虛擬中斷的、對相應的CPU的虛擬中斷的情況下(在S1107中為“是”),生成判定部202判定生成虛構任務283,并將虛構任務283的生成委托通知給生成請求通知部203。然后,生成請求通知部203生成虛構任務283的生成請求(S1108)。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關相應的CPU的信息,并將相應的CPU的執行權切換到第一虛擬計算機110 (SI 109)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對執行權被切換的CPU,將“分配有執行權的虛擬計算機”變更為“第一虛擬計算機”,將“第一虛擬計算機的執行狀態”變更為“有任務”,并根據需要將“第二虛擬計算機的執行狀態”變更為“有任務”或“閑置狀態”。另一方面,在不存在作為對第一虛擬計算機110的虛擬中斷的、對相應的CPU的虛擬中斷的情況下(在S1007中為“否”),虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關相應的CPU的信息,并將相應的CPU的執行權切換到第二虛擬計算機120 (SI 111)。此外,在SI 111中,虛擬計算機切換部204將相應的CPU的執行權切換到第二虛擬計算機12,但也可以將執行權切換到第一虛擬計算機110。
這樣,在以分時方式對第一、第二虛擬計算機110、120分配某CPU的執行權的情況下,當第二虛擬計算機120用盡時間片時,如果在該CPU中第一虛擬計算機110的執行狀態為閑置狀態、且存在第一虛擬計算機110應該處理的待機處理的任務,則生成判定部202判定生成虛構任務283。圖12是表示在采用了利用固定優先級策略601決定第一、第二虛擬計算機110、120的執行權的結構的情況下,在第二虛擬計算機120的任務的執行過程中發生了對第一虛擬計算機110的中斷時的處理的流程圖。此外,在以下說明中,假設第一虛擬計算機110的優先級高于第二虛擬計算機120的優先級。首先,中斷判定部205從中斷控制器55受理中斷(S1201)。接著,中斷判定部205確認所受理的中斷是對第一虛擬計算機HO的中斷。而且,中斷判定部205判定所受理的中斷是對哪一個CPU的中斷(S1202)。接著,虛擬計算機切換部204為了判定是否切換虛擬計算機的執行權,參照固定優先級策略601 (S1203)。在此,虛擬計算機切換部204判定第一虛擬計算機110的優先級高于第二虛擬計算機120的優先級。因此,虛擬計算機切換部204對第一虛擬計算機110發送發生的中斷,并判定將執行權切換到第一虛擬計算機110。在第一虛擬計算機110的優先級高于第二虛擬計算機120的情況下,如果第二虛擬計算機120的執行狀態為有任務,則第一虛擬計算機110在相應的CPU中處于閑置狀態。因而,在使第一虛擬計算機110中斷的情況下,虛擬計算機切換部204能夠判定在第一虛擬計算機110中產生了應該新處理的任務。接著,生成請求通知部203判定需要對相應的CPU生成虛構任務283,將虛構任務283的生成委托通知給生成請求通知部203。然后,生成請求通知部203生成虛構任務283的生成請求(SI204)。在此,在采用等待執行權從第一虛擬計算機110切換到第二虛擬計算機120后將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以不將所生成的虛構任務283的結束請求通知給第二 0S125而登記到中斷保留信息221中。另一方面,在采用不等待執行權從第一虛擬計算機110切換到第二虛擬計算機120而將生成請求和結束請求通知給第二 0S125的方式的情況下,生成請求通知部203可以立即將生成請求通知給第二 0S125。接著,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中更新有關相應的CPU的信息,并將相應的CPU的執行權切換到第一虛擬計算機110 (S1205)。具體而言,虛擬計算機切換部204在虛擬計算機執行狀態管理信息224中,針對執行權被切換的CPU,將“分配有執行權的虛擬計算機”變更為“第一虛擬計算機”,將“第一虛擬計算機的執行狀態”變更為“有任務”,將“第二虛擬計算機的執行狀態”變更為“有虛構任務”。這樣,在第一虛擬計算機110的執行權被設定成比第二虛擬計算機120高的情況下,當某CPU中第二虛擬計算機120正在執行任務時,如果在該CPU中發生了對第一虛擬計算機110的中斷,生成判定部202判定生成虛構任務283。通過以上的結構,即使不在本發明的虛擬計算機控制裝置100中設置省電功能,虛擬計算機控制裝置100也能夠有效利用OS的省電功能在適當的時機將CPU設為省電狀態,從而能夠實現虛擬計算機系統1000整體的省電。
下面說明通過本發明的虛擬計算機控制裝置如何實現系統整體的省電控制。圖13是表示本實施方式的比較例的虛擬計算機系統的虛擬計算機內的任務的執行狀況的一例的圖。在第二虛擬計算機中,分別在CPUO、CPU1、CPU2執行任務A、任務B、任務C,而在CPU3執行閑置任務。另一方面,在第一虛擬計算機中,對CPU3分配任務X,并且正在執行。第二 OS的省電控制部調查CPU的運行狀況,在一定的期間統計采樣CPU處于閑置狀態的情形,根據其結果,停止對CPU的供電、或降低向CPU提供的時鐘頻率。例如,假設在第二虛擬計算機中,第二 OS的省電控制部在CPU3以外的CPU上動作,并調查了所有CPU的運行狀況。在這種情況下,由于省電控制部只能掌握由第二 OS管理的范圍,因此判斷CPU3處于閑置狀態。然而,實際上,第一虛擬計算機在CPU3中正在執行任務X。因而,盡管第一虛擬計算機在CPU3中使任務X動作,但第二 OS的省電控制部也判定CPU3處于閑置狀態,從而錯誤地判定虛擬計算機系統整體的CPU的使用狀況。圖14和圖15是表示本實施方式的虛擬計算機控制裝置100的虛擬計算機內的任務的執行狀況的一例的圖。在圖14的例子中,在第一虛擬計算機110中,對CPU3分配有任務X,與此對應地在第二虛擬計算機120中對CPU3分配有虛構任務。在第一虛擬計算機110中,例如CPU3的執行狀態變為有任務而處于執行過程中的情況下,在第二虛擬計算機120中,CPU3的執行狀態變為閑置狀態之前一定執行虛構任務。省電控制部271在調查了所有CPU的運行狀況的情況下,判定CPU3并不是閑置狀態而是正在執行虛構任務。因此,省電控制部271判定CPU3的執行狀態為有任務。因而,CPU3不會被省電控制部271設為省電狀態。在圖15的例子中,第二虛擬計算機120在CPU3中執行閑置任務,CPU3變為閑置狀態。因此,在第二虛擬計算機120被分配給CPU3的虛構任務結束。在該狀況下,如果在第二虛擬計算機120中不存在分配給CPU3的任務,則在第二虛擬計算機120中CPU3也變為閑置狀態。因而,省電控制部271判定在第二虛擬計算機120中CPU3處于閑置狀態。該判定等同于判定在第一虛擬計算機110也包括在內的虛擬計算機系統1000整體中CPU3處于閑置狀態。因而,省電控制部271將CPU3設為省電狀態也沒問題。此外,在本發明的實施方式中,為了便于說明,列舉第一虛擬計算機110和第二虛擬計算機120這兩個虛擬計算機來進行了說明,但是相當于第一虛擬計算機110的虛擬計算機也可以是多個。另外,如果除了第一、第二虛擬計算機110、120以外還存在第三虛擬計算機,則虛擬計算機控制裝置100以與第一虛擬計算機110同樣的方式在第二虛擬計算機120中生成與第三虛擬計算機對應的虛構任務。由此,第二虛擬計算機120的省電控制部271能夠將相應的CPU適當地設為省電狀態。此外,表示本發明的實施方式的圖2的各功能模塊典型地作為通過處理器與外部存儲器的協作而被處理的程序加以實現,但也可以設為集成電路的LSI。對它們既可以獨立地進行單芯片化,也可以以包括一部分或全部的方式進行單芯片化。在此,雖然設為LSI,但是根據集成度的差異有時還被稱為1C、系統LS1、super LSI, ultra LSI。另外,集成電路化的方法不限于LSI,也可以用專用電路或通用處理器實現。也可以利用在制造LSI之后能夠編程的FPGA (Field Programmable Gate Array:現場可編程門陣列)、能夠重新構成LSI內部的電路單元的連接、設定的可重構處理器。并且,如果通過半導體技術的進步或派生的其它技術而出現取代LSI的集成電路化的技術,則當然也可以使用該技術來進行功能模塊的集成化。只要是具備處理器和存儲裝置的信息處理系統,本發明就能夠適用于所有電子設備、信息設備、AV設備、通信設備、家電設備,例如還能夠應用于PC(個人計算機)、便攜電話、智能手機、PDA等便攜信息終端、電視機、硬盤錄像機、DVD、藍光等的各種盤錄像機、各種盤播放器、汽車導航系統等,這是不言而喻的。此外,前述的說明在所有方面上都只不過是本發明的例子,并不是想要限定其范圍。在不脫離本發明的范圍而能夠進行各種改進、變形,這是不言而喻的。(本實施方式的虛擬計算機控制裝置的總結)(I)本實施方式的虛擬計算機控制裝置控制第一虛擬計算機和第二虛擬計算機,該第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,該第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,所述第二操作系統具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部,該虛擬計算機控制裝置包括虛構任務生成請求部,該虛構任務生成請求部在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。根據此結構,在由第一虛擬計算機處理的任務被分配給未被分配由第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給第二操作系統。由此,在第二虛擬計算機生成虛構任務,并分配給對應的CPU。其結果,第二操作系統判定在該CPU執行虛構任務。其結果,能夠避免發生盡管在該CPU執行第一虛擬計算機的任務,第二操作系統所具備的省電控制部也將該CPU設成省電狀態的事態。因此,可以不在虛擬計算機控制裝置的內部設置復雜的省電控制部,利用操作系統所具有的省電控制部,能夠適當地進行虛擬計算機系統整體的省電控制。(2)所述虛構任務生成請求部,可以具備生成判定部和生成請求通知部,所述生成判定部,在所述處理器的執行權從所述第二虛擬計算機切換到所述第一虛擬計算機時,基于所述第一虛擬計算機的狀態判定是否生成所述虛構任務;所述生成請求通知部,在所述生成判定部判定生成虛構任務的情況下,將所述虛構任務的生成請求通知給所述第二操作系統。根據此結構,當對某處理器的執行權從第二虛擬計算機切換到第一虛擬計算機時判定是否生成虛構任務,在判定生成虛構任務的情況下,虛構任務的生成請求被通知給第二操作系統。為此,能夠在合適的時機進行有無虛構任務的生成的判定。(3)所述生成判定部,在所述執行權從所述第二虛擬計算機切換到所述第一虛擬計算機時,如果所述執行權被切換的處理器中的所述第一虛擬計算機的執行狀態為閑置狀態,可以判定生成所述虛構任務。由于某種契機,某處理器的執行權從第二虛擬計算機切換到第一虛擬計算機時,如果第一虛擬計算機為閑置狀態,則該處理器處于處理第一虛擬計算機的任務之前的狀態。因此,在該狀態下,在第二虛擬計算機該處理器的虛構任務還沒有生成。于是,在本結構中,在此狀態下判定生成虛構任務。
另一方面,由于某種契機,某處理器的執行權從第二虛擬計算機切換到第一虛擬計算機時,如果在該處理器第一虛擬計算機不為閑置狀態而為任務被分配的狀態,則在第二虛擬計算機該處理器的虛構任務應該已經生成,沒有必要生成虛構任務。因此,在本結構中,在該狀態下判定不生成虛構任務。由此,能夠避免沒有必要地生成虛構任務的情況。(4)所述生成判定部,在某處理器中所述第二虛擬計算機從任務的執行狀態轉變為閑置狀態時,如果在該處理器中存在所述第一虛擬計算機應該處理的待機處理的任務,可以判定生成所述虛構任務。在某處理器中第二虛擬計算機從任務的執行狀態轉變為閑置狀態時,如果在第一虛擬計算機存在在該處理器待機處理的任務,則該處理器的執行權從第一虛擬計算機切換到第二虛擬計算機,該待機處理的任務被處理。此時,在該處理器,雖然第二虛擬計算機為閑置狀態,但第一虛擬計算機為任務的執行狀態。因此,在本結構中,在該狀態下判定生成虛構任務。由此,能夠防止發生盡管在某處理器,第一虛擬計算機的任務被分配,也由省電控制部將該處理器置于省電狀態。(5)所述第一、第二虛擬計算機以分時方式被分配對某處理器的執行權,所述生成判定部,在所述第二虛擬計算機用盡時間片時,如果在該處理器中所述第一虛擬計算機的執行狀態為閑置狀態、且存在所述第一虛擬計算機應該處理的待機處理的任務,可以判定生成所述虛構任務。在某處理器當第二虛擬計算機用盡時間片時,如果在該處理器中第一虛擬計算機的執行狀態為閑置狀態、且存在第一虛擬計算機應該處理的待機處理的任務,則執行權被切換到第一虛擬計算機,通過該處理器任務被處理。此時,在該處理器中,雖然第二虛擬計算機為閑置狀態,但第一虛擬計算機為任務的執行狀態。在此,在本結構中,在該狀態下判定生成虛構任務。由此,能夠防止發生盡管在某處理器第一虛擬計算機的任務被分配,也由省電控制部將該處理器置于省電狀態。(6)所述第一虛擬計算機的所述執行權被設定成比所述第二虛擬計算機高,所述生成判定部,在某處理器中所述第二虛擬計算機正在執行任務時,在該處理器中發生了對所述第一虛擬計算機的中斷的情況下,可以判定生成所述虛構任務。第一虛擬計算機的執行權被設定成比第二虛擬計算機的高,當在某處理器中第二虛擬計算機正在執行任務時,在該處理器中發生了對第一虛擬計算機的中斷的情況下,執行權被切換到第一虛擬計算機,通過該處理器任務被處理。此時,在該處理器,雖然第二虛擬計算機為閑置狀態,但第一虛擬計算機為任務的執行狀態。此時,在本結構中,在該狀態下判定生成虛構任務。由此,能夠防止發生盡管在某處理器第一虛擬計算機的任務被分配,也由省電控制部將該處理器置于省電狀態。(7)虛擬計算機控制裝置還可以具備虛構任務結束請求部,該虛構任務結束請求部在被分配有虛構任務的處理器中所述第一虛擬計算機的任務結束的情況下,將所述虛構任務的結束請求通知給所述第二操作系統。根據此結構,在某處理器由第一虛擬計算機處理的任務結束時,與此連動虛構任務也結束。為此,在該處理器第一、第二虛擬計算機均為閑置狀態時,省電控制部可以將該處理器置于省電狀態。(8)所述第一操作系統,在某處理器中不存在所述第一虛擬計算機應該處理的任務的情況下,讓所述第一虛擬計算機執行表示在該處理器中所述第一虛擬計算機處于閑置狀態的第一閑置任務,所述虛構任務結束請求部在所述第一閑置任務被執行時,可以將所述虛構任務的結束請求通知給所述第二操作系統。根據此結構,在某處理器第一虛擬計算機的任務結束時,在該處理器第一閑置任務被執行,因此,虛構任務結束請求部通過第一閑置任務能夠正確地識別第一虛擬計算機的任務結束。然后,虛構任務結束請求部將虛構任務的結束請求通知給第二操作系統。因此,能夠使虛構任務和所對應的第一虛擬計算機的任務正確地連動起來。(9)所述第二操作系統,可以在某處理器中不存在所述第二虛擬計算機應該處理的任務的情況下,讓所述第二虛擬計算機執行表示在該處理器中所述第二虛擬計算機處于閑置狀態的第二閑置任務,并將所述虛構任務的優先級設定成比所述第二閑置任務高、且比所述虛構任務和所述第二閑置任務以外的其它任務低。根據此結構,第二虛擬計算機在某處理器中不存在應該處理的任務的情況下,在該處理器中執行第二閑置任務。在此,第二閑置任務的優先級被設定成比虛構任務的優先級低。因此,當第二虛擬計算機在某處理器中執行第二閑置任務時,省電控制部判定第一虛擬計算機也在某處理器中為閑置狀態,能夠正確地將該處理器置于省電狀態。(10)所述虛構任務生成請求部和所述虛構任務結束請求部,可以在所述執行權從所述第一虛擬計算機切換到所述第二虛擬計算機時,通知所述生成請求和所述結束請求。根據此結構,即使虛構任務生成請求部判斷有必要生成虛構任務也不必馬上通知虛構任務的生成請求,可以將虛構任務的生成請求保留到執行權從第一虛擬計算機切換到第二虛擬計算機為止。而且,虛構任務結束請求部也和虛構任務生成請求部一樣,可以將虛構任務的結束請求保留到執行權從第一虛擬計算機切換到第二虛擬計算機為止。(11)所述虛構任務結束請求部,在通知所述虛構任務的結束請求時,如果存在未通知的所述虛構任務的生成請求,可以將該生成請求和該結束請求相抵消。根據此結構,在虛構任務的結束請求被生成后,在通知該結束請求之前便生成了虛構任務的生成請求時,兩者互相抵消。因此,能夠避免發生在虛構任務的結束請求被生成后馬上就結束虛構任務的情況,能防止不必要地生成虛構任務,從而可以削減處理的開銷。(12)所述虛構任務生成請求部,在通知所述虛構任務的生成請求時,如果存在未通知的所述虛構任務的結束請求,可以將該結束請求和該生成請求相抵消。根據此結構,在虛構任務的生成請求被生成后,在通知該生成請求之前便生成了虛構任務的結束請求時,兩者互相抵消。因此,能夠避免發生虛構任務結束后馬上就生成虛構任務的情況,能防止不必要地結束虛構任務,從而可以削減處理的開銷。產業上的可利用性本發明所涉及的虛擬計算機控制裝置、虛擬計算機控制方法、虛擬計算機控制程序以及集成電路能夠有效使用操作系統的省電功能來降低耗電。因而,作為需要省電控制的電氣產品的省電技術而有用。另外,在信息設備、AV設備、通信設備、家電設備、電氣產品等搭載計算機的設備中也有用。
權利要求
1.一種虛擬計算機控制裝置,控制第一虛擬計算機和第二虛擬計算機,其中所述第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,所述第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,其特征在于: 所述第二操作系統,具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部, 所述虛擬計算機控制裝置包括虛構任務生成請求部,所述虛構任務生成請求部在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。
2.根據權利要求1所述的虛擬計算機控制裝置,其特征在于, 所述虛構任務生成請求部具備: 生成判定部,在所述處理器的執行權從所述第二虛擬計算機切換到所述第一虛擬計算機時,基于所述第一虛擬計算機的狀態判定是否生成所述虛構任務;以及 生成請求通知部,在所述生成判定部判定生成虛構任務的情況下,將所述虛構任務的生成請求通知給所述第二操作系統。
3.根據權利要求2所述的虛擬計算機控制裝置,其特征在于, 所述生成判定部,在所述執行權從所述第二虛擬計算機切換到所述第一虛擬計算機時,如果所述執行權被切換的處理器中所述第一虛擬計算機的執行狀態為閑置狀態,判定生成所述虛構任務。
4.根據權利要求2所述的虛擬計算機控制裝置,其特征在于, 所述生成判定部,在某處理器中所述第二虛擬計算機從任務的執行狀態轉變為閑置狀態時,如果在該處理器中存在所述第一虛擬計算機應該處理的待機處理的任務,判定生成所述虛構任務。
5.根據權利要求2所述的虛擬計算機控制裝置,其特征在于, 所述第一、第二虛擬計算機以分時方式被分配對某處理器的執行權, 所述生成判定部,在所述第二虛擬計算機用盡時間片時,如果在該處理器中所述第一虛擬計算機的執行狀態為閑置狀態、且存在所述第一虛擬計算機應該處理的待機處理的任務,判定生成所述虛構任務。
6.根據權利要求2所述的虛擬計算機控制裝置,其特征在于, 所述第一虛擬計算機的所述執行權設定成比所述第二虛擬計算機高, 所述生成判定部,在某處理器中所述第二虛擬計算機正在執行任務時,在該處理器中發生了對所述第一虛擬計算機的中斷的情況下,判定生成所述虛構任務。
7.根據權利要求1至6中的任一項所述的虛擬計算機控制裝置,其特征在于還包括: 虛構任務結束請求部,在被分配有所述虛構任務的處理器中所述第一虛擬計算機的任務結束的情況下,將所述虛構任務的結束請求通知給所述第二操作系統。
8.根據權利要求7所述的虛擬計算機控制裝置,其特征在于, 所述第一操作系統,在某處理器中不存在所述第一虛擬計算機應該處理的任務的情況下,讓所述第一虛擬計算機執行表示在該處理器中所述第一虛擬計算機處于閑置狀態的第一閑置任務,所述虛構任務結束請求部,當所述第一閑置任務被執行時,將所述虛構任務的結束請求通知給所述第二操作系統。
9.根據權利要求1至8中的任一項所述的虛擬計算機控制裝置,其特征在于, 所述第二操作系統,在某處理器中不存在所述第二虛擬計算機應該處理的任務的情況下,讓所述第二虛擬計算機執行表示在該處理器中所述第二虛擬計算機處于閑置狀態的第二閑置任務,并將所述虛構任務的優先級設定成比所述第二閑置任務高、且比所述虛構任務和所述第二閑置任務以外的其它任務低。
10.根據權利要求7所述的虛擬計算機控制裝置,其特征在于, 所述虛構任務生成請求部和所述虛構任務結束請求部,在所述執行權從所述第一虛擬計算機切換到所述第二虛擬計算機時,通知所述生成請求和所述結束請求。
11.根據權利要求10所述的虛擬計算機控制裝置,其特征在于, 所述虛構任務結束請求部,在通知所述虛構任務的結束請求時,如果存在未通知的所述虛構任務的生成請求,將該生成請求和該結束請求相抵消。
12.根據權利要求10或11所述的虛擬計算機控制裝置,其特征在于, 所述虛構任務生成請求部,在通知所述虛構任務的生成請求時,如果存在未通知的所述虛構任務的結束請求,將該結束請求和該生成請求相抵消。
13.一種虛擬計算機控制方法,由控制第一虛擬計算機和第二虛擬計算機的虛擬計算機控制裝置來執行,其中所述第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,所述第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,其特征在于: 所述第二操作系 統,具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部, 所述虛擬計算機控制方法包括虛構任務生成請求步驟,在所述虛構任務生成請求步驟中,所述虛擬計算機控制裝置在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。
14.一種虛擬計算機控制程序,使計算機作為控制第一虛擬計算機和第二虛擬計算機的虛擬計算機控制裝置發揮功能,其中所述第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,所述第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,其特征在于: 所述第二操作系統,具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部, 所述虛擬計算機控制程序使計算機作為虛構任務生成請求部發揮功能,所述虛構任務生成請求部在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。
15.一種集成電路,用于控制第一虛擬計算機和第二虛擬計算機的虛擬計算機控制裝置,其中所述第一虛擬計算機被分配一個以上的處理器,第一操作系統動作,所述第二虛擬計算機被分配一個以上的處理器,第二操作系統動作,其特征在于: 所述第二操作系統,具備基于所述處理器的使用狀況控制向所述處理器的供電的省電控制部, 所述集成電路包括虛構任務生成請求部,所述虛構任務生成請求部在由所述第一虛擬計算機處理的任務被分配給未被分配由所述第二虛擬計算機處理的任務的處理器的情況下,將表示該處 理器處于使用狀態的虛構任務的生成請求通知給所述第二操作系統。
全文摘要
虛構任務生成請求部200在由第一虛擬計算機110處理的任務被分配給未被分配由第二虛擬計算機120處理的任務的CPU的情況下,生成表示該CPU處于使用狀態的虛構任務283的生成請求并通知給第二OS125。虛構任務結束請求部206當在被分配有虛構任務283的CPU中第一虛擬計算機110的任務結束時使虛構任務283結束。
文檔編號G06F1/32GK103201720SQ201280003589
公開日2013年7月10日 申請日期2012年8月3日 優先權日2011年9月7日
發明者加藤一臣, 齊藤雅彥 申請人:松下電器產業株式會社