專(zhuān)利名稱(chēng):分區(qū)總線(xiàn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及虛擬機(jī)(或稱(chēng)“分區(qū)”)和在此類(lèi)分區(qū)內(nèi)部執(zhí)行的操作系統(tǒng)的領(lǐng)域。更具體地,本發(fā)明涉及在各分區(qū)之間移動(dòng)數(shù)據(jù)和共享設(shè)備的系統(tǒng)和方法。
背景技術(shù):
在典型的虛擬機(jī)環(huán)境中,多個(gè)虛擬機(jī)或“分區(qū)”在虛擬化軟件上運(yùn)行。此軟件進(jìn)而在硬件上運(yùn)行。該虛擬化軟件以允許每個(gè)都具有自己的操作系統(tǒng)(OS)的多個(gè)分區(qū)在硬件上運(yùn)行的方式來(lái)布置硬件。從而該虛擬化軟件使硬件對(duì)各分區(qū)而虛擬化。
單獨(dú)的分區(qū)能夠運(yùn)行諸如Windows、Linux、Solaris等完全不同的OS??蓪⑦@些OS彼此隔離,從而如果在某分區(qū)的OS崩潰,它將不會(huì)影響其它分區(qū)的OS。
與在一組硬件上運(yùn)行多個(gè)分區(qū)相關(guān)聯(lián)的一項(xiàng)成本是虛擬化軟件在為每個(gè)分區(qū)虛擬設(shè)備時(shí)消耗可觀的處理器周期。類(lèi)似地,在此類(lèi)分區(qū)之間共享信息(請(qǐng)求和/或數(shù)據(jù))或設(shè)備時(shí),虛擬化軟件消耗可觀的處理器周期,原因是在各分區(qū)上共享此信息和設(shè)備時(shí),虛擬化軟件必須對(duì)其進(jìn)行處理。
具體地,在任何給定的虛擬機(jī)環(huán)境中,由于在各分區(qū)中所呈現(xiàn)的部分或可能所有的輸入/輸出設(shè)備未設(shè)計(jì)成可與在其它分區(qū)中的多個(gè)OS共享,而導(dǎo)致了一類(lèi)問(wèn)題。大多數(shù)設(shè)備的編程模塊假設(shè)有且僅有一個(gè)“擁有”該設(shè)備的OS,這使得要由在各個(gè)分區(qū)中的若干操作系統(tǒng)同時(shí)使用該設(shè)備是很困難或者不可能的。例如,如果磁盤(pán)控制器同時(shí)獲得來(lái)自?xún)蓚€(gè)操作系統(tǒng)的命令,就可能產(chǎn)生問(wèn)題。每個(gè)OS都會(huì)認(rèn)為其控制了文件系統(tǒng)結(jié)構(gòu),并且每個(gè)OS都會(huì)寫(xiě)入其選擇的任何數(shù)據(jù),很快磁盤(pán)將被破壞。為防止這種情況發(fā)生,發(fā)明某種方法和系統(tǒng),將某設(shè)備的所有權(quán)分配給單個(gè)操作系統(tǒng),隨后與任何其它運(yùn)行的操作系統(tǒng)共享該設(shè)備的服務(wù)將會(huì)是有利的。
此外,當(dāng)多個(gè)操作系統(tǒng)試圖共享同一個(gè)機(jī)器時(shí),就產(chǎn)生了單獨(dú)的一類(lèi)問(wèn)題,因?yàn)橛脩?hù)需要這些操作系統(tǒng)之間某種層次的集成。例如,用戶(hù)可能想要在各個(gè)分區(qū)的操作系統(tǒng)之間移動(dòng)數(shù)據(jù)。因此,提供一種在運(yùn)行的操作系統(tǒng)之間移動(dòng)數(shù)據(jù),或更寬泛地,移動(dòng)信息的方法和系統(tǒng)是有利的。
發(fā)明內(nèi)容
在本發(fā)明的各個(gè)方面,提供了允許在虛擬機(jī)環(huán)境中的各個(gè)分區(qū)之間設(shè)備共享和數(shù)據(jù)傳輸?shù)母鞣N方法和系統(tǒng)。在本發(fā)明的一個(gè)方面,提供了一種分區(qū)總線(xiàn),它是一種允許前述的分區(qū)間設(shè)備共享和數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸機(jī)制。
具體地,分區(qū)總線(xiàn)利用環(huán)形緩沖區(qū),將信息(請(qǐng)求和/或數(shù)據(jù))從一個(gè)分區(qū)傳送到另一個(gè)分區(qū)。在本發(fā)明的其它方面,分區(qū)總線(xiàn)利用環(huán)形緩沖區(qū),將請(qǐng)求從一個(gè)分區(qū)發(fā)送到另一個(gè)分區(qū),并且傳送頁(yè)來(lái)將數(shù)據(jù)從一個(gè)分區(qū)發(fā)送到另一個(gè)分區(qū)。在本發(fā)明此外的其它方面,分區(qū)總線(xiàn)利用環(huán)形緩沖區(qū)在分區(qū)間發(fā)送請(qǐng)求,并利用地址空間操縱在分區(qū)間傳送數(shù)據(jù)。
在本發(fā)明另外的方面,分區(qū)總線(xiàn)允許在一個(gè)分區(qū)中存在對(duì)應(yīng)于另一個(gè)分區(qū)中的服務(wù)的本地代理合成設(shè)備。分區(qū)總線(xiàn)還允許這些合成設(shè)備對(duì)應(yīng)于諸如存儲(chǔ)控制器等真實(shí)設(shè)備,或者諸如拖放功能等抽象服務(wù)。在其它方面,分區(qū)總線(xiàn)提供一種通過(guò)將可以寫(xiě)入各分區(qū)或從這些分區(qū)讀出的環(huán)形緩沖區(qū)映射到這些分區(qū)、從而在分區(qū)間發(fā)送數(shù)據(jù)而不導(dǎo)致上下文切換成本的機(jī)制。在此外其它方面,分區(qū)總線(xiàn)提供一種翻譯機(jī)制,其中位于某分區(qū)的服務(wù)具有基于服務(wù)類(lèi)型和服務(wù)實(shí)例的全局唯一的標(biāo)識(shí)。在其它方面,分區(qū)總線(xiàn)使用策略決策代理來(lái)審查某分區(qū)對(duì)另一分區(qū)的通道提供。此策略代理可位于第三分區(qū)。在此外的其它方面,分區(qū)總線(xiàn)允許仿真硬件設(shè)備模塊和虛擬化服務(wù)提供器同時(shí)操作。在此外的其它方面,取決于客戶(hù)機(jī)組件是處于用戶(hù)模式還是內(nèi)核模式,分區(qū)總線(xiàn)由三個(gè)組件的組合構(gòu)成。這些組件包括環(huán)形緩沖區(qū)管理、通道管理、和總線(xiàn)驅(qū)動(dòng)程序。
本發(fā)明的其它特征在下文描述。
當(dāng)結(jié)合附圖閱讀關(guān)于本發(fā)明的以上概述以及以下詳述,將會(huì)有更好的理解。為了說(shuō)明本發(fā)明,示出了本發(fā)明的各個(gè)方面。但是,本發(fā)明不限于所解釋的特定系統(tǒng)和方法。包括以下附圖圖1提供對(duì)可實(shí)現(xiàn)本發(fā)明的合適的計(jì)算設(shè)備的簡(jiǎn)要概述;圖2是表示用于計(jì)算機(jī)系統(tǒng)中的虛擬化操作環(huán)境的硬件和軟件結(jié)構(gòu)體系邏輯分層的框圖;圖3A是表示一虛擬計(jì)算系統(tǒng)的框圖,其中虛擬化由主操作系統(tǒng)(直接地或僅由系統(tǒng)管理程序)執(zhí)行;圖3B是表示一替換的虛擬計(jì)算系統(tǒng)的框圖,其中虛擬化由與主操作系統(tǒng)并行運(yùn)行的虛擬機(jī)監(jiān)控程序執(zhí)行;圖4示出允許在分區(qū)間傳輸數(shù)據(jù)和共享設(shè)備的分區(qū)總線(xiàn)的概括方面;圖5A示出由本地代理合成設(shè)備表示的遠(yuǎn)程服務(wù);圖5B示出可用于本發(fā)明各個(gè)方面的各種合成設(shè)備的類(lèi)型,包括存儲(chǔ)控制器及拖放設(shè)備;圖6示出分區(qū)總線(xiàn)使用的不同類(lèi)型的數(shù)據(jù)傳輸機(jī)制,包括環(huán)形緩沖區(qū)模型、傳送頁(yè)模型、和地址空間操縱模型;圖7示出可用于在分區(qū)間發(fā)送少量數(shù)據(jù)的環(huán)形緩沖區(qū)模型;圖8示出可用于在分區(qū)間發(fā)送中等數(shù)量數(shù)據(jù)的傳送頁(yè)模型;圖9示出可用于在分區(qū)間發(fā)送大量數(shù)據(jù)的地址空間操縱模型;圖10示出一種在分區(qū)間發(fā)送數(shù)據(jù)而不會(huì)導(dǎo)致與上下文交換相關(guān)聯(lián)的成本的機(jī)制;圖11示出一種用于接口和協(xié)議的分區(qū)總線(xiàn)翻譯機(jī)制。
圖12示出由基于某分區(qū)的標(biāo)識(shí)和另一分區(qū)的信任度所作的策略決策;以及圖13示出仿真設(shè)備模塊和虛擬化服務(wù)提供器的同時(shí)操作。
圖14A示出分區(qū)總線(xiàn)的一個(gè)具體實(shí)施的用戶(hù)模式方面。
圖14B示出分區(qū)總線(xiàn)的一個(gè)具體實(shí)施的內(nèi)核模式方面。
圖14C示出分區(qū)總線(xiàn)的一個(gè)具體實(shí)施的加載器方面。
具體實(shí)施例方式
概述本文討論分區(qū)總線(xiàn)的各個(gè)方面。首先,提供示例性的計(jì)算環(huán)境,以及虛擬機(jī)環(huán)境中的具有各種操作系統(tǒng)的分區(qū)的一般討論。在此討論之后,詳細(xì)討論分區(qū)總線(xiàn)的分區(qū)間數(shù)據(jù)傳輸和設(shè)備共享能力。提供了分區(qū)總線(xiàn)的概述,接著是對(duì)分區(qū)總線(xiàn)使用合成設(shè)備的服務(wù)的設(shè)備共享能力的詳細(xì)檢查,接著是對(duì)分區(qū)總線(xiàn)使用環(huán)形緩沖區(qū)、傳送頁(yè)、和地址空間操縱的信息傳送能力的詳細(xì)檢查。此外,考慮了分區(qū)總線(xiàn)的其它方面,諸如使用審查分區(qū)通道提供的策略代理等。
示例性計(jì)算環(huán)境圖1及以下討論旨在提供可實(shí)現(xiàn)本發(fā)明的合適的計(jì)算設(shè)備的簡(jiǎn)要概述。例如,圖1中所示的任何客戶(hù)機(jī)和服務(wù)器計(jì)算機(jī)或設(shè)備可采取此種形式。但是,應(yīng)當(dāng)理解,可結(jié)合本發(fā)明使用手持式、便攜式和其它計(jì)算設(shè)備及所有類(lèi)型的計(jì)算對(duì)象,即,可使用能在計(jì)算環(huán)境中生成、處理、接收和/或發(fā)送數(shù)據(jù)的計(jì)算設(shè)備或計(jì)算對(duì)象。盡管以下描述了通用計(jì)算機(jī),這僅僅是一個(gè)示例,可以具有網(wǎng)絡(luò)/總線(xiàn)互用性和交互的薄客戶(hù)機(jī)實(shí)現(xiàn)本發(fā)明。因此,可在牽涉很少或最少客戶(hù)機(jī)資源的聯(lián)網(wǎng)主含服務(wù)環(huán)境(例如,客戶(hù)機(jī)設(shè)備僅擔(dān)當(dāng)網(wǎng)絡(luò)/總線(xiàn)的接口的聯(lián)網(wǎng)環(huán)境,諸如放置在某裝置中的對(duì)象)中實(shí)施本發(fā)明。實(shí)質(zhì)上,任何能夠存儲(chǔ)數(shù)據(jù)、或能檢索數(shù)據(jù)、或能向另一個(gè)計(jì)算機(jī)發(fā)送數(shù)據(jù)的環(huán)境都是操作本發(fā)明的對(duì)象持久方法的合乎需要的或合適的環(huán)境。
盡管非必須,本發(fā)明可經(jīng)由操作系統(tǒng)實(shí)現(xiàn)以供對(duì)于設(shè)備或?qū)ο蟮姆?wù)的開(kāi)發(fā)者使用,并且/或者可以包括在根據(jù)本發(fā)明操作的應(yīng)用程序或服務(wù)器軟件之內(nèi)。軟件可以在由諸如客戶(hù)機(jī)工作站、服務(wù)器或其它設(shè)備等一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。通常,在各個(gè)實(shí)施例中可按照所期望的將各程序模塊的功能組合或分布。而且,可隨其它計(jì)算機(jī)系統(tǒng)配置和協(xié)議實(shí)施本發(fā)明。適于隨本發(fā)明使用的其它廣知的計(jì)算系統(tǒng)、環(huán)境、和/或配置包括,但不限于,個(gè)人計(jì)算機(jī)(PC)、自動(dòng)柜員機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、家電、電燈、環(huán)境控制元件、微型計(jì)算機(jī)、大型計(jì)算機(jī)、等等。
因此圖1示出了可實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的示例,盡管在上文已經(jīng)說(shuō)明了,計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)例子,并不試圖對(duì)本發(fā)明的使用或功能的范圍提出任何限制。也不應(yīng)將計(jì)算環(huán)境100解釋成具有涉及示例性操作環(huán)境100中所示的各組件中的任何一個(gè)或其任何組合的依賴(lài)性或要求。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可包括,但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130、和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各個(gè)系統(tǒng)組件耦合到處理單元120的系統(tǒng)總線(xiàn)121。系統(tǒng)總線(xiàn)121可以是若干類(lèi)型的總線(xiàn)結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線(xiàn)或存儲(chǔ)器控制器、外圍總線(xiàn)、和使用各種總線(xiàn)體系結(jié)構(gòu)中任何一種的局部總線(xiàn)。作為示例,而非限制,此類(lèi)體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線(xiàn)、微通道體系結(jié)構(gòu)(MCA)總線(xiàn)、擴(kuò)展ISA(EISA)總線(xiàn)、視頻電子計(jì)數(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線(xiàn)、外圍部件互聯(lián)(PCI)總線(xiàn)(也稱(chēng)Mezzanine總線(xiàn))。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)110可訪(fǎng)問(wèn)的任何可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移動(dòng)介質(zhì),用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其他光盤(pán)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或可用于存儲(chǔ)期望信息并可由計(jì)算機(jī)110訪(fǎng)問(wèn)的任何其他介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指以在信號(hào)中將信息編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有線(xiàn)網(wǎng)絡(luò)或直接連線(xiàn)等有線(xiàn)介質(zhì),及諸如聲學(xué)、RF、紅外及其他無(wú)線(xiàn)介質(zhì)等無(wú)線(xiàn)介質(zhì)。以上的任意組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范疇內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),諸如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132。包含例如在啟動(dòng)期間在計(jì)算機(jī)110內(nèi)部各元件間傳送信息的基本例程的基本輸入輸出系統(tǒng)133(BIOS)通常存儲(chǔ)在ROM 131中。RAM 132通常包含可由處理單元120立即訪(fǎng)問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136及程序數(shù)據(jù)137。
計(jì)算機(jī)110還可包括其他可移動(dòng)/不可移動(dòng),易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅僅作為例子,圖1示出讀或?qū)懖豢梢苿?dòng)、非易失性磁介質(zhì)的硬盤(pán)驅(qū)動(dòng)器141、讀或?qū)懣梢苿?dòng)、非易失性磁盤(pán)152的磁盤(pán)驅(qū)動(dòng)器151、以及讀或?qū)懼T如CD-RW、DVD-RW或其他光介質(zhì)等可移動(dòng)、非易失性光盤(pán)156的光盤(pán)驅(qū)動(dòng)器155??捎糜谑纠圆僮鳝h(huán)境的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器141通常通過(guò)諸如接口140等不可移動(dòng)存儲(chǔ)器接口連到系統(tǒng)總線(xiàn)121,而磁盤(pán)驅(qū)動(dòng)器151和光盤(pán)驅(qū)動(dòng)器155通常通過(guò)諸如接口150等可移動(dòng)存儲(chǔ)器接口連到系統(tǒng)總線(xiàn)121。
在上面討論并在圖1中示出的各驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其他數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤(pán)驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147。要注意,這些組件可以和操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137相同或者相異。此處給操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147不同的標(biāo)號(hào),以說(shuō)明至少它們是不同的副本。用戶(hù)可通過(guò)諸如鍵盤(pán)162和諸如鼠標(biāo)、跟蹤球或觸摸墊等定位設(shè)備161之類(lèi)的輸入設(shè)備來(lái)輸入命令和信息到計(jì)算機(jī)110中。其它輸入設(shè)備(未示出)可包括話(huà)筒、操縱桿、游戲墊、圓盤(pán)式衛(wèi)星天線(xiàn)、掃描儀等等。這些及其他設(shè)備常通過(guò)耦合到系統(tǒng)總線(xiàn)121的用戶(hù)輸入接口160連到處理單元120,但也可通過(guò)其他接口和總線(xiàn)結(jié)構(gòu)連接,諸如并行端口、游戲端口或通用串行總線(xiàn)(USB)。圖形接口182也可連接到系統(tǒng)總線(xiàn)121。一個(gè)或多個(gè)圖形處理單元(GPU)184可與圖形接口182通信。監(jiān)視器191或其它類(lèi)型的顯示設(shè)備也通過(guò)諸如視頻接口190等接口連到系統(tǒng)總線(xiàn)121。除了監(jiān)視器191之外,計(jì)算機(jī)還可包括其他外圍輸出設(shè)備,諸如揚(yáng)聲器197和打印機(jī)196,它們可通過(guò)輸出外圍接口195連接。
計(jì)算機(jī)110可在使用諸如遠(yuǎn)程計(jì)算機(jī)180的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接的聯(lián)網(wǎng)或分布式環(huán)境中運(yùn)行。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他通用網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括相對(duì)于計(jì)算機(jī)110所描述的許多或全部元件,盡管在圖1中僅示出記憶存儲(chǔ)設(shè)備181。圖1描繪的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其他網(wǎng)絡(luò)/總線(xiàn)。諸如此類(lèi)的網(wǎng)絡(luò)環(huán)境常見(jiàn)于家庭、辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連到LAN 171。當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或用于通過(guò)諸如因特網(wǎng)等WAN 173建立通信的其它裝置。可以是內(nèi)置或外置的調(diào)制解調(diào)器172可經(jīng)由用戶(hù)輸入接口160或其它適當(dāng)?shù)臋C(jī)制連到系統(tǒng)總線(xiàn)121。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)110描繪的程序模塊或其部分可存儲(chǔ)于遠(yuǎn)程記憶存儲(chǔ)設(shè)備中。作為示例而非限制,圖1示出遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181中。應(yīng)當(dāng)理解,所示網(wǎng)絡(luò)連接是示例性的,且可使用在計(jì)算機(jī)間建立通信鏈路的其它手段。
虛擬機(jī)圖2是表示用于計(jì)算機(jī)系統(tǒng)中的虛擬化環(huán)境的硬件和軟件體系結(jié)構(gòu)邏輯分層圖。在圖中,虛擬化程序210直接地或間接地在物理硬件體系結(jié)構(gòu)212上運(yùn)行。虛擬化程序210可以是與主操作系統(tǒng)并行運(yùn)行的虛擬機(jī)監(jiān)控程序,或者是具有系統(tǒng)管理程序組件的主操作系統(tǒng),其中系統(tǒng)管理程序組件執(zhí)行虛擬化。虛擬化程序210虛擬客硬件體系結(jié)構(gòu)208(示為虛線(xiàn)以說(shuō)明此組件是分區(qū)或“虛擬機(jī)”的事實(shí)),即,非實(shí)際存在、而是由虛擬化程序210虛擬的硬件??筒僮飨到y(tǒng)206在客硬件體系結(jié)構(gòu)208上執(zhí)行,軟件應(yīng)用程序204在客操作系統(tǒng)206上運(yùn)行。在圖2的虛擬化操作環(huán)境中,即使軟件應(yīng)用程序204設(shè)計(jì)成在與主操作系統(tǒng)和硬件體系結(jié)構(gòu)212一般不兼容的操作系統(tǒng)上運(yùn)行,軟件應(yīng)用程序204仍可在計(jì)算機(jī)系統(tǒng)202中運(yùn)行。
圖3A示出包括直接在物理計(jì)算機(jī)硬件302上運(yùn)行的主操作系統(tǒng)(主OS)軟件層304的虛擬計(jì)算系統(tǒng),其中主OS 304通過(guò)布置分區(qū)A 308和B 310的接口分別供操作系統(tǒng)312和314使用,提供了物理計(jì)算機(jī)硬件302的資源的訪(fǎng)問(wèn)入口。這使得主OS 304能夠不受注意地旁路掉在其上運(yùn)行的操作系統(tǒng)層312和314。并且,為執(zhí)行虛擬化,主OS 304可以是具有本機(jī)虛擬化能力的專(zhuān)門(mén)設(shè)計(jì)的操作系統(tǒng),或者替換地,可以是具有用來(lái)執(zhí)行虛擬化的合成的系統(tǒng)管理程序(未圖示)的標(biāo)準(zhǔn)操作系統(tǒng)。
再參考圖3A,在主OS 304上面是兩個(gè)分區(qū),例如可以是虛擬Intel 386處理器的分區(qū)A 308、和例如可以是Motorola 680X0族處理器中的一種的虛擬版本的分區(qū)B 310。分區(qū)308和310內(nèi)分別是客操作系統(tǒng)(客OS)A 312和B 314。在客OS A 312上運(yùn)行的是2個(gè)應(yīng)用程序,應(yīng)用程序A1 316和應(yīng)用程序A2 318;在客OS B 314上運(yùn)行的是應(yīng)用程序B1 320。
關(guān)于圖3A,重要的是要注意分區(qū)A 308和分區(qū)B 314(虛線(xiàn)所示)是僅作為軟件編制存在的虛擬計(jì)算機(jī)硬件表示。它們是由于執(zhí)行專(zhuān)門(mén)的虛擬化軟件而實(shí)現(xiàn)的,該虛擬化軟件不僅分別向客OS A 312和客OS 314呈現(xiàn)分區(qū)A 308和分區(qū)B 310,還執(zhí)行客OS A 312和客OS B 314間接與實(shí)際物理計(jì)算機(jī)硬件302交互所必需的所有軟件步驟。
圖3B示出替換的虛擬計(jì)算系統(tǒng),其中虛擬化由與主操作系統(tǒng)304”并行運(yùn)行的虛擬機(jī)監(jiān)控程序(VMM)304’執(zhí)行。在某些情形中,VMM 304’可以是在主操作系統(tǒng)304”上運(yùn)行并僅通過(guò)主操作系統(tǒng)304”與計(jì)算機(jī)硬件302交互的應(yīng)用程序。在其它情形中,如圖3B中所示,VMM 304’相反可以包括在某些層次上經(jīng)由主操作系統(tǒng)304”與計(jì)算機(jī)硬件302間接交互、但在其它層次上VMM 304’與計(jì)算機(jī)硬件302直接交互(類(lèi)似于主操作系統(tǒng)直接與計(jì)算機(jī)硬件交互的方式)的部分獨(dú)立的軟件系統(tǒng)。在另外的情形中,VMM 304’可包括在所有層次上與計(jì)算機(jī)硬件302直接交互(類(lèi)似于主操作系統(tǒng)與計(jì)算機(jī)硬件直接交互的方式)、而不使用主操作系統(tǒng)304”(盡管仍與主操作系統(tǒng)304”交互以協(xié)調(diào)計(jì)算機(jī)硬件302的使用并避免沖突等)的完全獨(dú)立的軟件系統(tǒng)。
所有這些用于實(shí)現(xiàn)上述分區(qū)的變體只是示例性的實(shí)現(xiàn),不應(yīng)將本文中的任何內(nèi)容解釋為將本發(fā)明限制于任何特定的虛擬化方面。
分區(qū)總線(xiàn)概述設(shè)備共享和數(shù)據(jù)傳輸在本發(fā)明的一個(gè)方面,創(chuàng)建了一種硬件總線(xiàn)的軟件模型。此“總線(xiàn)”是“分區(qū)總線(xiàn)”。分區(qū)總線(xiàn)允許分區(qū)間數(shù)據(jù)傳輸機(jī)制的正式化。并且,使用分區(qū)總線(xiàn)使得構(gòu)建允許設(shè)備共享和OS間集成的服務(wù)更為簡(jiǎn)單。
分區(qū)總線(xiàn)是一種在有多個(gè)分區(qū)運(yùn)行的系統(tǒng)中的各分區(qū)之間或之內(nèi)使用的信息(請(qǐng)求和/或數(shù)據(jù))傳輸機(jī)制。但是,它并不試圖作為虛擬機(jī)環(huán)境中可用的唯一信息傳輸機(jī)制。同樣地,它不需要在客戶(hù)機(jī)分區(qū)/服務(wù)分區(qū)關(guān)系中滿(mǎn)足客戶(hù)機(jī)分區(qū)的每個(gè)單獨(dú)的可能的目標(biāo)。例如,它不必要盡早加載到NT內(nèi)核模式環(huán)境中以使硬件抽象層(HAL)可將其用于初始化。
在一個(gè)方面,分區(qū)總線(xiàn)依靠系統(tǒng)管理程序進(jìn)程間通信(IPC)來(lái)安裝、在分區(qū)間建立通信通道、和將中斷注入各分區(qū)。
圖4示出允許在分區(qū)間共享設(shè)備和傳輸信息的分區(qū)總線(xiàn)的一般概念。描繪了3個(gè)分區(qū),一個(gè)服務(wù)分區(qū)402和2個(gè)客戶(hù)機(jī)分區(qū)客戶(hù)機(jī)分區(qū)A 404和客戶(hù)機(jī)分區(qū)B406。這些分區(qū)由系統(tǒng)管理程序410維護(hù)。這些分區(qū)的每一個(gè)可以有某種OS,或者與其它分區(qū)的OS相同,或者是不同的OS。因此,服務(wù)分區(qū)402可運(yùn)行Windows XP;客戶(hù)機(jī)分區(qū)A 404可運(yùn)行Windows 2000,客戶(hù)機(jī)分區(qū)B 406可運(yùn)行Windows 98。
并且,這些分區(qū)的每一個(gè)都包含一些設(shè)備。具體地,服務(wù)分區(qū)402包含物理設(shè)備424的設(shè)備驅(qū)動(dòng)程序418。設(shè)備驅(qū)動(dòng)程序418與允許合成設(shè)備與物理設(shè)備424通信的的虛擬化服務(wù)提供器(VSP)417通信。因此,客戶(hù)機(jī)分區(qū)A 404中的合成設(shè)備420與客戶(hù)機(jī)分區(qū)B 406中的合成設(shè)備422可經(jīng)由分區(qū)總線(xiàn)408使用物理設(shè)備424的服務(wù)。
分區(qū)總線(xiàn)408提供一種手段,使客戶(hù)機(jī)分區(qū)A 404和客戶(hù)機(jī)分區(qū)B 406具有訪(fǎng)問(wèn)物理設(shè)備424的入口分別供其合成設(shè)備420和422使用。換言之,分區(qū)總線(xiàn)408提供一種將諸如物理設(shè)備424等某個(gè)設(shè)備的所有權(quán)分配給諸如Windows XP 412等某個(gè)單獨(dú)的OS的手段,以及一種將該設(shè)備的服務(wù)與諸如Windows 2000 414和Windows 98 416等其它運(yùn)行的OS共享的手段。
此外,分區(qū)總線(xiàn)408還允許各OS在各分區(qū)間移動(dòng)數(shù)據(jù),從而數(shù)據(jù)可輕易地從例如服務(wù)分區(qū)402移動(dòng)到第二客戶(hù)機(jī)分區(qū)B 406,而不會(huì)導(dǎo)致?tīng)可鏀?shù)據(jù)移動(dòng)事務(wù)中的傳統(tǒng)系統(tǒng)管理程序410機(jī)制的高計(jì)算成本。
分區(qū)總線(xiàn)設(shè)備共享在本發(fā)明的另一個(gè)方面,圖5A示出由某分區(qū)中的本地代理合成設(shè)備表示的遠(yuǎn)程服務(wù)。當(dāng)通過(guò)分區(qū)總線(xiàn)514提供例如隨某遠(yuǎn)程操作系統(tǒng)510存儲(chǔ)在某遠(yuǎn)程分區(qū)508的遠(yuǎn)程服務(wù)512,一合成設(shè)備506即被添加到客戶(hù)機(jī)分區(qū)的操作系統(tǒng)504。在如遠(yuǎn)程服務(wù)512等服務(wù)實(shí)例與如設(shè)備506等合成設(shè)備之間有一一對(duì)應(yīng)。每一個(gè)合成設(shè)備都可用于像任何通常的設(shè)備在通常的協(xié)議總線(xiàn)上發(fā)送和接收數(shù)據(jù)那樣地發(fā)送和接收數(shù)據(jù)。
圖5B示出可對(duì)應(yīng)于可在分區(qū)總線(xiàn)上使用的合成設(shè)備的設(shè)備和服務(wù)的類(lèi)型。具體參考圖5B,呈現(xiàn)了合成設(shè)備516。此合成設(shè)備516可對(duì)應(yīng)于各種設(shè)備518存儲(chǔ)、網(wǎng)絡(luò)、輸入(鍵盤(pán)和鼠標(biāo))、音頻、視頻、智能卡、等等。合成設(shè)備516還可對(duì)應(yīng)于各種服務(wù)518時(shí)間同步、拖放、文件夾共享、剪貼、遠(yuǎn)程執(zhí)行、遠(yuǎn)程應(yīng)用程序啟動(dòng)、進(jìn)程間通信。對(duì)于合成設(shè)備516所能建模的設(shè)備和服務(wù)的類(lèi)型實(shí)際上沒(méi)有限制。
分區(qū)總線(xiàn)數(shù)據(jù)傳輸分區(qū)總線(xiàn)602允許根據(jù)要從一個(gè)分區(qū)傳送到另一個(gè)分區(qū)的數(shù)據(jù)量是少量、中等還是大量,以至少3種截然不同的方法傳送請(qǐng)求(或命令)和數(shù)據(jù)。因此,在圖6中,示出了這3種發(fā)送數(shù)據(jù)的模型環(huán)形緩沖區(qū)模型604;傳送頁(yè)模型606;和地址空間操縱模型608。
一般而言,環(huán)形緩沖區(qū)模型604用環(huán)形緩沖區(qū)610從一個(gè)分區(qū)向另一個(gè)分區(qū)發(fā)送請(qǐng)求和數(shù)據(jù)。環(huán)形緩沖區(qū)僅僅是固定大小的緩沖區(qū),在“環(huán)”中當(dāng)緩沖區(qū)填滿(mǎn)時(shí),更多的信息將放回該緩沖區(qū)的起始,覆蓋掉舊的數(shù)據(jù)。在通常的虛擬系統(tǒng)中,環(huán)形緩沖區(qū)可同時(shí)供2個(gè)或多個(gè)OS使用。
傳送頁(yè)模型606用環(huán)形緩沖區(qū)612發(fā)送請(qǐng)求,并用傳送頁(yè)614發(fā)送數(shù)據(jù)(圖示了2個(gè)傳送頁(yè)頁(yè)A和B)。傳送頁(yè)是存儲(chǔ)器中所分配的頁(yè),通過(guò)將信息從某個(gè)分區(qū)復(fù)制到所分配的頁(yè)并從所分配的頁(yè)復(fù)制到另一個(gè)分區(qū)來(lái)傳送信息。傳送頁(yè)模型與環(huán)形緩沖區(qū)不同,因?yàn)樗痪哂薪Y(jié)構(gòu)、協(xié)議、或相關(guān)聯(lián)的排序。因此,傳送頁(yè)模型更適合作DMA操作的目標(biāo),并且在傳送頁(yè)間操縱數(shù)據(jù)時(shí)可避免保持鎖定。
最后,示出地址空間操縱模型608。與其它2個(gè)模型一樣,用環(huán)形緩沖區(qū)616存儲(chǔ)來(lái)自一個(gè)分區(qū)的請(qǐng)求以供另一個(gè)分區(qū)讀取。還示出3個(gè)存儲(chǔ)器映像服務(wù)分區(qū)存儲(chǔ)器映像618、客戶(hù)機(jī)分區(qū)存儲(chǔ)映像622、和非虛擬系統(tǒng)存儲(chǔ)器映像620??蛻?hù)機(jī)分區(qū)和服務(wù)分區(qū)可改變其存儲(chǔ)器映像618和622的一部分以對(duì)應(yīng)于非虛擬系統(tǒng)存儲(chǔ)器映像620,從而不需要復(fù)制數(shù)據(jù)(與傳送頁(yè)模型的情形不同)而可由2個(gè)分區(qū)訪(fǎng)問(wèn)和讀取這些數(shù)據(jù)。這意味著客戶(hù)機(jī)分區(qū)和服務(wù)分區(qū)改變其存儲(chǔ)器映像,從而它們能共享某些公有的物理存儲(chǔ)頁(yè)。代價(jià)是必需先分別將客戶(hù)機(jī)和服務(wù)分區(qū)的存儲(chǔ)器映像618和622變?yōu)閷?duì)應(yīng)于某個(gè)非虛擬系統(tǒng)存儲(chǔ)器映像620,隨后一旦完成了任何給定的事務(wù),必需將其改回其原始的映像。因此,對(duì)比于用復(fù)制在分區(qū)間傳送數(shù)據(jù)的傳送頁(yè)模型,空間操縱模型利用地址映像改變。
值得注意的是,少量、中等或大量數(shù)據(jù)的概念是相對(duì)概念,在某種程度上是由計(jì)算機(jī)系統(tǒng)資源定義的。取決于系統(tǒng)資源的可用性,可應(yīng)用適當(dāng)?shù)膫魉湍P汀R虼?,基于?jīng)驗(yàn),當(dāng)要傳送少量數(shù)據(jù)時(shí),環(huán)形緩沖區(qū)模型是最有效的;當(dāng)要傳送中等數(shù)量的數(shù)據(jù)時(shí),傳送頁(yè)模型是最有效的;當(dāng)要傳送大量數(shù)據(jù)時(shí),地址空間操縱模型是最有效的。
因此,在本發(fā)明的一個(gè)方面,環(huán)形緩沖區(qū)模型使用留出的存儲(chǔ)器區(qū)域在2個(gè)分區(qū)間傳送請(qǐng)求和數(shù)據(jù)(以合并或單獨(dú)的形式,本文中統(tǒng)稱(chēng)為“信息”)。在此模型中,插入到環(huán)形緩沖區(qū)中的信息包是以一個(gè)包接著另一個(gè)包的形式來(lái)排列的。并且,將包插入到環(huán)形緩沖區(qū)中通常是相對(duì)較快的操作,因?yàn)橹挥胁迦肓酥暗陌蟛拍懿迦牒罄m(xù)的包。因此,環(huán)形緩沖區(qū)最適合于快速傳入的數(shù)據(jù),從而要插入的后續(xù)包沒(méi)有顯著的等待時(shí)間。
圖7示出了環(huán)形緩沖區(qū)模型。系統(tǒng)管理程序(未圖示)維護(hù)2個(gè)分區(qū),客戶(hù)機(jī)分區(qū)702和服務(wù)分區(qū)708。服務(wù)分區(qū)708可能運(yùn)行著某服務(wù)OS 710,它將數(shù)據(jù)的形式的數(shù)據(jù)發(fā)送到客戶(hù)機(jī)分區(qū)702及其OS 704。數(shù)據(jù)相繼排列并放置到環(huán)形緩沖區(qū)706中。類(lèi)似地,請(qǐng)求形式的信息可從客戶(hù)機(jī)分區(qū)702經(jīng)由環(huán)形緩沖區(qū)706發(fā)送到服務(wù)分區(qū)708來(lái)請(qǐng)求執(zhí)行某些服務(wù)。非虛擬系統(tǒng)存儲(chǔ)器705中的環(huán)形緩沖區(qū)706在分區(qū)702和708中分別映射到706A和706B,以允許在2個(gè)分區(qū)702和708之間交換請(qǐng)求和數(shù)據(jù)。因此,圖7示出在服務(wù)分區(qū)702和客戶(hù)機(jī)分區(qū)708之間經(jīng)由環(huán)形緩沖區(qū)706發(fā)送的2包請(qǐng)求和2包數(shù)據(jù)。
在本發(fā)明的另一個(gè)方面,使用了發(fā)送頁(yè)模型。在此模型中,頁(yè)庫(kù)由傳輸庫(kù)管理。有趣的是,服務(wù)分區(qū)或者客戶(hù)機(jī)分區(qū)能在任何時(shí)候分配傳送頁(yè)組,并將其添加到已在使用的現(xiàn)有組中。分配傳送頁(yè)組的分區(qū)擁有該組的管理權(quán),包括在該組內(nèi)頁(yè)的分配和解除分配。
與傳送頁(yè)相關(guān)聯(lián)的唯一成本來(lái)自其同時(shí)被分配并映射到客戶(hù)機(jī)和服務(wù)分區(qū)中的時(shí)候。分區(qū)的物理地址映射也改變了,但這是可通過(guò)多次傳送攤薄的一次性操作。并且,因?yàn)閭魉晚?yè)是永久地映射到2個(gè)分區(qū)的,所以不能在其中存儲(chǔ)保密信息,但這也意味著永遠(yuǎn)不需要清除它們。
如上所述,圖8中所示的傳送頁(yè)模型與圖7中所示的環(huán)形緩沖區(qū)模型不同,因?yàn)閭魉晚?yè)不需要與其相關(guān)聯(lián)的結(jié)構(gòu)、協(xié)議、或排序,這使客戶(hù)機(jī)能更自由地將傳送頁(yè)作為DMA操作的目標(biāo)來(lái)使用,并能更自由地避免在其間操縱數(shù)據(jù)的保持鎖定。
圖8示出傳送頁(yè)模型的示例性實(shí)現(xiàn)。描繪了服務(wù)分區(qū)802和客戶(hù)機(jī)分區(qū)804,這2個(gè)分區(qū)由系統(tǒng)管理程序806維護(hù)。在圖8中,客戶(hù)機(jī)分區(qū)804中的用戶(hù)模式進(jìn)程請(qǐng)求來(lái)自服務(wù)分區(qū)802中的虛擬磁盤(pán)服務(wù)808所處理的某文件的數(shù)據(jù)。從服務(wù)分區(qū)802獲得數(shù)據(jù)的請(qǐng)求被建模為硬件直接存儲(chǔ)器存取(DMA)事務(wù)。
作為示例,應(yīng)用程序812首先創(chuàng)建關(guān)于7頁(yè)數(shù)據(jù)的請(qǐng)求,這超出了傳送頁(yè)811當(dāng)時(shí)的可用范圍。因此,該請(qǐng)求不得不分成2個(gè)子請(qǐng)求。第一個(gè)請(qǐng)求向下傳遞給虛擬磁盤(pán)驅(qū)動(dòng)器814。在某些實(shí)例中,這可以是過(guò)濾器,在其它實(shí)例中,可以是完全受啟發(fā)的(fully-enlightened)磁盤(pán)驅(qū)動(dòng)器(即,僅與當(dāng)中毫無(wú)虛擬化功能殘余的合成設(shè)備通信的磁盤(pán)驅(qū)動(dòng)器;寬泛意義上,術(shù)語(yǔ)“受啟發(fā)的”(enlightened)指知悉其在虛擬環(huán)境中運(yùn)行的OS環(huán)境)。
虛擬磁盤(pán)驅(qū)動(dòng)器814用從其物理設(shè)備對(duì)象(PDO)獲得的功能來(lái)創(chuàng)建標(biāo)準(zhǔn)DMA請(qǐng)求818。虛擬磁盤(pán)驅(qū)動(dòng)器接口實(shí)例816隨即分配來(lái)自傳輸頁(yè)庫(kù)的所有當(dāng)前可用的頁(yè)。在此例中,合計(jì)為5頁(yè)811A-811E,如傳輸頁(yè)811中用豎線(xiàn)示出。
接下來(lái),向服務(wù)分區(qū)802中的服務(wù)器發(fā)送請(qǐng)求以從虛擬磁盤(pán)服務(wù)808獲取這些頁(yè)。當(dāng)服務(wù)器填滿(mǎn)了所請(qǐng)求的頁(yè),即,將所請(qǐng)求的數(shù)據(jù)復(fù)制到頁(yè)811A-811E中,它向客戶(hù)機(jī)分區(qū)804發(fā)回消息。隨后數(shù)據(jù)從傳送頁(yè)復(fù)制到應(yīng)用程序812所維護(hù)的緩沖區(qū)中。當(dāng)完成了復(fù)制操作,傳輸頁(yè)811A-811E被釋放。
對(duì)于第二個(gè)請(qǐng)求,從庫(kù)中分配另2個(gè)頁(yè),811I和811J(所描繪的其它頁(yè),811F-811H是其它未示出的請(qǐng)求所保留的頁(yè))。因此,向服務(wù)分區(qū)802發(fā)送新的請(qǐng)求,要求2頁(yè)的數(shù)據(jù)。如前,服務(wù)分區(qū)802服務(wù)器將數(shù)據(jù)填滿(mǎn)到傳輸頁(yè)811I-811J,并將關(guān)于其操作的消息發(fā)回客戶(hù)機(jī)804。數(shù)據(jù)隨即再次被復(fù)制到應(yīng)用程序812的緩沖區(qū),從而完成了起先被分成2個(gè)階段的請(qǐng)求。
傳送頁(yè)811用于傳送數(shù)據(jù)。用環(huán)形緩沖區(qū)810來(lái)傳送請(qǐng)求。在本發(fā)明的這個(gè)方面,請(qǐng)求傳送的序列性和包性質(zhì)和圖7中所討論的相同,圖中僅用環(huán)形緩沖區(qū)來(lái)傳送請(qǐng)求和數(shù)據(jù)。
在本發(fā)明的其它方面,用地址空間操縱來(lái)避免以上分別在圖7和8中討論的環(huán)形緩沖區(qū)和傳送頁(yè)所執(zhí)行的存儲(chǔ)器復(fù)制的高成本。某些事務(wù)涉及任意放置在客戶(hù)機(jī)的物理地址空間中的緩沖區(qū),并且需要傳送非常大量的數(shù)據(jù)。在此情況中,不使用傳送頁(yè),因?yàn)樗鼈儠?huì)強(qiáng)制將來(lái)自固定位置的傳送頁(yè)的數(shù)據(jù)復(fù)制到任意放置的緩沖區(qū)。為了確保數(shù)據(jù)能被直接放到其最終所要處于的存儲(chǔ)器中,必需改變服務(wù)分區(qū)的物理地址映射,從而其至少暫時(shí)地包含來(lái)自客戶(hù)機(jī)分區(qū)的頁(yè)。隨后,可由軟件或硬件將數(shù)據(jù)直接寫(xiě)入到那些頁(yè)或從其中讀出。在完成事務(wù)之后,改回地址映射,從服務(wù)器的物理地址映射刪除客戶(hù)機(jī)的頁(yè)。因?yàn)檫@組操作相對(duì)較成本較高,所以不用來(lái)傳送少量的數(shù)據(jù)——在此情況中將數(shù)據(jù)復(fù)制到傳送緩沖區(qū)或從傳送緩沖區(qū)復(fù)制數(shù)據(jù)比改變地址映射更有效。
在圖9中,示出客戶(hù)機(jī)分區(qū)902和服務(wù)分區(qū)908,這兩個(gè)分區(qū)均由系統(tǒng)管理程序(未圖示)維護(hù)。分區(qū)902和908的每一個(gè)都有自己的OS,分別是904和910。這些OS分別維護(hù)存儲(chǔ)器地址映射914和916,它們將虛擬地址映射到分區(qū)物理地址。如果要在這些分區(qū)之間傳送大量信息(主要為數(shù)據(jù)),最有效的機(jī)制涉及改變有關(guān)客戶(hù)機(jī)分區(qū)的存儲(chǔ)器映射914,并將其與某些非虛擬的系統(tǒng)存儲(chǔ)器映射907相關(guān)聯(lián)。例如,在圖9中,客戶(hù)機(jī)分區(qū)902中的“A”映射與非虛擬的系統(tǒng)存儲(chǔ)器905中的“3”映射相關(guān)聯(lián)。類(lèi)似地,服務(wù)存儲(chǔ)器映射916與非虛擬的系統(tǒng)存儲(chǔ)器映射907相關(guān)聯(lián),從而客戶(hù)機(jī)分區(qū)902和服務(wù)分區(qū)908可訪(fǎng)問(wèn)非虛擬的系統(tǒng)存儲(chǔ)器905,而無(wú)需將數(shù)據(jù)從存儲(chǔ)器中的一個(gè)位置復(fù)制到另一個(gè)位置。因此,服務(wù)分區(qū)908中的“b”映射與非虛擬系統(tǒng)存儲(chǔ)器905中的“3”映射相關(guān)聯(lián)。不進(jìn)行復(fù)制的代價(jià)是必需在事務(wù)的開(kāi)始就改變存儲(chǔ)器映射,并且一旦完成事務(wù)就要改回。當(dāng)要傳送大量數(shù)據(jù)時(shí),此折衷方法很有用。
在本發(fā)明的另一個(gè)方面,圖10示出了一種在分區(qū)間發(fā)送信息而不會(huì)導(dǎo)致與上下文切換相關(guān)聯(lián)的成本的機(jī)制。當(dāng)OS在其各自分區(qū)上運(yùn)行時(shí),CPU在這些分區(qū)間進(jìn)行切換,為每個(gè)分區(qū)提供時(shí)間片。在此類(lèi)時(shí)分系統(tǒng)中,上下文切換時(shí),有與從一個(gè)任務(wù)(或分區(qū))切換到另一個(gè)任務(wù)(或分區(qū))相關(guān)聯(lián)的成本。
并且,在分區(qū)間發(fā)送中斷也合理地涉及高成本的上下文交換。例如,如果客戶(hù)機(jī)分區(qū)要“喚醒”服務(wù)分組,從而可從該服務(wù)分區(qū)獲得服務(wù),則可能必需發(fā)送此類(lèi)的中斷。類(lèi)似地,服務(wù)分區(qū)可能要經(jīng)由中斷讓客戶(hù)機(jī)分區(qū)知悉其已經(jīng)完成客戶(hù)機(jī)分區(qū)所指定的任務(wù)。
為了避免此類(lèi)高成本的上下文交換,在圖10中,在本發(fā)明的這個(gè)方面,將環(huán)形緩沖區(qū)用作某分區(qū)的命令隊(duì)列,將其命令放到另一個(gè)分區(qū)的環(huán)形緩沖區(qū)中,從而在除了速率條件(在下文討論)下以外的情形中避免了發(fā)送中斷。
因此,示出了客戶(hù)機(jī)分區(qū)1002和服務(wù)分區(qū)1010。每個(gè)分區(qū)運(yùn)行著某種操作系統(tǒng),無(wú)論是Windows 98還使Windows XP,并且這些分區(qū)由某個(gè)系統(tǒng)管理程序1016維護(hù)。當(dāng)客戶(hù)機(jī)分區(qū)1002需要來(lái)自服務(wù)分區(qū)1010的服務(wù),例如,可能屬服務(wù)分區(qū)1010所有并對(duì)應(yīng)于服務(wù)分區(qū)1010上的某個(gè)合成設(shè)備的磁盤(pán)控制器服務(wù)——獲得此服務(wù)的一個(gè)方法是讓客戶(hù)機(jī)分區(qū)1002將信息(通常為命令/請(qǐng)求)寫(xiě)入環(huán)形緩沖區(qū)1006。服務(wù)分區(qū)1010隨即可讀出這些命令并照做任何請(qǐng)求。環(huán)形緩沖區(qū)1006被同時(shí)映射到(1006A和1006B)分區(qū)1002和1010這個(gè)事實(shí)允許這些分區(qū)能夠通信,而不會(huì)導(dǎo)致上下文交換的成本。
服務(wù)分區(qū)1010還能將信息(通常是對(duì)請(qǐng)求的響應(yīng)和/或數(shù)據(jù))寫(xiě)入環(huán)形緩沖區(qū)1006,以使客戶(hù)機(jī)分區(qū)1002知悉已完成其請(qǐng)求。在此情形中,用環(huán)形緩沖區(qū)1006來(lái)表示分區(qū)總線(xiàn)1008,但也可應(yīng)用上述的其它模型。
使用此環(huán)形緩沖區(qū)實(shí)現(xiàn)的分區(qū)不需要獲得中斷來(lái)從環(huán)形緩沖區(qū)讀取命令,因此可避免發(fā)送中斷(及所有相關(guān)聯(lián)的上下文交換)的成本。然而,例如當(dāng)服務(wù)分區(qū)不是在運(yùn)行從客戶(hù)機(jī)分區(qū)發(fā)來(lái)的命令時(shí),那么中斷是引起那些命令開(kāi)始運(yùn)行的適當(dāng)方法。
簡(jiǎn)而言之,此情形中的環(huán)形緩沖區(qū)模型避免了上下文切換的成本,但在兩個(gè)條件下可使用中斷(1)當(dāng)傳出的環(huán)形緩沖區(qū)已為空且后來(lái)不為空時(shí),或者(2)當(dāng)傳入的環(huán)形緩沖區(qū)已滿(mǎn)且后來(lái)不滿(mǎn)時(shí),可能必需從一個(gè)分區(qū)向另一個(gè)分區(qū)發(fā)送中斷(從客戶(hù)機(jī)分區(qū)1002的觀點(diǎn)出發(fā),環(huán)形緩沖區(qū)1006是傳出的環(huán)形緩沖區(qū),環(huán)形緩沖區(qū)1006是傳入的環(huán)形緩沖區(qū)——從服務(wù)分區(qū)1010的觀點(diǎn)出發(fā)則相反為真)。
例如,在第一種情形中,當(dāng)環(huán)形緩沖區(qū)1006已滿(mǎn)且后來(lái)不滿(mǎn)時(shí),客戶(hù)機(jī)分區(qū)1002可能必需讓服務(wù)分區(qū)1010知悉其環(huán)形緩沖區(qū)1014已為信息(可能為命令/請(qǐng)求)所填滿(mǎn)。在第二種情形中,當(dāng)環(huán)形緩沖區(qū)1006已滿(mǎn)且后來(lái)不滿(mǎn)時(shí),客戶(hù)機(jī)分區(qū)1002可能經(jīng)由中斷讓服務(wù)分區(qū)1010知悉環(huán)形緩沖區(qū)1006不再是填滿(mǎn)的。
本發(fā)明的這個(gè)方面由其適用于具有一個(gè)以上處理器的機(jī)器。它可能讓客戶(hù)機(jī)分區(qū)1002和服務(wù)分區(qū)1010同時(shí)運(yùn)行,且每個(gè)分區(qū)向另一個(gè)分區(qū)發(fā)送信息而不會(huì)導(dǎo)致上下文交換。
本發(fā)明的這個(gè)方面的另一種形式將在發(fā)送中斷前引入延遲,以防本來(lái)要接收該中斷的分區(qū)將在非常短的時(shí)間內(nèi)正好將重新運(yùn)行而使得中斷多余。當(dāng)然,中斷會(huì)增加等待時(shí)間,但等待時(shí)間的成本可能低于中斷的成本。
在本發(fā)明的另一個(gè)方面,分區(qū)總線(xiàn)允許一個(gè)服務(wù)的不同版本和實(shí)例并存。在圖11中,提供了服務(wù)1102。每個(gè)服務(wù)的ID由2個(gè)128位的全局唯一標(biāo)識(shí)符(GUID)組成。這些ID中的第一個(gè)唯一地表示了服務(wù)實(shí)例。例如,服務(wù)實(shí)例A1104可以是虛擬磁盤(pán),此虛擬磁盤(pán)獲得分配給它的唯一ID 1108(例如,c80ccb8a……),虛擬磁盤(pán)的任何其它實(shí)例(未圖示)將收到不同的唯一ID。
伴隨著服務(wù)實(shí)例ID,還有服務(wù)版本ID,也由GUID表示。此GUID表示服務(wù)器所實(shí)現(xiàn)的協(xié)議。(該協(xié)議可以是該服務(wù)器所管理的所有命令和操作的總和)。因此,在圖11中,服務(wù)1102的服務(wù)版本ID 1106是b73606dc……。這兩個(gè)GUID用于創(chuàng)建合成設(shè)備在分區(qū)總線(xiàn)上的總線(xiàn)級(jí)即插即用ID。在客戶(hù)機(jī)分區(qū)中運(yùn)行的OS的實(shí)例可基于這些即插即用ID來(lái)決定要加載哪個(gè)驅(qū)動(dòng)器,從而允許該OS甚至可能在單獨(dú)的驅(qū)動(dòng)器文件中維護(hù)某服務(wù)的多個(gè)版本的驅(qū)動(dòng)器。并且,可向不同的設(shè)備版本——正如同服務(wù)那樣——提供GUID來(lái)確定設(shè)備實(shí)例和設(shè)備版本。
此外,服務(wù)器分區(qū)完全可能同時(shí)為諸如磁盤(pán)等單個(gè)資源創(chuàng)建多個(gè)服務(wù)實(shí)例,每個(gè)服務(wù)實(shí)現(xiàn)不同的協(xié)議版本。可向客戶(hù)機(jī)分區(qū)提供同一個(gè)虛擬磁盤(pán)的兩個(gè)實(shí)例,由其選擇僅僅加載與其所支持的協(xié)議版本相關(guān)聯(lián)的驅(qū)動(dòng)器。
在本發(fā)明的某些方面,呈現(xiàn)了基于分區(qū)的身份和置信度來(lái)作策略決策的能力。分區(qū)總線(xiàn)通道在某些分區(qū)可能不受歡迎。具體地,允許通道提供到達(dá)特定安全分區(qū)可能是不合適的。此策略有各種理由(1)不想允許某分區(qū)冒充為某安全分區(qū)的引導(dǎo)磁盤(pán)服務(wù)器;(2)不想允許不受信任的I/O路徑,或者;(3)不想允許某分區(qū)使用另一個(gè)分區(qū)中的任何資源,當(dāng)作出通道提供時(shí)這可能會(huì)發(fā)生。
為了支持此類(lèi)策略決策,本發(fā)明現(xiàn)在這個(gè)方面訓(xùn)練分區(qū)總線(xiàn)通道策略代理。通道策略代理仲裁信道提供。圖12示出在運(yùn)行某版本的Windows的分區(qū)的實(shí)例中實(shí)現(xiàn)的通道策略代理。可假定,此類(lèi)代理將必需訪(fǎng)問(wèn)分區(qū)清單之類(lèi)的事物,這將保證對(duì)此分區(qū)應(yīng)允許某些具體I/O通道,但禁止另一些。
圖12中示出本發(fā)明這個(gè)方面的狀態(tài)圖。在圖12中,示出系統(tǒng)管理程序926所維護(hù)的3個(gè)分區(qū)(1)服務(wù)分區(qū)1202,(2)安全過(guò)濾器分區(qū)1204,和(3)安全客分區(qū)1206。在服務(wù)分區(qū)1202中,首先,通道服務(wù)器1208向通道管理庫(kù)1210發(fā)送通道提供的請(qǐng)求。第二,該該提供存儲(chǔ)在提供緩存1212中。接下來(lái)提供緩存1212將提供轉(zhuǎn)發(fā)給安全過(guò)濾器分區(qū)1204的提供緩存1218(或者策略代理正好為某安全分區(qū)駐留的位置)。
第三,安全過(guò)濾器分區(qū)1204中的通道管理庫(kù)1216將提供向上發(fā)送到通道策略代理1214進(jìn)行審查。第四,通道策略代理1214向通道管理庫(kù)1216發(fā)送響應(yīng),告訴庫(kù)1216終止該提供或轉(zhuǎn)發(fā)該提供。第五,如果要轉(zhuǎn)發(fā)提供,則將其發(fā)送到受信任的客分區(qū)1206中的提供緩存1224。
第六,當(dāng)提供到達(dá)提供緩存1224時(shí),它觸發(fā)枚舉通道,該受信任的客分區(qū)1206中的軟件決定打開(kāi)信道。第七,信道客戶(hù)機(jī)1220隨即直接將消息發(fā)回通道服務(wù)器1208,打開(kāi)該信道。因此,以此方法,可由位于安全過(guò)濾器分區(qū)的策略代理來(lái)仲裁通道提供。
分區(qū)總線(xiàn)其它方面在本發(fā)明的其它方面,若干仿真設(shè)備模塊(EDM)并發(fā)地、并與像分區(qū)總線(xiàn)等受啟發(fā)的(虛擬機(jī)知悉的)數(shù)據(jù)傳送機(jī)制協(xié)同操作。以和對(duì)物理硬件設(shè)備同樣的方式響應(yīng)于I/O請(qǐng)求,EDM被寫(xiě)入。如果給定的客操作系統(tǒng)被寫(xiě)入來(lái)支持論及的物理硬件設(shè)備(即,它包含對(duì)應(yīng)的驅(qū)動(dòng)器),假設(shè)EDM被正確地寫(xiě)入,則該操作系統(tǒng)無(wú)需修改即可正確操作。因而EDM提供了極好的與傳統(tǒng)操作系統(tǒng)的兼容性,但它們通常引入很高的虛擬化成本。相反,虛擬化服務(wù)提供器(VSP)提供好得多的性能,但它們要求為了客戶(hù)機(jī)OS,新的驅(qū)動(dòng)器(以及潛在地,其它修改)要被寫(xiě)入。
在虛擬機(jī)系統(tǒng)的一個(gè)實(shí)例中,在同一服務(wù)分區(qū)中,至少部分時(shí)間同時(shí)實(shí)現(xiàn)了VSP和EDM,其中與客戶(hù)機(jī)分區(qū)內(nèi)部可用的仿真或虛擬設(shè)備形成對(duì)比,VSP是位于分區(qū)總線(xiàn)上層的服務(wù),為客戶(hù)機(jī)分區(qū)中的合成設(shè)備提供了后端支持。合成設(shè)備是與VSP通信的。
具體地,圖13描繪了客戶(hù)機(jī)分區(qū)1304和服務(wù)分區(qū)1302,包含在各分區(qū)上運(yùn)行的其各自的OS 1306和1308。分區(qū)總線(xiàn)1312提供了2個(gè)分區(qū)1302和1304之間通信的手段。并且,這些分區(qū)1302和1304都由系統(tǒng)管理程序1320維護(hù)。EDM 1316與系統(tǒng)管理程序1320通信以使設(shè)備仿真1315對(duì)客戶(hù)機(jī)分區(qū)1302表現(xiàn)為實(shí)際的設(shè)備。EDM 1316還依靠VSP 1314同與客戶(hù)機(jī)分區(qū)1302共享的實(shí)際物理設(shè)備1322通信(經(jīng)由設(shè)備驅(qū)動(dòng)程序1318)。VSP 1314還通過(guò)合成設(shè)備向客戶(hù)機(jī)分區(qū)1304顯現(xiàn)此設(shè)備1322。
在本發(fā)明的又一個(gè)方面,分區(qū)總線(xiàn)從三個(gè)庫(kù),或更一般地,從三個(gè)組件構(gòu)造而成。因此,在圖14A-14C中,按照在不同的模式中所用的形式示出了分區(qū)總線(xiàn)的各個(gè)組件。這三個(gè)組件是●環(huán)形緩沖區(qū)管理●通道管理,和●總線(xiàn)驅(qū)動(dòng)程序不同的環(huán)境使用分區(qū)總線(xiàn)的不同組件。例如,在圖14A中,用戶(hù)模式服務(wù)1431只獲得環(huán)形緩沖區(qū)管理1432組件,因?yàn)樗績(jī)?nèi)核模式的代碼進(jìn)行通道管理。這在圖14A中著重表現(xiàn)為實(shí)線(xiàn)框的環(huán)形緩沖區(qū)管理1432組件和灰色字體、虛線(xiàn)框的名為通道管理1434和總線(xiàn)驅(qū)動(dòng)程序1436的另2個(gè)組件(表示在用戶(hù)模式1431中缺失這2個(gè)組件)。
在圖14B中,內(nèi)核模式1433的服務(wù)收到所有這3個(gè)組件,即,環(huán)形緩沖區(qū)管理1432、通道管理1434、和總線(xiàn)驅(qū)動(dòng)程序1436。
最后,在圖14C中,加載器1435環(huán)境收到環(huán)形緩沖區(qū)管理1432和通道管理1434,但未收到總線(xiàn)驅(qū)動(dòng)程序1436(虛線(xiàn)框所示)。簡(jiǎn)而言之,分區(qū)總線(xiàn)是由這3個(gè)組件及各種其它次要組件組成的,并且根據(jù)使用分區(qū)總線(xiàn)的環(huán)境,這些組件顯現(xiàn)為各種組合。
分區(qū)總線(xiàn)使用環(huán)形緩沖區(qū)管理1432,在分區(qū)間用環(huán)形緩沖區(qū)傳送數(shù)據(jù)。通道管理1434用于建立分區(qū)間的通道通信。最后,一旦建立了通信通道,總線(xiàn)驅(qū)動(dòng)程序1436控制分區(qū)間的輸入和輸出操作。因此,在某些分區(qū)中的合成設(shè)備可擁有其它分區(qū)中的實(shí)際設(shè)備——在硬件級(jí)——并且此類(lèi)實(shí)際設(shè)備可由其它分區(qū)中的其它合成設(shè)備使用,因?yàn)檩斎牒洼敵霾僮魇怯煽偩€(xiàn)驅(qū)動(dòng)程序1436管理的。
以上已注意到,并非所有的用途都是直接涉及物理設(shè)備的。因此,在本發(fā)明另外的方面,合宜地以用戶(hù)模式組件(例如DLL)而不是內(nèi)核模式驅(qū)動(dòng)器來(lái)實(shí)現(xiàn)不對(duì)應(yīng)于物理設(shè)備的許多用途。分區(qū)總線(xiàn)提供了足夠的基礎(chǔ)結(jié)構(gòu)供完全以用戶(hù)模式創(chuàng)建這些組件,從而允許其置信地址空間管理、中斷傳遞、和其它一般僅從內(nèi)核模式可訪(fǎng)的服務(wù)。
盡管結(jié)合如各附圖中所示的較佳方面來(lái)描述本發(fā)明,應(yīng)當(dāng)理解,可使用其它類(lèi)似的方面,或者可對(duì)所描述的方面進(jìn)行修改和添加以執(zhí)行本發(fā)明同樣的功能,而不會(huì)偏離本發(fā)明。例如,在本發(fā)明的某些方面,描述了分區(qū)總線(xiàn),它提供了在分區(qū)間傳送數(shù)據(jù)、以及將設(shè)備的所有權(quán)分配給選中的分區(qū)并與其它分區(qū)共享該設(shè)備的服務(wù)的機(jī)制。但是,本文的教義還構(gòu)想了本發(fā)明的這個(gè)方面的其它等效設(shè)備。因此,不應(yīng)將本發(fā)明限于任何單獨(dú)的方面,而應(yīng)根據(jù)所附的權(quán)利要求術(shù)的廣度和范圍來(lái)解釋本發(fā)明。
權(quán)利要求
1.一種用于在虛擬機(jī)環(huán)境中的各分區(qū)間提供集成的方法,包括使用第一分區(qū)和第二分區(qū);以及使用一傳輸機(jī)制,其中,所述傳輸機(jī)制允許通過(guò)使用(a)環(huán)形緩沖區(qū),以及(b)傳送頁(yè)和地址空間操縱中的任一個(gè)中的至少一種,在所述第一分區(qū)和所述第二分區(qū)間傳送信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述環(huán)形緩沖區(qū)用于在所述第一分區(qū)和所述第二分區(qū)間傳送信息,并且其中,所述信息包括請(qǐng)求和數(shù)據(jù)中的至少一個(gè)。
3.如權(quán)利要求1所述的方法,其特征在于,所述環(huán)形緩沖區(qū)和傳送頁(yè)都用于在所述第一分區(qū)和所述第二分區(qū)間傳送信息,其中,所述環(huán)形緩沖區(qū)用于在所述第一分區(qū)和所述第二分區(qū)間傳送請(qǐng)求,并且其中,所述傳送頁(yè)用于在所述第一分區(qū)和所述第二分區(qū)間傳送數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述環(huán)形緩沖區(qū)和所述地址空間操縱都用于在所述第一分區(qū)和所述第二分區(qū)間傳送信息,其中,所述環(huán)形緩沖區(qū)用于在所述第一分區(qū)和所述第二分區(qū)間傳送請(qǐng)求,并且其中,所述地址空間操縱用于在所述第一分區(qū)和所述第二分區(qū)間傳送數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,其特征在于,還包括所述第一分區(qū)中所包含的用于驅(qū)動(dòng)實(shí)際硬件設(shè)備的設(shè)備驅(qū)動(dòng)程序,以及所述第二分區(qū)中所包含的合成設(shè)備,其中,所述傳送機(jī)制允許將所述實(shí)際硬件設(shè)備的所有權(quán)分配給所述合成設(shè)備。
6.如權(quán)利要求5所述的方法,其特征在于,所述合成設(shè)備還能對(duì)應(yīng)于抽象服務(wù)。
7.如權(quán)利要求1所述的方法,其特征在于,所述傳送機(jī)制允許所述第一分區(qū)和所述第二分區(qū)交換信息而不會(huì)導(dǎo)致上下文切換的成本,其中,所述傳送機(jī)制使用映射到所述第一分區(qū)并映射到所述第二分區(qū)的環(huán)形緩沖區(qū),其中,信息可由所述第一分區(qū)寫(xiě)入所述環(huán)形緩沖區(qū)中,并由所述第二分區(qū)從所述環(huán)形緩沖區(qū)中讀出,并且其中,信息可由所述第二分區(qū)寫(xiě)入所述環(huán)形緩沖區(qū)中,并由所述第一分區(qū)從所述環(huán)形緩沖區(qū)中讀出。
8.如權(quán)利要求1所述的方法,其特征在于,還包括所述第一分區(qū)中所包含的服務(wù)和設(shè)備中的一項(xiàng),其中,所述服務(wù)和所述設(shè)備的每一個(gè)都具有全局唯一標(biāo)識(shí)符,以分別指定服務(wù)版本和實(shí)例、以及設(shè)備版本和實(shí)例。
9.如權(quán)利要求1所述的方法,其特征在于,還包括策略代理,其中,所述策略代理審查從所述第一分區(qū)向所述第二分區(qū)所作的至少一個(gè)通道提供,并且其中,所述策略代理能駐留在第三分區(qū)中。
10.如權(quán)利要求1所述的方法,其特征在于,所述傳送機(jī)制是由環(huán)形緩沖區(qū)管理、通道管理、和總線(xiàn)驅(qū)動(dòng)程序所組成的分區(qū)總線(xiàn),其中,所述分區(qū)總線(xiàn)在用戶(hù)模式中僅使用所述環(huán)形緩沖區(qū)管理,并且其中,所述分區(qū)總線(xiàn)在內(nèi)核模式中同時(shí)使用所述環(huán)形緩沖區(qū)管理、所述通道管理和所述總線(xiàn)驅(qū)動(dòng)程序三者。
11.如權(quán)利要求1所述的方法,其特征在于,仿真硬件模塊和虛擬化服務(wù)提供器在所述第一分區(qū)中同時(shí)操作,并且其中,所述虛擬化服務(wù)提供器允許在所述第一分區(qū)中枚舉所述第二分區(qū)中的合成設(shè)備。
12.一種用于在虛擬機(jī)環(huán)境中的各分區(qū)之間提供集成的系統(tǒng),包括第一分區(qū);第二分區(qū);以及傳輸機(jī)制,其中,所述傳輸機(jī)制允許通過(guò)使用(a)環(huán)形緩沖區(qū),以及(b)傳送頁(yè)和地址空間操縱中的任一個(gè)中的至少一種,在所述第一分區(qū)和所述第二分區(qū)間傳送信息。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述環(huán)形緩沖區(qū)和所述傳送頁(yè)都用于在所述第一分區(qū)和所述第二分區(qū)間傳送信息,其中,所述環(huán)形緩沖區(qū)用于在所述第一分區(qū)和所述第二分區(qū)間傳送請(qǐng)求,并且其中,所述傳送頁(yè)用于在所述第一分區(qū)和所述第二分區(qū)間傳送數(shù)據(jù)。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述環(huán)形緩沖區(qū)和所述地址空間操縱都用于在所述第一分區(qū)和所述第二分區(qū)間傳送信息,其中,所述環(huán)形緩沖區(qū)用于在所述第一分區(qū)和所述第二分區(qū)間傳送請(qǐng)求,并且其中,所述地址空間操縱用于在所述第一分區(qū)和所述第二分區(qū)間傳送數(shù)據(jù)。
15.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括所述第一分區(qū)中所包含的用于驅(qū)動(dòng)實(shí)際硬件設(shè)備的設(shè)備驅(qū)動(dòng)程序,以及所述第二分區(qū)中所包含的合成設(shè)備,其中,所述傳送機(jī)制允許將所述實(shí)際硬件設(shè)備的所有權(quán)分配給所述合成設(shè)備,且此外,所述合成設(shè)備還能對(duì)應(yīng)于抽象服務(wù)。
16.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述傳送機(jī)制允許所述第一分區(qū)和所述第二分區(qū)交換信息而不會(huì)導(dǎo)致上下文切換的成本,其中,所述傳送機(jī)制使用映射到所述第一分區(qū)并映射到所述第二分區(qū)的環(huán)形緩沖區(qū),其中,信息可由所述第一分區(qū)寫(xiě)入所述環(huán)形緩沖區(qū)中,并由所述第二分區(qū)從所述環(huán)形緩沖區(qū)中讀出,并且其中,信息可由所述第二分區(qū)寫(xiě)入所述環(huán)形緩沖區(qū)中,并由所述第一分區(qū)從所述環(huán)形緩沖區(qū)中讀出。
17.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括所述第一分區(qū)中所包含的服務(wù)和設(shè)備中的一項(xiàng),其中,所述服務(wù)和所述設(shè)備的每一個(gè)都具有全局唯一標(biāo)識(shí)符,以分別指定服務(wù)版本和實(shí)例、以及設(shè)備版本和實(shí)例。
18.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括策略代理,其中,所述策略代理審查從所述第一分區(qū)向所述第二分區(qū)所作的至少一個(gè)通道提供,并且其中,所述策略代理能駐留在第三分區(qū)中。
19.如權(quán)利要求12所述的系統(tǒng),其特征在于,仿真硬件模塊和虛擬化服務(wù)提供器在所述第一分區(qū)中同時(shí)操作,并且其中,所述虛擬化服務(wù)提供器允許在所述第一分區(qū)中仿真所述第二分區(qū)中的合成設(shè)備。
20.一種帶有用于在虛擬機(jī)環(huán)境中的各分區(qū)間提供集成的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括使用第一分區(qū)和第二分區(qū);以及提供一傳輸機(jī)制,其中,所述傳輸機(jī)制允許通過(guò)使用(a)環(huán)形緩沖區(qū),以及(b)傳送頁(yè)和地址空間操縱中的任一個(gè)中的至少一種,在所述第一分區(qū)和所述第二分區(qū)間傳送信息。
全文摘要
提供了一種在虛擬機(jī)環(huán)境中集成各分區(qū)的方法和系統(tǒng)。具體地,提供了一種分區(qū)總線(xiàn),其中操作上分區(qū)總線(xiàn)以某種方法連接各分區(qū),使其發(fā)揮允許在分區(qū)間傳送數(shù)據(jù)并共享設(shè)備的數(shù)據(jù)傳輸機(jī)制的作用。分區(qū)總線(xiàn)依靠虛擬化軟件,在適當(dāng)處建立自身并建立分區(qū)間的通信通道,并將中斷注入各分區(qū)。并且,分區(qū)總線(xiàn)使用諸如環(huán)形緩沖區(qū)、傳送頁(yè)和存儲(chǔ)器映射變換等機(jī)制來(lái)傳送信息(請(qǐng)求和數(shù)據(jù))。此外,它使用策略代理來(lái)判定何時(shí)應(yīng)傳送信息或者何時(shí)應(yīng)在分區(qū)間共享設(shè)備。最后,它使用各種機(jī)制來(lái)確保分區(qū)間的平滑集成,包括具有代理設(shè)備的遠(yuǎn)程服務(wù)和設(shè)備版本化功能。
文檔編號(hào)G06F9/455GK1862494SQ20051009908
公開(kāi)日2006年11月15日 申請(qǐng)日期2005年9月1日 優(yōu)先權(quán)日2005年5月12日
發(fā)明者J·奧希斯, P·L·約翰斯頓, E·P·特勞特, N·劉易斯, J·金西 申請(qǐng)人:微軟公司