新四季網

用於在虛擬機環境中實現作業系統的系統和方法

2023-06-26 01:55:36 3

專利名稱:用於在虛擬機環境中實現作業系統的系統和方法
技術領域:
本發明一般涉及虛擬機(也稱為「處理器虛擬化」)以及在虛擬機環境中執行的軟體,尤其涉及用於實現能夠確定它是否在虛擬機環境中運行並能夠相應地修改其行為的作業系統的系統和方法。
背景技術:
計算機包括被設計成執行特定的系統指令集的通用中央處理單元(CPU)。具有類似的體系結構或設計規範的一組處理器被認為是同一處理器家族的成員。當前的處理器家族的示例包括由亞利桑那州菲尼克斯市的Motorola公司生產的Motorola 680X0處理器家族;由加利福尼亞州桑尼維爾市的Intel公司生產的Intel80X86處理器家族;以及由Motorola公司生產的,並在由加利福尼亞州庫珀蒂諾市的Apple計算機公司生產的計算機中使用的PowerPC處理器家族。儘管一組處理器由於其類似的體系結構和設計考慮可處於同一家族中,然而根據其時鐘速度和其它參數性能,家族中的處理器也會有很大的不同。
每一微處理器家族執行對該處理器家族唯一的指令。處理器或處理器家族可執行的一組集體的指令被稱為處理器的指令集。作為一個示例,由Intel 80X86處理器家族使用的指令集與由PowerPC處理器家族使用的指令集不兼容。Inter 80X86指令集基於複雜指令集計算機(CISC)格式。Motorola Power PC指令集基於精簡指令集計算機(RISC)格式。CISC處理器使用大量的指令,其中一些可執行相當複雜的功能,但是它一般需要許多時鐘周期來執行。RISC處理器使用較少數量的可用指令,來執行以更高的速率執行的一組較簡單的功能。
處理器家族在計算機系統之中的唯一性通常導致計算機系統的硬體體系結構的其它元件之間的不兼容性。用來自Intel 80X86處理器家族的處理器製造的計算機系統具有與用來自PowerPC處理器家族的處理器製造的計算機系統的硬體體系結構不同的硬體體系結構。由於處理器指令集以及計算機系統的硬體體系結構的唯一性,應用軟體程序通常被書寫成在運行特定作業系統的特定計算機系統上運行。
計算機製造商希望通過令更多而不是更少的應用程式運行在與計算機製造商的產品線相關聯的微處理器家族上來將其市場份額最大化。為擴展可運行在計算機系統上的作業系統和應用程式的數量,開發了一種技術領域,其中,稱為主機的具有一種類型CPU的給定計算機將包括一仿真器程序,它允許主機計算機仿真一種稱為訪客的CPU的不相關類型指令。由此,主機計算機將執行促使一個或多個主機指令響應於給定訪客指令而被調用的應用程式。由此,主機計算機可運行為其自己的硬體體系結構設計的軟體和為具有不相關硬體體系結構的計算機書寫的軟體兩者。作為一個更具體的示例,例如,由Apple計算機製造的計算機系統可運行為基於PC的計算機系統書寫的作業系統和程序。也可能使用一仿真器程序以在單個CPU上並發地操作多個不兼容的作業系統。在這一裝置中,儘管每一作業系統與其它作業系統不兼容,但是仿真器程序可主宿兩個作業系統之一,從而允許不兼容的作業系統在同一計算機系統上並發地運行。
當在主機計算機系統上仿真訪客計算機系統時,訪客計算機系統被稱為「虛擬機」,因為訪客計算機系統僅作為一種特定硬體體系結構的純軟體表示存在於主機計算機系統中。術語仿真器、虛擬機和處理器仿真有時可互換地使用,以表示模仿或仿真一個完整的計算機系統的硬體體系結構的能力。作為一個示例,由加利福尼亞州聖馬特奧市的Connectix公司創建的Virtual PC軟體仿真包括Intel 80X86Pentium處理器和各種主板組件和卡的整個計算機。這些組件的操作在運行於主機上的虛擬機中仿真。在諸如具有PowerPC處理器的計算機系統等主機計算機的作業系統軟體和硬體體系結構上執行的仿真器程序模仿整個訪客計算機系統的操作。
仿真器程序擔當主機機器的硬體體系結構和由運行在被仿真的環境中的軟體發送的指令之間的交換點。該仿真器程序可以是一主機作業系統(HOS),它是直接運行在物理計算機硬體上的作業系統。或者,被仿真的環境也可以是虛擬機監控程序(VMM),它是一軟體層,其直接運行在硬體之上,並通過展示與VMM正在虛擬化(允許VMM不被其上運行的作業系統層注意)的硬體相同的接口來虛擬化該機器的所有資源。主機作業系統和VMM可在同一物理硬體上並排運行。
現有的虛擬機軟體(如,可從微軟公司購買的Virtual Server和Virtual PC)允許如上所述的虛擬化,但是有與允許虛擬化相關聯的重大的性能額外開銷。性能額外開銷可以高達70%的水平,尤其是在具有繁重的I/O工作負載(具有繁重的盤存取或網絡通信)的軟體應用程式中。這一額外開銷的水平在需要最大處理器速度的應用程式中是不可接受的。所需要的是減少虛擬機環境中的處理器額外開銷的方法。
在常規的作業系統(OS)中,某些OS活動是在作業系統正在專用物理硬體上運行的假設下執行的。在虛擬機環境中,這些活動對並發地運行在同一物理硬體上的訪客OS可能是有害的。這些有害活動捆綁住了作業系統資源(被設計成在專用物理硬體而非虛擬環境中運行),因為作業系統假定該硬體專用於這些資源,並且不知道使用這些資源或等待使用這些資源的其它作業系統。所需要的是修改訪客OS的行為,使得它對運行在虛擬機環境中的其它訪客OS無害的方法。

發明內容
本發明包括實現作業系統的系統和方法,該作業系統能夠確定它是否在虛擬機環境中操作,並且還能夠修改其行為,以更有效地在虛擬機環境中操作。
本發明的實施例針對提供一種作業系統的系統和方法,該作業系統知道其在虛擬機環境中操作,並且作為這一認識的結果,能夠減少在歷史上對虛擬機環境成問題的某些性能額外開銷。主機作業系統和訪客作業系統之間的共享通信區的引入提供了一種在訪客和主機之間通信,而不用在主機和訪客之間傳遞計算機的控制的機制。在訪客作業系統和主機之間傳遞的通信類型的一個示例涉及線程調度。在認識到訪客正在VM環境中運行,且引入了共享通信區之後,訪客作業系統向主機作業系統發送附加信息(如執行優先級),從而允許主機作業系統作出更有效的線程調度決策,這是因為主機具有關於處理器時間的總體需求(包括訪客的需求)的更多信息。


當結合附圖閱讀時,可以更好地理解以上概述以及以下較佳實施例的詳細描述。為說明本發明的目的,附圖中示出了本發明的示例性構造;然而,本發明不限於所揭示的具體方法和手段。附圖中圖1所示是可結合本發明的各方面的計算機系統的框圖;圖2示出了用於計算機系統中仿真的操作環境的硬體和軟體體系結構的邏輯分層;圖3A示出了一虛擬化的計算系統;圖3B示出了一虛擬化的計算系統的替換實施例,它包括與主機作業系統並排運行的虛擬機監控程序;圖4示出了圖3A的虛擬化計算系統,它還包括具有知曉VM(VM-aware)的訪客作業系統的主機作業系統;圖5所示是實現知曉VM的訪客作業系統的方法的流程圖,該訪客作業系統具有修改其行為以提高虛擬機環境中的效率的能力;圖6示出了一個示例性虛擬化計算系統,它包括具有在主機作業系統和知曉VM的訪客作業系統之間的共享通信區的主機作業系統;以及圖7所示是依照本發明在知曉VM的作業系統中調度線程的示例性方法的流程圖。
具體實施例方式
本發明的主題是用細節來描述的,以滿足法定要求。然而,該描述本身並不製造限制本專利的範圍。相反,發明人構想所要求保護的本發明也可結合其它現有或未來技術用其它方法來實現,以包括不同的步驟或類似於本文檔中所揭示的那些步驟的組合。此外,儘管此處使用了術語「步驟」意味著所採用方法的不同元素,然而該術語不應當被揭示為暗示此處所揭示的各個步驟之中或之間的任何特定順序,除非當明確地描述了個別步驟的順序。
計算機環境本發明的許多實施例可以在計算機上執行。圖1及以下討論旨在提供對適於在其中實現本發明的計算環境的簡要概括描述。儘管並非所需,但本發明將在諸如由客戶機工作站或伺服器等計算機執行的程序模塊等計算機可執行指令的一般上下文環境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數據結構等等,執行特定的任務或實現特定的抽象數據類型。此外,本領域的技術人員可以理解,本發明可以用其它計算機系統配置來實施,包括手持式設備、多處理器系統、基於微處理器或可編程消費者電子設備、網絡PC、小型機、大型機等等。本發明也可以在分布式計算環境中實踐,其中,任務由通過通信網絡連接的遠程處理設備來執行。在分布式計算環境中,程序模塊可以位於本地和遠程存儲器存儲設備中。
如圖1所示,示例性通用計算系統包括常規計算機20或類似裝置,包括處理單元21、系統存儲器22以及將包括系統存儲器的各類系統組件耦合至處理單元21的系統總線23。系統總線23可以是若干種總線結構類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結構的局部總線。系統存儲器包括只讀存儲器(ROM)24和隨機存取存儲器(RAM)25。基本輸入/輸出系統(BIOS)26,包含如在啟動時協助在計算機20內的元件之間傳輸信息的基本例程,可儲存在ROM 24中。個人計算機20也可包括用於對硬碟(未示出)進行讀寫的硬碟驅動器27、用於對可移動磁碟29進行讀寫的磁碟驅動器28以及用於對可移動光碟31如CD ROM或其它光介質進行讀寫的光碟驅動器30。硬碟驅動器27、磁碟驅動器28以及光碟驅動器30分別通過硬碟驅動器接口32、磁碟驅動器接口33和光碟驅動器接口34連接至系統總線23。驅動器及其相關的計算機可讀介質為計算機20提供了計算機可執行指令、數據結構、程序模塊和其它數據的非易失性存儲。儘管這裡描述的示例環境採用了硬碟39、可移動磁碟29以及可移動光碟31,然而本領域的技術人員可以理解,在示例性操作環境中也可以使用可儲存可由計算機訪問的數據的其它類型的計算機可讀介質,如盒式磁帶、快閃記憶體卡、數字視頻盤、Bernoulli盒式磁碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
多個程序模塊可儲存在硬碟、磁碟29、光碟31、ROM 24或RAM 25中,包括作業系統35、一個或多個應用程式36、其它程序模塊37以及程序數據38。用戶可以諸如通過鍵盤40和定位設備42等輸入設備向計算機420輸入命令和信息。其它輸入設備(未示出)可包括麥克風、操縱杆、遊戲墊、圓盤式衛星天線、掃描儀等。這些和其它輸入設備通常通過耦合至系統總線23的串行埠接口46連接到處理單元21,但也可以通過其它接口連接,如並行埠、遊戲埠或通用串行總線(USB)。監視器47或其它類型的顯示設備也通過接口,如視頻適配器48連接到系統總線23。除監視器47之外,個人計算機通常包括其它外圍輸出設備(未示出),如揚聲器和印表機。圖1的示例性系統也包括主機適配器55、小型計算機系統接口(SCSI)總線56以及連接到SCSI總線56的外部存儲設備62。
個人計算機20可以在使用到一個或多個遠程計算機,如遠程計算機49的邏輯連接的網絡化環境中操作。遠程計算機49可以是另一個人計算機、伺服器、路由器、網絡PC、對等設備或其它公用網絡節點,並通常包括許多或所有相對於計算機20所描述的元件,儘管在圖1中僅示出了存儲器存儲設備50。圖1描述的邏輯連接包括區域網(LAN)51和廣域網(WAN)52。這類網絡環境常見於辦公室、企業範圍計算機網絡、內聯網以及網際網路。
當在LAN網絡環境中使用時,個人計算機20通過網絡接口或適配器53連接至LAN 51。當在WAN網絡環境中使用時,計算機20可包括數據機54或用於通過廣域網52,如網際網路建立通信的其它裝置。數據機54可以是內置或外置的,通過串行埠接口46連接至系統總線23。在網絡化環境中,相對於個人計算機20所描述的程序模塊或其部分可儲存在遠程存儲器存儲設備中。可以理解,示出的網絡連接是示例性的,也可以使用在計算機之間建立通信鏈路的其它裝置。此外,儘管預想本發明的多個實施例尤其適合於計算機化的系統,然而本文檔中沒有任何內容旨在將本發明限於這樣的實施例。
虛擬機從概念上的觀點來看,計算機系統一般包括運行在硬體的功能層上的一個或多個軟體層。這一分層是為了抽象的原因而完成的。通過為給定軟體層定義接口,該層可由其上的其它層來不同地實現。在設計良好的計算機系統中,每一層僅知道(並且僅依賴於)緊靠其之下的那一層。這允許層或「棧」(多個鄰接的層)被替換,而不會對所述層或棧上的層產生消極的影響。例如,軟體應用程式(較高層)通常依賴於作業系統的較低層(較低層)來將文件寫入某一形式的永久存儲中,並且這些應用程式不需要理解將數據寫入軟盤、硬碟驅動器或網絡文件夾之間的區別。如果較低層用用於寫文件的新作業系統來替換,則較高層軟體應用程式的操作保持不受影響。
分層軟體的靈活性允許虛擬機(VM)呈現一虛擬硬體層,它實際上是另一軟體層。以此方式,VM可為其上的軟體層創建所述軟體層正運行在其自己的專用計算機系統上的假象,並且由此,VM可允許多個「訪客系統」並發地運行在單個「主機系統」上。
圖2所示是用於計算機系統中仿真的操作環境的硬體和軟體體系結構的邏輯分層的圖示。仿真程序94運行在主機作業系統和/或硬體體系結構92上。仿真程序94仿真訪客硬體體系結構96和訪客作業系統98。軟體應用程式100進而運行在訪客作業系統98上。在圖2的被仿真操作環境中,由於仿真程序94的操作,即使軟體應用程式100被設計成運行在一般與主機作業系統和硬體體系結構92不兼容的作業系統上,軟體應用程式100也可運行在計算機系統90上。
圖3A示出了一個虛擬化的計算系統,它包括直接運行在物理計算機硬體102上的主機作業系統軟體層104,並且主機作業系統(主機OS)通過展示與主機OS正在虛擬化(令主機OS能夠不被其上運行的作業系統層注意到)的硬體相同的接口,來虛擬化機器的所有資源。
或者,虛擬機監控程序,或VMM軟體層104′可以代替主機OS 104″或與其並排地運行,後一選項在圖3B中示出。為了簡明起見,後文所有的討論(尤其是關於主機OS 104的討論)應當針對圖3A所示的實施例;然而,這些討論的每一方面應當同等地應用於圖3B的實施,其中圖3B的VMM 104′本質上在功能層替換了下文描述的圖3A的主機OS 104的角色。
對於圖3,重要的是注意,VM A 108和VM B 110是虛擬化的計算機硬體表示,它們僅作為軟體構造存在,並且由於專用軟體代碼的存在而是可能的,這些專用軟體代碼不僅分別向訪客OS A 112和訪客OS B 114呈現了VM A 108和VM B110,而且也執行訪客OS A 112和訪客OS B 114間接與真實的物理計算機硬體102交互所需的所有軟體步驟。這一完整的功能一般可被稱為虛擬機監控程序(VMM)(僅在圖3B中示出),其中,對於某些實施例(如圖3A中所示出的實施例),VMM包括主機作業系統104的部分。然而,在其它實施例(未示出)中,VMM可以是運行在主機作業系統104上,並且僅通過所述主機作業系統104與計算機硬體交互的應用程式。在又一實施例(如圖3B所示的)中,VMM可包括部分獨立的軟體系統,它在某一層次上通過主機作業系統104間接與計算機硬體102交互,而在其它層次上VMM直接與計算機102交互(類似於主機作業系統主機直接與計算機硬體交互的方式)。在其它實施例(類似於圖3B所示的)中,VMM可包括完全獨立的軟體系統,它在所有的層次上都直接與計算機硬體102交互(類似於主機作業系統直接與計算機硬體交互的方式),而不使用主機作業系統104(儘管在所述計算機硬體102的協調使用以及避免衝突等的程度上,仍與所述主機作業系統104交互)。
所有這些用於實現VMM的變化都被期望形成此處所描述的本發明的替換實施例,並且此處沒有任何內容應當被解釋為將本發明限於任何特定的VMM配置。另外,對分別通過VM A 108和/或VM B 110在應用程式116、118和120之間的交互的參考(假定在硬體仿真的情況下)應當被解釋為實際上是應用程式116、118和120與VMM之間的交互。同樣,對應用程式VMA 108和/或VMB 110與主機作業系統104和/或計算機硬體102之間的交互(假定直接或間接在計算機硬體102上執行計算機指令)的任何參考應當被解釋為在適當時實際上是VMM和主機作業系統104或計算機硬體102之間的交互。
再次參考圖3A,在主機OS 104(或VMM 104′)上的是兩個虛擬機(VM)實現-VM A 108,它可以是,例如虛擬化的Intel 386處理器;以及VM B 110,它可以是,例如Motorola 680X0處理器家族之一的虛擬化版本。在每一VM A 108和110之上的分別是訪客作業系統(訪客OS)A 112和B 114。在訪客OS A 112上運行兩個應用程式-應用程式A1 116和應用程式A2 118,在訪客OS B 114上的是應用程式B1 120。
歷史上,虛擬機基於訪客OS(如訪客OS A 112)運行在專用硬體上的假象,而實際上它們與其它訪客OS(如,訪客OS B 114)共享硬體。主機OS 104負責維持這一假象。本發明放鬆了這一假象,並允許訪客OS能夠確定它們是否運行在VM,並隨後基於這一認識來改變其行為。描述了能夠提高在VM環境中操作的訪客OS的效率的行為修改。
VM環境中的操作圖4示出了類似於圖3A所示的虛擬化計算系統,但是在圖4中,知曉VM(VM-aware)的訪客OS A 132和知曉VM的訪客OS B 134分別替換了訪客OS A112和訪客OS B 114。知曉VM的訪客OS A 132和知曉VM的訪客OS B 134是能夠確定它們是否在虛擬機環境中運行,並且如果是則能夠修改其行為以更有效地操作的作業系統。
圖4的知曉VM的訪客OS A 132和知曉VM的訪客OS B 134的操作參考圖5來描述,圖5所示是實現具有修改其行為以提高虛擬機環境中的效率的能力的知曉VM的作業系統的方法104的流程圖。在步驟142,該方法首先包括起動知曉VM的作業系統(例如,知曉VM的訪客OS A 132或知曉VM的訪客OS B 134)。
在步驟144,知曉VM的OS確定它是否在VM環境中操作。這一確定是通過各種方法中的任一種來完成的,包括使用合成指令,如2003年10月14日提交的,名為「SYSTEMS ANS METHOD FOR USING SYNTHETIC INSTRUCTIONS IN AVIRTUAL MACHINE(在虛擬機中使用合成指令的系統和方法)」的美國專利申請號10/685,051(後文稱為′051專利申請)中所描述的。′051專利申請描述了一種方法,該方法由作業系統用於通過執行返回表示中央處理單元的身份的值的合成指令(例如,VMCPUID),來確定它是運行在虛擬化處理器上還是直接運行在x86處理器上。如果返回了一個值,則訪客OS得出結論,該作業系統運行在虛擬化處理器上;如果響應於合成指令出現了異常,則訪客OS得出結論,該作業系統直接運行在x86處理器上。確定訪客OS是否運行在VM環境中的另一種方法包括運行一系列測試線程,並將當前環境的性能與歷史結果進行比較。在任何情況下,如果知曉VM的OS確定它不在VM環境中操作,則方法140前進到步驟146。或者,如果知曉VM的OS確定它運行在VM環境中,則方法140前進到步驟150。
在步驟146,知曉VM的OS以其「傳統」方式操作,因為它在專用硬體上操作,而不在VM環境中。在步驟148,知曉VM的作業系統確定是否接收到一「關機」命令。如果接收到「關機」命令,則知曉VM的OS關機,並且方法130結束。如果沒有接收到「關機」命令,則知曉VM的OS如步驟146中所描述的繼續以「傳統」方式執行。
在步驟150,知曉VM的OS修改其行為,以在VM環境中更有效地操作。行為修改的示例包括,但不限於,1)線程調度;2)使用雙模態設備來提高設備的效率,如2003年12月12日提交的,名為「SYSTEMS AND METHODS FOR BIMODALDEVICE VIRTUALIZATION OF ACTUAL AND IDEALIZEDHARDWARE-BASED DEVICES(實際和理想化的基於硬體的設備的雙模態設備虛擬化的系統和方法)」的美國專利申請號1-734,450(後文稱為′450專利申請);以及3)使用包含主機OS 104的執行優先級的合成指令(如′051專利申請中)。
在步驟152,知曉VM的OS確定是否接收到「關機」命令。如果接收到「關機」命令,知曉VM的OS關機,並且方法130結束。如果沒有接收到「關機」命令,則知曉VM的OS如步驟150中所描述的繼續以其修改的、高效模式操作。
調度示例在作業系統中,調度程序將處理器分配給執行環境或線程。調度程序審閱所有的就緒線程,然後調度這些線程以供處理。如果沒有工作要完成,則調度程序循環,同時在最終進入忙碌等待(busy-wait)區之前的一段時間查找工作。當作業系統不在虛擬機上操作時,該行為對性能是無害的。然而,在虛擬機環境中,該行為對具有就緒工作,但用於該工作的處理器被佔用的其它訪客作業系統是有害的。這一循環和忙碌等待時間造成了與虛擬機環境中運行作業系統相關聯的高額外開銷水平。
圖6所示的示例是用於行為修改的示例性系統和方法。然而,本發明不限於線程調度行為修改。
圖6示出了一個虛擬化的計算系統,它包括在主機OS 104和知曉VM的訪客OS A 132之間布置的共享通信區A 162。類似地,在主機OS 104和知曉VM的訪客OS B 134之間布置了共享通信區B 164。該虛擬化計算系統為訪客OS提供了一種更有效地操作的方法。在調度示例中,圖6中描述的虛擬化計算系統包括由訪客OS用於提供附加線程信息(例如,關於線程優先級以及線程運行的期望持續時間的信息)。當這一信息與來自其它訪客OS的信息組合時,主機OS具有關於系統內的資源的所有需求的更清晰的描述,因此能夠作出更大程度地提高系統效率的決策。
共享通信區A 162和B 164是向知曉VM的訪客OS A 132和知曉VM的訪客OS B 134提供向主機OS傳輸信息而不向主機OS 104傳遞控制的有效方法的機制。向主機OS傳遞控制是耗時的,因此對總體系統性能是有害的,並且因此若可能的話應被避免。在一個示例中,共享通信區A 162和共享通信區B 164用共享存儲器空間來實施。在另一示例中,共享通信區A 162和共享通信區B 163分別由知曉VM的訪客OS 132和知曉VM的訪客OS B 134之間的直接通信鏈路來實施。
知曉VM的訪客OS A 132和知曉VM的訪客OS B 134還分別包含知曉VM的調度程序A 166和知曉VM的調度程序B 168。知曉VM的調度程序A 166和B168在具有執行屬性(如,優先級、最終期限以及保留區(被分配給線程的處理器的一部分))的一組就緒的線程上操作。執行屬性被放置在共享通信區A 162和B164中。
圖6所示的虛擬化計算系統還包括主機OS 104內的主機調度程序172。主機調度程序172基於系統的以下兩個新特徵作出更有效的決策首先,知曉VM的訪客OS A 132和知曉VM的訪客OS B 134都知道它們在VM環境中操作,並且能夠向主機調度程序172發送執行優先級以使來自多個知曉VM的訪客OS的所有線程能夠更有效地執行;其次,共享通信區A 162和B 164提供了一種向主機OS 104發送信息而不向主機OS傳遞控制的有效方法。
主機調度程序172依照放置在共享通信區A 162和B 164中的執行優先級,分配多個虛擬處理器170A-170N以處理線程。主機調度程序172審閱所有知曉VM的訪客OS(例如,知曉VM的訪客OS A 132和知曉VM的訪客OS B 134)的執行優先級、基於來自所有知曉VM的訪客OS的優先級創建合成列表、並分配虛擬處理器170以相應地處理線程。
圖6的知曉VM的訪客OS的操作參考圖7來描述,圖7所示是依照本發明在作業系統中調度線程的示例性方法180的流程圖。在步驟182,該方法以知曉VM的訪客OS A 132確定它是否在VM環境中操作開始。該確定通過各種方法的任一種來作出,包括但不限於,使用如′051申請(上文描述)中所描述的合成指令。如果是,則方法1180前進到步驟192;如果否,則方法180前進到步驟184。
在步驟184-它是專用硬體上的作業系統的默認操作模式-知曉VM的訪客OS A 132處理線程。在步驟186,知曉VM的訪客OS A 132確定是否有更多的線程準備好被處理。如果是,則方法180返回到步驟184;如果否,則方法180前進到步驟188。在步驟188,知曉VM的訪客OS A 132確定是否接收到「關機」命令;如果是,則知曉VM的訪客OS A 132關機,並且方法180結束;如果沒有接收到「關機」命令,則方法180前進到步驟190。在步驟190,知曉VM的訪客OS A 132進入忙碌等待狀態,同時等待要被處理的更多線程,並且在指定的時間量之後,方法180返回到步驟186,以由訪客OS A 132檢查要處理的更多線程。
在步驟192,知曉VM的訪客OS A 132-它現在在增強的「知曉VM」模式中操作-通過處理線程來起動,並且然後在步驟194,知曉VM的訪客OS A 132確定是否有更多的線程已準備好被處理。如果是,則方法180返回到步驟192以供進一步處理;如果否,則方法180前進到步驟195。在步驟195,訪客OS A 132確定是否接收到「關機」命令,如果是,則訪客OS A關機,並且方法180結束;如果否,則在步驟196,知曉VM的訪客OS A 132向主機OS 104指示(或對於某些替換實施例,向VMM 104′指示),訪客OS A 132當前沒有任何工作要完成(即,沒有線程要處理)。在一個示例中,這一指示由知曉VM的訪客OS A 132通過如上所述的共享通信區A 162發送。在另一示例中,該指示通過知曉VM的訪客OSA 132向主機OS 104發送合成指令(當然,它被編程為理解所述合成指令)來執行,然後,在步驟198,主機OS 104確定來自其它VM的工作是否已準備好被處理。
如果知曉VM的訪客OS A 132在步驟196向主機OS 104指示(例如,通過共享通信區B 132或通過合成指令)它沒有任何工作,則主機OS 104確定是否在別處有對處理器資源的需求,如果否,則主機OS允許訪客OS A 132保持接收處理器資源,該處理器資源本質上使訪客OS A 132即使在訪客OS A 132當前沒有工作要完成的情況下也能夠繼續處理,並且由此,訪客OS A 132將在返回到步驟194來看是否還有線程要執行之前,在步驟199進入忙碌等待循環。另一方面,如果主機OS 104確定在別處有對處理器資源的需求,則在步驟200,主機OS 104取走用於訪客OS A 132的處理器資源,並在將它們返回給主機OS A 104之前臨時將它們給予運行在主機OS A 104上的另一進程(例如,另一VM和訪客系統,如訪客OS B 134),由此有效地掛起了訪客OS A 132,直到主機OS 104向它再一次其提供處理器資源,在那時,訪客OS A在返回到步驟194之前可任選地繼續到忙碌等待狀態(對於某些替換實施例,該狀態被跳過)。
結論此處所描述的各種系統、方法和技術可以用硬體或軟體,或在適當時用兩者的組合來實現。由此,本發明的方法和裝置,或其某些方面,可以採用包含在有形介質,如軟盤、CD-ROM、硬碟或任何其它機器可讀存儲介質中的程序代碼(即,指令)的形式,其中,當程序代碼被加載到諸如計算機等機器上並由其執行時,該機器變為用於實施本發明的裝置。在可編程計算機上的程序代碼執行的情況下,計算機一般包括處理器、處理器可讀的存儲介質(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備以及至少一個輸出設備。一個或多個程序較佳地以高級過程語言或面向對象的程式語言來實現,以與計算機系統通信。然而,如有需要,程序可以用彙編語言或機器語言來實現。在任何情況下,語言可以是已編譯或已解釋的語言,並與硬體實現相組合。
本發明的方法和裝置也可以用程序代碼的形式來實施,該程序代碼通過某一傳輸介質來發送,如通過電線或電纜、通過光纖或通過任一其它形式的傳輸,其中,當程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶機計算機、錄像機等機器接收被裝載到其中由其執行時,該機器變為用於實施本發明的裝置。當在通用處理器上實現時,程序代碼與處理器相結合,以提供用於調用本發明的功能的唯一裝置。
儘管結合各個附圖的較佳實施例描述了本發明,然而可以理解,在不脫離本發明的情況下,可以使用其它類似的實施例,或對所描述的實施例作出修改和添加,以執行本發明的相同功能。例如,儘管本發明的示例性實施例是在仿真箇人計算機的功能的數字設備的環境中描述的,然而本領域的技術人員可以認識到,本發明不限於這類數字設備,如本申請中所描述的,本發明可應用於任何數量的現有或新興計算設備或環境,如遊戲控制臺、手持式計算機、可攜式計算機等等,無論它們是有線還是無線的,並且本發明可應用於通過通信網絡連接並在網絡上交互的任何數量的這類計算設備。此外,應當強調,此處構想了各種計算機平臺,包括手持式設備作業系統和其它應用專用硬體/軟體接口系統,尤其是當無線聯網的設備的數量持續增長時。因此,本發明不應當限於任何單個實施例,而是相反,應當依照所附權利要求書的寬度和範圍來解釋。
最後,此處所描述的揭示的實施例可適用於其它處理器體系結構、基於計算機的系統、或系統虛擬化,並且這些實施例由此處的揭示明確地考慮在內,因此,本發明不應限於此處所描述的具體實施例,而是相反,應當被更廣泛地解釋。同樣,為除處理器虛擬化之外的目的而使用合成指令也由此處的揭示考慮在內,並且在除處理器虛擬化之外的環境中對合成指令的任何這樣的使用應當被更廣泛地包含在此處的揭示的意義之內。
權利要求
1.一種由作業系統用於在虛擬機上執行時提高效率的方法,所述方法包括確定所述作業系統是否在一虛擬機上執行,如果是,則所述作業系統修改其執行以在所述虛擬機上更有效地操作,或者如果不是,則所述作業系統如對於標準專用硬體環境那樣最有效地執行。
2.如權利要求1所述的方法,其特徵在於,所述作業系統的所述元素修改其執行以在所述虛擬機上更有效地操作包括對線程調度的至少一個元素的使用。
3.如權利要求1所述的方法,其特徵在於,所述作業系統的所述元素修改其執行以在所述虛擬機上更有效地操作包括對至少一個雙模態設備的使用。
4.如權利要求1所述的方法,其特徵在於,所述作業系統的所述元素修改其執行以在所述虛擬機上更有效地操作包括對至少一個合成指令的使用。
5.如權利要求1所述的方法,其特徵在於,所述作業系統的所述元素修改其執行以在所述虛擬機上更有效地操作包括對所述作業系統(訪客作業系統)和主機作業系統之間的至少一個共享通信區的使用,以傳輸信息而不傳輸控制。
6.如權利要求1所述的方法,其特徵在於,所述作業系統的所述元素修改其執行以在所述虛擬機上更有效地執行包括對主機系統中的至少一個調度程序的使用,以更有效地分配至少一個處理器資源。
7.一種由作業系統用於在虛擬機上執行時提高效率的系統,所述系統包括至少一個子系統,用於確定所述作業系統是否在虛擬機上執行,並且如果是,則所述作業系統修改其執行以在所述虛擬機上更有效地操作,或者如果不是,則所述作業系統如對於標準專用硬體環境那樣最有效地執行。
8.如權利要求7所述的系統,其特徵在於,還包括至少一個子系統,其中,所述作業系統通過使用線程調度的至少一個元素修改其執行以在所述虛擬機上更有效地操作。
9.如權利要求7所述的系統,其特徵在於,還包括至少一個子系統,其中,所述作業系統通過使用至少一個雙模態設備修改其操作以在所述虛擬機上更有效地操作。
10.如權利要求7所述的系統,其特徵在於,還包括至少一個子系統,其中,所述作業系統的所述元素通過使用至少一個合成指令修改其執行以在所述虛擬機上更有效地操作。
11.如權利要求7所述的系統,其特徵在於,還包括至少一個子系統,其中所述作業系統的所述元素通過使用所述作業系統(訪客作業系統)和主機作業系統之間的至少一個共享通信區,以傳輸信息而不傳輸控制,來修改其執行以在所述虛擬機上更有效地操作。
12.如權利要求7所述的系統,其特徵在於,還包括至少一個子系統,其中,所述作業系統的所述元素通過使用主機作業系統中的至少一個調度程序以更有效地分配至少一個處理器資源,來修改其執行以在所述虛擬機上更有效地操作。
13.一種包括計算機可讀指令的計算機可讀介質,所述指令由作業系統用於在虛擬機上執行時提高效率,所述計算機可讀指令包括指令,用於確定所述作業系統是否在虛擬機上執行,並且如果是,則所述作業系統修改其執行以在所述虛擬機上更有效地操作,或者如果不是,則所述作業系統如對於標準專用硬體環境那樣最有效地執行。
14.如權利要求13所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述作業系統的元素通過使用線程調度的至少一個元素來修改其執行以在所述虛擬機上更有效地操作。
15.如權利要求13所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述作業系統的所述元素通過使用至少一個雙模態設備修改其執行以在所述虛擬機上更有效地操作。
16.如權利要求13所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述作業系統的所述元素通過使用至少一個合成指令修改其執行以在所述虛擬機上更有效地操作。
17.如權利要求13所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述作業系統的所述元素通過使用所述作業系統(訪客作業系統)和主機作業系統之間的至少一個共享通信區,以傳輸信息而不傳輸控制,來修改其執行以在所述虛擬機上更有效地操作。
18.如權利要求13所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述作業系統的所述元素通過使用主機作業系統中的至少一個調度程序以更有效地分配至少一個處理器資源,來修改其執行以在所述虛擬機上更有效地操作。
19.一種由作業系統用於在虛擬機上執行時提高效率的硬體控制設備,所述硬體控制設備包括裝置,用於確定所述作業系統是否在虛擬機上執行,並且如果是,則所述作業系統修改其執行以在所述虛擬機上更有效地操作,或者如果不是,則所述作業系統如對於標準專用硬體環境那樣最有效地執行。
20.如權利要求19所述的硬體控制設備,其特徵在於,還包括裝置,它由所述作業系統的所述元素用於通過使用線程調度的至少一個元素來修改其執行以在所述虛擬機上更有效地操作。
21.如權利要求19所述的硬體控制設備,其特徵在於,還包括裝置,它由所述作業系統的所述元素用於通過使用至少一個雙模態設備來修改其執行以在所述虛擬機上更有效地操作。
22.如權利要求19所述的硬體控制設備,其特徵在於,還包括裝置,它由所述作業系統的所述元素用於通過使用至少一個合成指令來修改其操作以在所述虛擬機上更有效地操作。
23.如權利要求19所述的硬體控制設備,其特徵在於,還包括裝置,它由所述作業系統的所述元素用於通過使用所述作業系統(訪客作業系統)和主機作業系統之間的至少一個共享通信區,以傳輸信息而不傳輸控制,來修改其執行以在所述虛擬機上更有效地操作。
24.如權利要求19所述的硬體控制設備,其特徵在於,還包括裝置,它由所述作業系統的所述元素用於通過使用主機作業系統中的至少一個調度程序,以更有效地分配至少一個處理器資源,來修改其執行以在所述虛擬機上更有效地操作。
全文摘要
本發明包括用於實現一種作業系統的系統和方法,該作業系統能夠確定它是否在虛擬機環境中操作,並且還能夠修改其行為以在虛擬機環境中更有效地操作。本發明的實施例針對用於提供一種作業系統的系統和方法,該作業系統知道它們正在虛擬機環境中操作,並且作為這一認識的結果,能夠減少與虛擬機環境相關聯的某些性能額外開銷。本發明放鬆了訪客作業系統正在專用硬體上操作的假象,並描述了由訪客作業系統由於該假象被放鬆而更有效地操作的方法。
文檔編號G06F9/455GK1716193SQ20051007607
公開日2006年1月4日 申請日期2005年5月30日 優先權日2004年6月30日
發明者R·A·維嘉, E·P·託勞特, M·內爾 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀