亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在虛擬機(jī)環(huán)境中實(shí)現(xiàn)操作系統(tǒng)的系統(tǒng)和方法

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

發(fā)明內(nèi)容
本發(fā)明包括實(shí)現(xiàn)操作系統(tǒng)的系統(tǒng)和方法,該操作系統(tǒng)能夠確定它是否在虛擬機(jī)環(huán)境中操作,并且還能夠修改其行為,以更有效地在虛擬機(jī)環(huán)境中操作。
本發(fā)明的實(shí)施例針對提供一種操作系統(tǒng)的系統(tǒng)和方法,該操作系統(tǒng)知道其在虛擬機(jī)環(huán)境中操作,并且作為這一認(rèn)識的結(jié)果,能夠減少在歷史上對虛擬機(jī)環(huán)境成問題的某些性能額外開銷。主機(jī)操作系統(tǒng)和訪客操作系統(tǒng)之間的共享通信區(qū)的引入提供了一種在訪客和主機(jī)之間通信,而不用在主機(jī)和訪客之間傳遞計(jì)算機(jī)的控制的機(jī)制。在訪客操作系統(tǒng)和主機(jī)之間傳遞的通信類型的一個(gè)示例涉及線程調(diào)度。在認(rèn)識到訪客正在VM環(huán)境中運(yùn)行,且引入了共享通信區(qū)之后,訪客操作系統(tǒng)向主機(jī)操作系統(tǒng)發(fā)送附加信息(如執(zhí)行優(yōu)先級),從而允許主機(jī)操作系統(tǒng)作出更有效的線程調(diào)度決策,這是因?yàn)橹鳈C(jī)具有關(guān)于處理器時(shí)間的總體需求(包括訪客的需求)的更多信息。


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