两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于虛擬化操作系統(tǒng)的直接存儲器訪問過濾器的制作方法

文檔序號:6594087閱讀:143來源:國知局
專利名稱:用于虛擬化操作系統(tǒng)的直接存儲器訪問過濾器的制作方法
用于虛擬化操作系統(tǒng)的直接存儲器訪問過濾器背景計算機產(chǎn)業(yè)傾向于越來越多的硬件級虛擬化。在這些環(huán)境中,操作系統(tǒng)運行在虛 擬機監(jiān)視器或管理程序之上,其中與計算機硬件的交互由虛擬化層來仲裁。這允許另外稱 為來賓操作系統(tǒng)或來賓OS的多個虛擬化操作系統(tǒng)運行在單個計算機上,使得可能在相同 及其上運行多個工作負荷,且在它們之間具有強的隔離。這對與IT部門或者要求運行多個 工作負荷或多個服務(wù)器應(yīng)用程序的任何操作來說尤其有益。然而,每當(dāng)所隔離的操作系統(tǒng) 與計算機硬件交互以使得虛擬化層必須介入來維護隔離時,虛擬化層引入大的性能懲罰。 為解決此性能懲罰,傳統(tǒng)的方法通過允許來賓操作系統(tǒng)直接控制硬件設(shè)備來減少了虛擬化 層必須介入的交互的數(shù)量。然而,準(zhǔn)許來賓操作系統(tǒng)直接控制這些硬件設(shè)備總是要求準(zhǔn)許 來賓操作系統(tǒng)對被分配給該來賓操作系統(tǒng)的所有系統(tǒng)存儲器的自由且獨占的控制。通過向 來賓操作系統(tǒng)準(zhǔn)許獨占存儲器訪問,喪失了虛擬化的許多益處,這些益處包括狀態(tài)封裝、遷 移和檢查點。概述此文獻描述通過允許來賓OS訪問物理硬件設(shè)備以執(zhí)行直接存儲器存取(DMA)傳 輸,同時允許過量使用(overcommit)被分配給來賓OS的系統(tǒng)存儲器來提高在管理程序上 執(zhí)行的來賓操作系統(tǒng)(來賓OS)的運行時性能的技術(shù)。在一種實現(xiàn)中,虛擬化知曉的DMA 過濾器驅(qū)動器被插入到非虛擬化知曉的操作系統(tǒng)的I/O驅(qū)動器堆棧,從而得到受啟發(fā)或半 虛擬化OS。響應(yīng)于應(yīng)用程序?qū)糜布O(shè)備進行DMA傳輸?shù)恼埱?,DMA過濾器驅(qū)動器可以 延遲所請求的傳輸?shù)拈_始,直到知曉該傳輸?shù)哪繕?biāo)來賓物理存儲器被提交(commit)。在一 種實現(xiàn)中,過濾器驅(qū)動器利用高速緩存來跟蹤來賓物理存儲器的哪些頁被提交而不調(diào)用管 理程序。在一種實現(xiàn)中,如果過濾器驅(qū)動器從高速緩存得知目標(biāo)來賓物理存儲器頁被提交, 那么,過濾器驅(qū)動器允許所請求的傳輸立即開始。然而,如果過濾器驅(qū)動器從高速緩存得知 目標(biāo)來賓物理存儲器頁中的至少之一未被提交,那么,過濾器驅(qū)動器可以請求管理程序支 持所有未提交的目標(biāo)來賓物理存儲器頁。在接收到所有目標(biāo)來賓物理存儲器頁都被提交的 指示之后,DMA過濾器驅(qū)動器可以允許所請求的傳輸開始。在一種實現(xiàn)中,高速緩存另外包括與來賓物理存儲器的每一頁相關(guān)聯(lián)的引用計數(shù) 器。在一種實現(xiàn)中,在DMA傳輸開始之前,過濾器驅(qū)動器增大與在傳輸期間將潛在地被訪問 的來賓物理存儲器的每一頁相關(guān)聯(lián)的引用計數(shù)器。如果來賓物理存儲器頁的引用計數(shù)器包 括正整數(shù),則管理程序知道挪用該頁以供由另一工作負荷使用可能對供體工作負荷以及系 統(tǒng)整體來說是災(zāi)難性的。然而,如果來賓物理存儲器頁的引用計數(shù)器為零,則管理程序可以 安全地挪用頁以供由另一工作負荷使用。在一種實現(xiàn)中,一旦傳輸已經(jīng)完成,過濾器驅(qū)動器 就可減小與傳輸相關(guān)聯(lián)的每一頁的引用計數(shù)。在一種實現(xiàn)中,來賓OS可能是不可信的,且不能對來自管理程序的請求作出響應(yīng) 會導(dǎo)致制裁來賓0S。在一種實現(xiàn)中,管理程序可以請求過濾器驅(qū)動器重置高速緩存的所有 引用計數(shù)器。如果工作負荷不能及時地響應(yīng)管理程序的請求,則管理程序可以終止該工作 負荷。
內(nèi)容的簡要描述參考附圖描述詳細描述。附圖中,附圖標(biāo)記最左邊的數(shù)字標(biāo)識其中該附圖標(biāo)記首 次出現(xiàn)的圖。在不同的圖中使用相同的附圖標(biāo)記指示相似的或相同的項。

圖1描繪被插入到來賓操作系統(tǒng)的I/O驅(qū)動器堆棧的說明性的虛擬化知曉的過濾 器驅(qū)動器。圖2描繪接收來自應(yīng)用程序的DMA傳輸請求并將該請求高速緩存在等待列表的說 明性的虛擬化知曉的過濾器驅(qū)動器。圖3描繪用于在工作負荷之間共享系統(tǒng)存儲器的說明性系統(tǒng)。圖4描繪說明性高速緩存,該高速緩存的每一元件都被映射到存儲器的頁。圖5描繪包括多個驅(qū)動器堆棧的來賓操作系統(tǒng),每一驅(qū)動器堆棧都利用單個相同 高速緩存。圖6描繪用于遷移工作負荷的說明性過程。圖7描繪用于將虛擬化知曉的軟件插入到非虛擬化知曉的操作系統(tǒng)以使得非虛 擬化知曉的操作系統(tǒng)當(dāng)在虛擬機上被執(zhí)行時展現(xiàn)與當(dāng)在物理機上被執(zhí)行時不同的行為的 說明性過程。圖8描繪用于接收存儲器地址范圍、判斷該范圍所指向的存儲器是否常駐、以及 如果來賓物理存儲器不常駐,則請求管理程序在傳送存儲器地址范圍之前使其變得常駐的 說明性過程。圖9描繪用于接收對轉(zhuǎn)換存儲器地址范圍的請求、判斷所請求的存儲器是否常 駐、以及如果所請求的存儲器不常駐,則請求管理程序在將該請求傳送給硬件訪問層之前 使其變得常駐的說明性過程。圖10描繪用于創(chuàng)建虛擬化知曉的過濾器驅(qū)動器的說明性處理功能性。詳細描述下列的討論瞄準(zhǔn)通過準(zhǔn)許來賓OS直接訪問物理硬件設(shè)備同時允許來賓OS的存儲 器被過量使用來提高在管理程序上執(zhí)行的工作負荷的運行時性能的技術(shù)。也被稱為主機、 父分區(qū)、特許分區(qū)、根分區(qū)或虛擬機管理器的管理程序是不在來賓OS內(nèi)的可信監(jiān)督代碼主 體。來賓OS還被稱為虛擬化OS或非特許0S,它在由管理程序創(chuàng)建的虛擬機上執(zhí)行。工 作負荷可以包括在來賓OS上執(zhí)行的應(yīng)用程序;或者替代地,工作負荷可以是指整個軟件堆 棧,包括在虛擬機上執(zhí)行的來賓Os。管理程序可以控制被包含在管理程序在其上執(zhí)行的物 理機內(nèi)的物理系統(tǒng)存儲器。這一真實的物理存儲器可以被定義為“系統(tǒng)物理存儲器”。當(dāng)在 虛擬機上執(zhí)行的來賓OS實際上可訪問虛擬機的虛擬化存儲器時,該來賓OS可能認為它可 訪問真實的物理存儲器。此“虛擬化”存儲器被定義為“來賓物理存儲器”。管理程序提供 將來賓物理存儲器映射到系統(tǒng)物理存儲器的間接水平。另外,來賓OS可以包括向在來賓OS 上執(zhí)行的應(yīng)用程序呈現(xiàn)虛擬地址空間的存儲器虛擬化系統(tǒng)。此傳統(tǒng)的虛擬化可以獨立于管 理程序?qū)⑾到y(tǒng)物理存儲器虛擬化成來賓物理存儲器。在服務(wù)器環(huán)境中,在服務(wù)器上執(zhí)行的典型工作負荷利用主機計算機的資源的 15-20%。服務(wù)器計算機配置有此附加處理頂部空間,以便以最小停機時間或沒有停機時間 來有效地應(yīng)對服務(wù)器的負載中的尖峰。而且,對于在單臺機器上執(zhí)行僅一個服務(wù)器應(yīng)用程 序來說,這是常見的,因為服務(wù)器應(yīng)用程序常常消耗機器上所有可用資源,其另外不能與在相同的機器上的其他服務(wù)器應(yīng)用程序平穩(wěn)地運行。在單個服務(wù)器上執(zhí)行多個來賓OS的一 種潛在益處是能夠執(zhí)行多個服務(wù)器應(yīng)用程序的能力,每個服務(wù)器應(yīng)用程序都具有其自己的 來賓0S,盡管在工作負荷之間共享系統(tǒng)資源。虛擬化允許共享虛擬機系統(tǒng)中的系統(tǒng)資源,例如從一個工作負荷挪用存儲器頁以 供由另一工作負荷使用。在一種實現(xiàn)中,管理程序可以挪用來自一個來賓OS的存儲器頁并 將它們給予另一來賓0S,且同時地允許來賓OS用DMA傳輸瞄準(zhǔn)系統(tǒng)物理存儲器。允許來賓 OS用DMA傳輸瞄準(zhǔn)系統(tǒng)物理存儲器可以改善總體系統(tǒng)性能。當(dāng)一個來賓OS急需存儲器而 另一來賓OS具有額外的存儲器時,將存儲器從一個來賓OS移動到另一來賓OS是有益的, 這允許管理程序?qū)⒋鎯ζ饔行У胤峙浣o每一來賓OS。先前,準(zhǔn)許來賓OS直接訪問系統(tǒng)物理 存儲器以得到DMA傳輸阻礙了管理程序在來賓OS之間安全地共享存儲器的能力,這是因為 從來賓OS下面移出供DMA傳輸在隨后訪問的存儲器可能導(dǎo)致災(zāi)難性的系統(tǒng)崩潰。在一種實現(xiàn)中,使得管理程序在來賓OS用DMA傳輸瞄準(zhǔn)系統(tǒng)物理存儲器時能夠在 來賓OS之間共享存儲器允許在來賓OS用DMA傳輸瞄準(zhǔn)系統(tǒng)物理存儲器時進行狀態(tài)封裝。 來賓OS的狀態(tài)封裝包括將來賓OS與到來賓OS在其上執(zhí)行的物理硬件的任何永久連接隔 離開來。因而,狀態(tài)封裝允許虛擬機被從一個主機傳遞到另一主機,因為來賓OS并不必定 被綁定到該來賓OS在其上執(zhí)行的硬件。從一個主機到另一主機的這種傳遞被稱為遷移。遷 移允許執(zhí)行在第一機器上執(zhí)行的第一管理程序?qū)⒄麄€虛擬機傳遞到在第二機器上執(zhí)行的 第二管理程序,同時虛擬機繼續(xù)運行且很少或不會損失數(shù)據(jù)。在一種實現(xiàn)中,允許遷移而同 時允許來賓OS在DMA傳輸期間瞄準(zhǔn)系統(tǒng)物理存儲器。另外,狀態(tài)封裝允許創(chuàng)建快照(或檢 查點)??煺毡4嫣摂M機的完整狀態(tài),從而允許用戶無縫地且不會損失數(shù)據(jù)地回復(fù)到先前的 狀態(tài)。傳統(tǒng)上,管理程序允許在它們上運行的虛擬機內(nèi)完成的大多數(shù)計算繼續(xù)進而不會 中斷。然而,當(dāng)在這些虛擬機上執(zhí)行的來賓OS嘗試與計算機的I/O系統(tǒng)(盤、網(wǎng)絡(luò)、視頻、 等等)交互時,傳統(tǒng)的管理程序必須截取此訪問,因為這些操作系統(tǒng)并不實際上擁有這些 設(shè)備。如果來賓OS被許可為直接地操作這些設(shè)備,則各個來賓OS將對這些設(shè)備發(fā)出沖突 的命令,從而引起計算機崩潰。為了防止崩潰,每當(dāng)來賓OS嘗試與I/O子系統(tǒng)交互時,傳統(tǒng)的管理程序可以截取 該調(diào)用并執(zhí)行與來賓OS正試圖完成的動作相當(dāng)?shù)囊恍﹦幼?。例如,如果來賓OS正試圖規(guī)劃 盤控制器以從盤讀取數(shù)據(jù)塊,則傳統(tǒng)的管理程序可能停止來賓0S,從含有虛擬盤的內(nèi)容的 文件讀取數(shù)據(jù)塊,將來自文件的數(shù)據(jù)存儲到由來賓OS占用的存儲器,并重新啟動來賓OS。 此過程有用,但是很慢。允許虛擬化操作系統(tǒng)或者其他工作負荷直接控制機器內(nèi)的具體設(shè)備的所有或部 分,以使得可以發(fā)生對那些設(shè)備的訪問而不會從管理程序中斷,從而獲得虛擬化OS的大的 性能提升——這將是有益的。理想地,虛擬化OS可以直接控制硬件設(shè)備,而不會犧牲過量 使用存儲器的能力。在一個實例中,當(dāng)多于系統(tǒng)物理存儲器的來賓物理存儲器已經(jīng)被分配 給工作負荷時,存儲器被過量使用。當(dāng)管理程序創(chuàng)建環(huán)境以供來賓OS在其中運行時,其創(chuàng)建存儲器的視圖,該存儲器 的視圖對工作負荷來說看起來就像其擁有連續(xù)范圍的物理存儲器——類似于來賓OS正運 行在物理機上可用的那些。事實上,被指派給來賓OS的存儲器幾乎從不是毗鄰的,且來賓OS用于尋址其存儲器的地址幾乎從不是該存儲器的真實物理地址。管理程序創(chuàng)建和維護 允許處理器或管理程序在進行中安排這些地址的間接表(通常被稱為頁表)。甚至可能的 是,來賓OS察覺到其擁有的存儲器中的一些并不存在,且暫時被借給另一來賓OS。當(dāng)來賓 OS直接控制真實物理I/O設(shè)備時,這產(chǎn)生了問題。來賓OS可以指導(dǎo)該設(shè)備從實際上并不存 在的存儲器讀取或向其寫入。它還可以指導(dǎo)該設(shè)備使用存儲器的虛擬化地址而不是真實系 統(tǒng)物理地址來從存儲器讀取或向其寫入。通過I/O設(shè)備直接地從存儲器讀取或向其寫入的 這一過程被稱為直接存儲器訪問或DMA。針對此問題——常常被稱為“I/O頁出錯”——的一種所建議的解決方案涉及允 許來賓OS指導(dǎo)設(shè)備以執(zhí)行DMA傳輸。一旦設(shè)備開始DMA傳輸,計算機的存儲器控制器就截 取該過程并指導(dǎo)管理程序重新分配其資源以使得系統(tǒng)物理存儲器在設(shè)備正試圖訪問的地 址處可用。然后,當(dāng)存儲器可用時,且當(dāng)適當(dāng)?shù)膬?nèi)容已經(jīng)被加載到存儲器時,允許傳輸繼續(xù) 進行。此解決方案可以不涉及改變來賓OS內(nèi)的軟件。然而,此解決方案要求設(shè)備容忍自設(shè) 備發(fā)起事務(wù)起到允許該事務(wù)繼續(xù)進行的幾乎不受限制時間量。此延時是不受限制的,因為 管理程序在傳輸已經(jīng)開始之后知曉該傳輸,且因此當(dāng)硬件設(shè)備繼續(xù)接收或傳送數(shù)據(jù)時發(fā)生 確保實際的物理存儲器可用于該傳輸?shù)娜魏翁幚?包括從交換文件讀取)。在此時間期間, 目標(biāo)硬件設(shè)備必須將所有所傳送的數(shù)據(jù)存儲在其內(nèi)部緩沖器中。此等待時間可以通過在設(shè) 備中構(gòu)建非常大的緩沖器來處理,由此顯著地增加設(shè)備的成本。替代地,如果硬件設(shè)備在傳輸開始之前中斷在管理程序內(nèi)運行的設(shè)備驅(qū)動器,則 可以減少此等待時間。一旦被中斷,管理程序內(nèi)的設(shè)備驅(qū)動器就確保目標(biāo)存儲器被提交。然 而,由于調(diào)用管理程序是昂貴的操作,因此此中斷本身就是性能問題。在一種實現(xiàn)中,軟件組件被插入到來賓OS中,以便在I/O事務(wù)開始前在軟件層掛 起該事務(wù),以保證該事務(wù)瞄準(zhǔn)的來賓物理存儲器得到實際的物理存儲器支持。掛起事務(wù)以 便保證目標(biāo)來賓物理存儲器被提交使得事務(wù)能發(fā)生而沒有中斷,這消除了 I/O頁出錯方法 所引起的任意等待時間。在事務(wù)開始前在軟件層掛起事務(wù)可以允許受啟發(fā)的來賓OS確保 目標(biāo)來賓物理存儲器得到支持而無需與管理程序通信。然而,在一種實現(xiàn)中,來賓OS可以 與管理程序通信,從而向管理程序告知目標(biāo)來賓物理存儲器頁現(xiàn)在正被用于DMA傳輸。此 通信可以利用來賓OS引用計數(shù)表,或與來賓OS進行更顯式的通信。圖1描繪說明性虛擬機環(huán)境100,虛擬機環(huán)境100可以在計算機上執(zhí)行。該環(huán)境 包括直接地在計算機執(zhí)行的管理程序102。在一種實現(xiàn)中,計算機可以是具有運行多個工 作負荷所必需的資源的服務(wù)器計算機,每一工作負荷均在其自己的來賓OS實例上執(zhí)行。在 另一環(huán)境中,計算機可以是允許用戶同時運行多個操作系統(tǒng)的個人計算機,例如臺式計算 機或膝上型計算機。在一種實現(xiàn)中,管理程序含有管理程序I/O子系統(tǒng)104。管理程序I/O 子系統(tǒng)104可以控制計算機上的所有硬件資源,從而確保多個來賓操作系統(tǒng)不向?qū)嶋H的硬 件設(shè)備發(fā)出沖突的命令。管理程序I/O子系統(tǒng)104可以包括用于分配和控制被分配給虛擬 機的虛擬資源的來賓OS存儲器管理組件106。管理程序102、管理程序I/O子系統(tǒng)104和來賓OS存儲器管理組件106可以共同 創(chuàng)建來賓操作系統(tǒng)108或來賓OS 108在其上執(zhí)行的虛擬機。在一種實現(xiàn)中,來賓OS 108 可以是受啟發(fā)的,這意味著它知曉的其是正運行在虛擬機之上或運行在物理機之上。當(dāng)在 與物理機不同的虛擬機上執(zhí)行時,基于關(guān)于虛擬化資源和物理資源做出的不同假設(shè),受啟發(fā)的來賓OS可以不同地利用資源。另外,受啟發(fā)的來賓OS可以與管理程序102交互以共 享資源。在一種實現(xiàn)中,受啟發(fā)的來賓OS可以從管理程序102協(xié)作地請求來賓物理存儲器 或?qū)碣e物理存儲器釋放給管理程序102以供由另一來賓OS使用。在另一實現(xiàn)中,來賓OS 108不知曉它正在虛擬機上執(zhí)行。此“不受啟發(fā)的”來賓OS 108還被稱為非虛擬化知曉的或非協(xié)作來賓OS 108,它可以在虛擬機上表現(xiàn)出比受啟發(fā)的 但其他方面相同的來賓OS更差的性能。不受啟發(fā)的來賓OS 108可以在虛擬機上與在物理 機上所進行地完全相同地操作。許多操作系統(tǒng)提供用于設(shè)備驅(qū)動器通常使用的直接存儲器訪問的軟件抽象。此抽 象涉及允許設(shè)備驅(qū)動器呈現(xiàn)物理地址列表(通常以存儲器描述符列表或MDLWBS)并在 返回中接收設(shè)備邏輯地址列表(通常以散布/聚集列表的形式)的若干編程接口和對象。物理地址可以是由管理程序用于讀或?qū)懻鎸嵨锢泶鎯ζ鞯南到y(tǒng)物理地址。替代 地,物理地址可以對來賓OS 108表現(xiàn)為真實地址,但是實際上是被稱為來賓物理地址的虛 擬化地址。另一方面,設(shè)備邏輯地址是由硬件設(shè)備用于讀或?qū)懳锢泶鎯ζ鞯牡刂?。一旦?接口返回設(shè)備邏輯地址的散布/聚集列表,設(shè)備驅(qū)動器就可以規(guī)劃其硬件以實際地實施所 關(guān)聯(lián)的讀和寫。許多操作系統(tǒng)通過此DMA抽象來允許插件組件以擴展DMA功能性。在一種實現(xiàn) 中,DMA過濾器114可以將其自己插入一過程中,當(dāng)設(shè)備驅(qū)動器112需要將物理地址轉(zhuǎn)換為 設(shè)備邏輯地址時,藉由該過程設(shè)備驅(qū)動器112檢索指向其調(diào)用的函數(shù)的指針。在另一種環(huán) 境中,虛擬化知曉的硬件抽象層(HAL) 120可以被插入到非虛擬化知曉的來賓OS 108中,從 而引起來賓OS 108展示受啟發(fā)的行為。另外或替代地,虛擬化知曉的模塊可以被插入到 非虛擬化知曉的來賓OS的執(zhí)行中或替代非虛擬化知曉的來賓OS的任何組件。通過這些方 式,虛擬化知曉的組件可以被插入到非虛擬化知曉的來賓OS 108中,從而引起非虛擬化知 曉的來賓OS 108展示類似于受啟發(fā)的或虛擬化的來賓OS的行為。在一種實現(xiàn)中,設(shè)備驅(qū)動器112可以發(fā)起DMA傳輸以將數(shù)據(jù)寫到硬件設(shè)備或從硬 件設(shè)備讀取數(shù)據(jù)。設(shè)備驅(qū)動器112可以將請求122發(fā)送到即插即用管理器118,請求122包 括在來賓OS的來賓物理地址中定義的存儲器范圍。在一種實現(xiàn)中,即插即用管理器118可 以向硬件訪問層120發(fā)送對指向用于將存儲器范圍從來賓物理地址轉(zhuǎn)換到總線相對地址 的函數(shù)的指針的請求124。一旦接收到請求124,虛擬化知曉的硬件訪問層120就可以與管 理程序102通信,從而確保與DMA傳輸關(guān)聯(lián)的存儲器在允許傳輸開始之前被提交。在另一種實現(xiàn)中,DMA過濾器114被插入到I/O驅(qū)動器堆棧110中。在一種實現(xiàn) 中,DMA過濾器114可以從即插即用管理器118接收用于在I/O驅(qū)動器堆棧110內(nèi)通信的 I/O請求分組(IRP)。IRP中的一個可以是來自設(shè)備驅(qū)動器112的對指向用于將來賓物理存 儲器地址范圍轉(zhuǎn)換為總線相對地址范圍的函數(shù)的指針的請求126。在一種實現(xiàn)中,I/O請求 包被發(fā)送以查找I/O驅(qū)動器堆棧110中的最好組件以提供用于DMA服務(wù)的接口。如果I/O 驅(qū)動器堆棧110中沒有驅(qū)動器作出響應(yīng),那么HAL 120可以提供所請求的接口。一旦接收 到請求126,虛擬化知曉的DMA過濾器114就可以與管理程序102通信,從而確保與DMA傳 輸相關(guān)聯(lián)的存儲器在允許傳輸開始之前被提交。消息1 被返回到即插即用管理器118以 允許傳輸開始。圖2描繪在計算機上執(zhí)行的說明性虛擬機環(huán)境200。在一種實現(xiàn)中,DMA過濾器114掛起所請求的DMA傳輸以便確保提交事務(wù)所需的存儲器。所請求的DMA傳輸包括存儲 器地址范圍。雖然這些存儲器地址對來賓0S108看來似乎為物理存儲器地址,且因此立即 可用于DMA傳輸,但是這些地址可以實際上是來賓物理存儲器地址,一種虛擬存儲器地址 的形式,其不映射到實際的物理存儲器地址。另外,這些來賓物理存儲器地址中的一些當(dāng)前 不可以被映射到真實物理存儲器地址,因為管理程序102已經(jīng)挪用實際的存儲器物理頁中 的一些來供另一個來賓OS使用。在DMA事務(wù)可以在來賓OS 108安全地發(fā)生而管理程序 102不會介入之前,必須提交事務(wù)引用的存儲器以供用在事務(wù)的生命期中,且由事務(wù)引用的 存儲器地址在來賓物理地址空間和系統(tǒng)物理地址空間之間必須具有有效轉(zhuǎn)換。在一種實現(xiàn) 中,DMA過濾器114可與來賓OS存儲器管理組件106通信以確保由事務(wù)引用的所有存儲器 頁被提交。在一種實現(xiàn)中,DMA過濾器114可以與來賓OS存儲器管理組件106通信以請求 來賓OS存儲器管理組件106提交由事務(wù)引用的所有的未被提交的存儲器頁。在一種實現(xiàn)中,事務(wù)在應(yīng)用程序202開始(舉例來說,從盤讀取)并被往下傳遞到 將處理該事務(wù)的硬件設(shè)備的設(shè)備驅(qū)動器112。然后,設(shè)備驅(qū)動器112使用其DMA界面來請求 由事務(wù)引用的目的存儲器的設(shè)備邏輯地址。DMA過濾器114可以截取對設(shè)備邏輯地址的此 請求并將事務(wù)放到等待列表204上,直到所引用的存儲器已經(jīng)被提交且存在有效轉(zhuǎn)換。然 后,DMA過濾器114可以將事務(wù)連同所得到的邏輯地址集呈現(xiàn)回設(shè)備驅(qū)動器112,設(shè)備驅(qū)動 器112然后可以安排硬件通過DMA進行數(shù)據(jù)傳輸。圖3描繪共享在計算機上執(zhí)行的環(huán)境300的說明性來賓物理存儲器。在一種實現(xiàn) 中,工作負荷302、工作負荷304和工作負荷306全部在管理程序上執(zhí)行,且每一個工作負荷 可以被分配到系統(tǒng)物理存儲器308的一部分。工作負荷302-306可以執(zhí)行數(shù)據(jù)庫、電子郵件 服務(wù)器、web服務(wù)器或OLAP服務(wù)器連同其他服務(wù)器任務(wù)。工作負荷302可以使用來賓物理 存儲器310,來賓物理存儲器310可以被映射到系統(tǒng)物理存儲器308。工作負荷304和306 類似地可以使用來賓物理存儲器312和314,來賓物理存儲器312和314的每一個都被映射 到系統(tǒng)物理存儲器308。工作負荷302的來賓物理存儲器310的每一個頁可以被映射到系 統(tǒng)物理存儲器308中的存儲器頁。然而,對于管理程序而言從工作負荷302竊走來賓物理 存儲器頁并將其供應(yīng)為工作負荷304的頁是可能的。由此,兩個工作負荷可能指向系統(tǒng)物 理存儲器的相同部分,如由重疊316所指示的,或一個工作負荷可能執(zhí)行,如同其擁有實際 上已經(jīng)被挪用以供另一個工作負荷使用的系統(tǒng)物理存儲器頁那樣。在這種情況中,工作負 荷302和304正在其上執(zhí)行的來賓操作系統(tǒng)被過量使用,因為管理程序的來賓OS存儲器管 理組件已經(jīng)將比在系統(tǒng)物理存儲器308中實際上可用的來賓物理存儲器更多的來賓物理 存儲器分配到工作負荷。如果工作負荷302嘗試訪問重疊316中包含的來賓物理存儲器, 那么管理程序可能介入并向工作負荷302供應(yīng)新的系統(tǒng)物理存儲器頁,且任選地從交換文 件將值復(fù)制到新的存儲器頁。圖4描繪說明性驅(qū)動器堆棧400。在一種實現(xiàn)中,確保存儲器的目的頁被提交的 過程涉及將消息發(fā)送到來賓OS存儲器管理器106和接收響應(yīng)消息。在另一種實現(xiàn),通過引 入用于減少或消除DMA過濾器114必須與管理程序102通信的次數(shù)的存儲器狀態(tài)高速緩存 402,可以增大響應(yīng)性。存儲器狀態(tài)高速緩存402可以存儲指示系統(tǒng)物理存儲器308的哪個 存儲器頁被提交的數(shù)組。存儲器狀態(tài)高速緩存402可以被存儲在DMA過濾器114中,使得 其可以在來賓OS 108的上下文中被完全訪問,而不用調(diào)用管理程序102。對于存儲器的每
9一頁,存儲器狀態(tài)高速緩存402可以包括4位。類似地設(shè)想其他數(shù)目個位。在一種實施例 中,一位可以用于指示頁是否被提交,而剩余的3位可以計數(shù)與該存儲器頁相關(guān)聯(lián)的活動 DMA傳輸?shù)臄?shù)量。替代地或另外,當(dāng)計數(shù)已經(jīng)溢出存儲器狀態(tài)高速緩存的計數(shù)容量時,存儲 器狀態(tài)高速緩存402可以包括存儲與存儲器頁相關(guān)聯(lián)的活動DMA傳輸?shù)臄?shù)量的頁散列表。 此系統(tǒng)允許存儲器狀態(tài)高速緩存402跟蹤高達7個并發(fā)DMA事務(wù)。舉例來說,存儲器狀態(tài) 高速緩存條目404指示相關(guān)聯(lián)的存儲器頁涉及7個DMA事務(wù),且頁當(dāng)前是常駐的。存儲器 狀態(tài)高速緩存條目406指示相關(guān)聯(lián)的存儲器頁不涉及任何DMA事務(wù),且當(dāng)前不被提交到真 實的物理存儲器頁。通過不被提交,嘗試寫到與狀態(tài)高速緩存條目406相關(guān)聯(lián)的存儲器頁 或從其讀取的任何DMA事務(wù)將導(dǎo)致數(shù)據(jù)的訛誤或崩潰,因為該值可以被寫到被指派到另一 工作負荷的存儲器,或被寫到根本不存在的存儲器。跟蹤與存儲器頁相關(guān)聯(lián)的DMA傳輸?shù)臄?shù)量的目的之一是確保管理程序102將不從 當(dāng)前被DMA事務(wù)使用的來賓OS 108竊取頁。因此,存儲器范圍中所包含的當(dāng)前被DMA事務(wù) 使用的所有頁至少將保持被提交,直到所有相關(guān)聯(lián)的DMA事務(wù)被完成。因此,存儲器狀態(tài)高 速緩存條目408指示錯誤——三個DMA處理正在相關(guān)聯(lián)的存儲器頁上操作,但是頁當(dāng)前沒 有被提交。因此,在管理程序102從一個工作負荷竊取存儲器頁并將其給予另一個工作負 荷之前,其可以首先確定嵌入來賓OS 108的虛擬化知曉的組件是否知曉存儲器頁當(dāng)前在 使用。如果DMA事務(wù)被發(fā)起,且與事務(wù)相關(guān)聯(lián)的所有存儲器頁被提交,那么DMA過濾器 114可以增加與關(guān)聯(lián)于DMA事務(wù)的存儲器頁相關(guān)聯(lián)的存儲器狀態(tài)高速緩存條目的引用計數(shù) 或引腳計數(shù)。然后,DMA過濾器114可以立即允許事務(wù)開始。存儲器狀態(tài)高速緩存條目410指示不存在使用相關(guān)聯(lián)的存儲器頁的活動DMA事 務(wù),但是頁當(dāng)前被提交。如果DMA傳輸請求使用類似于與存儲器狀態(tài)高速緩存條目410相 關(guān)聯(lián)的那些頁的頁,那么DMA傳輸將被允許立即繼續(xù)直接地訪問底層硬件。在一種實現(xiàn)中,管理程序可以請求DMA過濾器114重置存儲器狀態(tài)高速緩存402 的所有引用計數(shù)器。另外或替代地,如果工作負荷未能以及時的方式響應(yīng)管理程序的請求, 那么管理程序可以制裁工作負荷。在一種實現(xiàn)中,制裁可以終止工作負荷。另外或替代地, 制裁可以從工作負荷移除對硬件設(shè)備的控制。在一種實現(xiàn)中,存儲器狀態(tài)高速緩存402不存在。在這種情況中,在管理程序回收 任何頁之前,設(shè)備驅(qū)動器必須被暫停且所有事務(wù)必須被撤退。此策略在一些情況下是優(yōu)選 的,因為其大大地降低了實現(xiàn)高速緩存所需的存儲器。當(dāng)大多數(shù)或所有的來賓存儲器保持被提交時,最優(yōu)的性能出現(xiàn),且大多數(shù)DMA事 務(wù)在不需要與來賓OS存儲器管理器通信的情況下開始。圖5描繪說明性的多個驅(qū)動器堆棧500。在一種實現(xiàn)中,第一驅(qū)動器堆棧110、第二 驅(qū)動器堆棧504和第三驅(qū)動器堆棧506全部共享相同的存儲器狀態(tài)高速緩存502。多個驅(qū) 動器堆棧可以實例化DMA過濾器114的不同實例;然而,所有虛擬化知曉的DMA過濾器正管 理相同的來賓物理存儲器。因此,所有DMA過濾器在相同的存儲器狀態(tài)高速緩存上操作,以 便減少維持高速緩存所需的開銷,并使DMA過濾器114和管理程序之間的通信最小化。例 如,如果驅(qū)動器堆棧506發(fā)起涉及來賓物理地址0x0012384C的DMA傳輸,但是不與DMA過 濾器的其他實例共享存儲器狀態(tài)高速緩存502,那么每當(dāng)管理程序希望從來賓OS挪用來賓物理存儲器頁時,將不得不檢查每一個存儲器狀態(tài)高速緩存以確保DMA傳輸中活躍地涉及 的存儲器頁不被挪用。圖6描繪說明性遷移環(huán)境600。根據(jù)此實現(xiàn),狀態(tài)封裝可以允許在計算機602上運 行的管理程序604被遷移到在計算機606上運行的管理程序608。在一種實施例中,狀態(tài) 封裝可以由管理程序608和來賓OS存儲器管理組件106來啟用,而同時允許在DMA傳輸期 間的硬件設(shè)備直接存儲器存取。在一種環(huán)境中,工作負荷610至工作負荷616在管理程序 604上執(zhí)行。工作負荷612可能需要通過網(wǎng)絡(luò)622來遷移到管理程序608。通過將存儲器 頁從管理程序604復(fù)制到管理程序608來執(zhí)行遷移,同時遷移的工作負荷612繼續(xù)起作用。 遷移以使工作負荷612中的每一頁無效為開始,以使得由工作負荷612作出的任何后繼存 儲器訪問將陷入管理程序604中。然后,管理程序604開始將存儲器的所有有效頁傳輸?shù)?管理程序608。在此傳輸期間,工作負荷612繼續(xù)在管理程序604上執(zhí)行。在傳輸期間被訪 問的存儲器頁被標(biāo)記為臟(dirty)并留在管理程序604上,而不被標(biāo)記為臟的(指示它們 尚未被觸及的)存儲器頁繼續(xù)被傳遞到管理程序608。最終,所有的干凈頁已經(jīng)被傳輸,且 僅僅保留已經(jīng)被工作負荷612觸及的臟頁。在這一點上,工作負荷612可以被暫停以允許 將剩余的臟頁傳遞到管理程序608。一旦所有的頁已經(jīng)被傳輸?shù)焦芾沓绦?08,通常在工作 負荷612被管理程序604暫停之后不超過300毫秒,工作負荷612就在管理程序608上被 啟動。通常,遷移發(fā)生而不會丟棄連接。圖7描繪用于通過虛擬化知曉的軟件組件增強非虛擬化知曉的操作系統(tǒng)的說明 性過程。操作702表示通過安裝在I/O驅(qū)動器堆棧110中的虛擬化知曉的軟件組件來確 定系統(tǒng)是否正在虛擬機上執(zhí)行。在一種實施例中,虛擬化知曉的軟件組件包括DMA過濾器 114。另外地或替代地,虛擬化知曉的軟件組件可以包括HAL 120。其間,操作704表示當(dāng)在 虛擬機上執(zhí)行時虛擬化知曉的軟件組件與管理程序102通信。圖8描繪用于以軟件方式延遲DMA傳輸?shù)拈_始直到知曉與傳輸相關(guān)聯(lián)的來賓物理 存儲器得到系統(tǒng)物理存儲器的支持的說明性過程。操作802表示接收來賓物理存儲器地址 范圍。在一種實現(xiàn)中,來賓物理存儲器地址范圍包括DMA傳輸?shù)脑椿蚰康牡?。所接收的?賓物理存儲器地址可以稍后被轉(zhuǎn)換成設(shè)備邏輯地址或系統(tǒng)物理地址,這允許在傳輸中使用 的硬件設(shè)備本地地尋址物理存儲器。其間,操作804表示確定由所接收的來賓物理存儲器 地址指向的系統(tǒng)物理存儲器中的任一個是否不被支持——另外稱為非常駐的。如果沒有地 址是非常駐的,那么意味著所有的請求地址是常駐的,那么傳送所接收的來賓物理存儲器 地址范圍。在一種實施例中,來賓物理地址范圍被傳送給將來賓物理存儲器地址轉(zhuǎn)換成設(shè) 備邏輯地址或系統(tǒng)物理地址的組件。其間,操作806表示肯定地確定存在在所接收的來賓 物理存儲器地址范圍中引用的存儲器的至少一個不被支持或非常駐的部分。其間,操作808 表示請求管理程序102支持所接收的來賓物理存儲器地址的非常駐部分或使其變?yōu)槌qv。 其間,操作810表示從管理程序102接收由所接收的來賓物理存儲器地址指向的所有非常 駐部分已經(jīng)得到支持的指示。其間,操作812表示傳送來賓物理存儲器地址范圍。圖9描繪用于以軟件方式延遲DMA傳輸?shù)拈_始直到知曉與傳輸相關(guān)聯(lián)的來賓物理 存儲器得到真實的系統(tǒng)物理存儲器的支持的說明性過程。操作902表示接收對將來賓物理 存儲器地址范圍轉(zhuǎn)換為總線相對存儲器地址的請求。其間,操作904表示確定所接收的來 賓物理存儲器地址中的任一個是否不被真實的物理存儲器支持。如果所有的來賓物理存儲器地址都得到支持,那么所接收的請求被傳送到HAL 120。其間,操作906表示肯定地確定 何時存在所接收的請求中引用的來賓物理存儲器的至少一個不被支持或非常駐的部分。其 間,操作908表示向設(shè)備驅(qū)動器112傳送指示傳輸不可以同步地發(fā)生的消息。在一種實施 例中,所接收的請求被存儲在等待列表204中。其間,操作910表示向管理程序102向管理 程序102傳送一消息,該消息請求管理程序102支持在所接收的請求中包含的來賓物理存 儲器的非常駐部分或使其變?yōu)槌qv的。其間,操作912表示從管理程序102接收由在所接 收的請求中包含的來賓物理地址指向的所有非常駐部分已經(jīng)得到真實的物理存儲器的支 持的消息。其間,操作914表示將向設(shè)備驅(qū)動器傳送該請求。圖10闡釋示例性用于創(chuàng)建虛擬化知曉的DMA過濾器驅(qū)動器或DMA過濾器114的 示例性處理功能1000。在一個實例中,過濾器驅(qū)動器包括被插入到現(xiàn)有驅(qū)動器堆棧以執(zhí)行 一些具體功能而不影響現(xiàn)有驅(qū)動器堆棧的正常工作的驅(qū)動器。處理功能性1000可以被配 置為能夠?qū)崿F(xiàn)軟懸掛分析和檢測系統(tǒng)的任何合適的計算設(shè)備或服務(wù)器。在一種示例性配置 中,處理功能性1000包括至少一個處理單元1002和存儲器1004。處理單元1002可以在硬 件、軟件、固件或其組合中被適當(dāng)?shù)貙崿F(xiàn)。處理單元1002的軟件或固件實現(xiàn)可以包括以任 何合適的編程語言編寫的用以執(zhí)行所描述的各種功能的計算機可執(zhí)行指令或機器可執(zhí)行 指令。存儲器1004可以存儲在處理器1002上可加載和可執(zhí)行的指令的程序以及在執(zhí)行 這些程序期間生成的數(shù)據(jù)。取決于計算設(shè)備的配置和類型,存儲器1004可以是易失性的 (例如RAM)和/或非易失性的(例如ROM、閃速存儲器等等)。計算設(shè)備或服務(wù)器還可以包 括附加的可移動存儲1006和/或不可移動存儲1008,包括但不限于,磁存儲、光盤、和/或 帶存儲。磁盤驅(qū)動器和它們的關(guān)聯(lián)計算機可讀介質(zhì)可為計算設(shè)備提供對計算機可讀指令、 數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲。存儲器1004、可移動存儲1006和不可移動存儲1008全部都是計算機存儲介質(zhì)的 示例。計算機存儲介質(zhì)包括以用于存儲信息例如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者 其他數(shù)據(jù)的任何方法或技術(shù)實現(xiàn)的易失性介質(zhì)和非易失性介質(zhì)、可移動介質(zhì)和不可移動介 質(zhì)。存儲器1004、可移動存儲1006和不可移動存儲1008全部都是計算機存儲介質(zhì)的示例。 可以存在的附加類型的計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃速存儲器或者 其他存儲器技術(shù)、CD-ROM、數(shù)字多用盤(DVD)或者其他光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或 者其他磁存儲設(shè)備、或可以用來存儲所期望的信息且可以由服務(wù)器或者其他計算設(shè)備訪問 的任何其他介質(zhì)。更詳細地轉(zhuǎn)到存儲器1004的內(nèi)容,存儲器1004可以包括操作系統(tǒng)1010以及用 于實現(xiàn)軟懸掛分析和檢測程序100的一個或多個應(yīng)用程序或服務(wù)。在一種實現(xiàn)中,存儲器 1004包括數(shù)據(jù)管理模塊1012和自動模塊1014。數(shù)據(jù)管理模塊1012包括但不限于標(biāo)識和 跟蹤會話。自動模塊1014存儲和管理信息,例如會話標(biāo)識符、會話狀態(tài)、用戶的計算設(shè)備等 等,且可以與一個或多個本地和/或遠程數(shù)據(jù)庫或服務(wù)通信。存儲器1004進一步包括用戶接口模塊1016和會話模塊1018。用戶接口模塊1016 向用戶呈現(xiàn)用于登錄或注銷、登錄或注銷回話等等的用戶接口。會話模塊1018包括但不限 于,跟蹤計算設(shè)備的狀態(tài)、登錄或注銷、連接或斷開等等。會話模塊1018執(zhí)行連接、斷開、搜 索功能,例如執(zhí)行搜索以標(biāo)識被登錄、注銷的客戶端設(shè)備、客戶端設(shè)備的狀態(tài)、用戶的狀態(tài)
12
處理功能性1000還可以含有諸通信連接1016,這些通信連接1016允許處理功能 性1000與所存儲的數(shù)據(jù)庫、另一計算設(shè)備或服務(wù)器、用戶終端和/或網(wǎng)絡(luò)上的其他設(shè)備通 信。諸通信連接1016為通信介質(zhì)的示例。通信介質(zhì)通常包含計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)和 程序模塊。作為例子而非限制,通信介質(zhì)包括例如有線網(wǎng)絡(luò)或直接有線連接等有線介質(zhì),以 及例如聲學(xué)、RF、紅外等無線介質(zhì)和其他無線介質(zhì)。在此所使用的術(shù)語計算機可讀介質(zhì)包括 存儲介質(zhì)和通信介質(zhì)兩者。處理功能性1000還可以包括諸輸入設(shè)備1018和諸輸出設(shè)備1020,輸入設(shè)備1018 例如鍵盤、鼠標(biāo)、筆、音頻輸入設(shè)備、觸摸輸入設(shè)備等等,輸出設(shè)備1020例如顯示器、揚聲 器、打印機等等。處理功能性1000可以包括主存在處理功能性1000上的數(shù)據(jù)庫,其包括但 不限于,會話數(shù)據(jù)、網(wǎng)絡(luò)地址、計算設(shè)備的列表等等。所有這些設(shè)備在本領(lǐng)域是眾所周知的 且在此處不需要詳細地討論。以上所描述的本主題可以在硬件或軟件中或在硬件和軟件兩者中實現(xiàn)。盡管已經(jīng) 以對于結(jié)構(gòu)特征和/或方法論動作來說專用的語言描述了本主題,但是應(yīng)理解,在所附權(quán) 利要求中界定的本主題并不必定限于上述具體特征或動作。相反,具體的特征和動作是作 為實現(xiàn)所要求保護的本主題的示例性形式而公開的。例如,方法動作并不需要以在此所描 述的次序或組合來執(zhí)行,且可以以一個或多個動作的任何組合來執(zhí)行。Mrk盡管已經(jīng)用對于結(jié)構(gòu)特征和/或方法動作來說專用的語言描述了示例性系統(tǒng)和 方法,但是應(yīng)理解,在所附權(quán)利要求中界定的本主題并不必定限于所描述的具體特征或動 作。相反,具體特征和動作是作為實現(xiàn)所要求保護的方法、設(shè)備、系統(tǒng)等等的示例性形式而 公開的。
權(quán)利要求
1 一種方法,所述方法包括用安裝在非虛擬化知曉的操作系統(tǒng)的驅(qū)動器堆棧中的虛擬化知曉的軟件組件確定所 述非虛擬化知曉的操作系統(tǒng)是否在由管理程序主存的虛擬機上執(zhí)行;以及當(dāng)所述非虛擬化知曉的操作系統(tǒng)在由所述管理程序主存的所述虛擬機上執(zhí)行時,所述 虛擬化知曉的軟件組件與所述管理程序進行通信。
2.如權(quán)利要求1所述的方法,其特征在于,所述虛擬化知曉的軟件組件包括從所述驅(qū) 動器堆棧接收請求的過濾器驅(qū)動器。
3.如權(quán)利要求1所述的方法,其特征在于,所述驅(qū)動器堆棧包括直接存儲器訪問驅(qū)動ο
4.如權(quán)利要求1所述的方法,其特征在于,所述虛擬化知曉的軟件組件包括將操作系 統(tǒng)對物理硬件組件的訪問抽象化的硬件抽象層。
5.一種計算機系統(tǒng),包括 一個或多個處理器;存儲器,所述存儲器可由所述一個或多個處理器訪問;以及虛擬化知曉的模塊,所述虛擬化知曉的模塊被存儲在所述存儲器中,且能在所述一個 或多個處理器上執(zhí)行,以便接收來賓物理存儲器地址范圍;確定所述來賓物理存儲器地址范圍的所述來賓物理存儲器地址中的至少之一是否指 向來賓物理存儲器的非常駐部分;響應(yīng)于確定所述來賓物理存儲器地址的至少之一指向來賓物理存儲器的非常駐部分向管理程序傳送對提交來賓物理存儲器的所述非常駐部分的請求,以及 從所述管理程序接收指示來賓物理存儲器的所述非常駐部分已經(jīng)被提交的消息; 傳送所述來賓物理存儲器地址范圍。
6.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述虛擬化知曉的模塊能進一步執(zhí) 行,以便接收與所述來賓物理存儲器地址范圍相關(guān)聯(lián)的存儲器傳輸完成的指示。
7.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述虛擬化知曉的模塊包括數(shù)據(jù)結(jié) 構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括用于來賓物理存儲器的每一部分的指示符,每一指示符包括對來賓 物理存儲器的部分是常駐還是非常駐的表示。
8.如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,每一指示符進一步包括進行中的存 儲器傳輸?shù)囊糜嫈?shù),所述進行中的存儲器傳輸瞄準(zhǔn)包括與所述指示符相關(guān)聯(lián)的來賓物理 存儲器的所述部分在內(nèi)的來賓物理存儲器地址范圍。
9.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述來賓物理存儲器地址范圍包括 異步直接存儲器訪問傳輸?shù)哪繕?biāo)。
10.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述虛擬化知曉的模塊是硬件抽象層。
11.如權(quán)利要求8所述的計算機系統(tǒng),其特征在于,在所述管理程序的所述請求時,所 述虛擬化知曉的模塊更新與來賓物理存儲器的每一部分相關(guān)聯(lián)的所述引用計數(shù)。
12.如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,所述虛擬化知曉的模塊的多個實例 化訪問包括用于來賓物理存儲器的每一部分的指示符在內(nèi)的所述相同的數(shù)據(jù)結(jié)構(gòu)。
13.如權(quán)利要求11所述的計算機系統(tǒng),其特征在于,所述管理程序被配置成當(dāng)所述虛 擬化知曉的模塊不能更新與來賓物理存儲器的每一部分相關(guān)聯(lián)的所述引用計數(shù)時制裁與 所述虛擬化知曉的模塊相關(guān)聯(lián)的虛擬機。
14.如權(quán)利要求所述的計算機系統(tǒng)13,其特征在于,所述制裁包括終止所述虛擬機。
15.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述來賓物理存儲器地址范圍與用 于傳達設(shè)備驅(qū)動器的請求的輸入/輸出請求分組相關(guān)聯(lián)。
16.如權(quán)利要求5所述的計算機系統(tǒng),其特征在于,所述虛擬化知曉的模塊被配置成被 插入到在由所述管理程序主存的工作負荷中執(zhí)行的非虛擬化知曉的來賓操作系統(tǒng),且其中 所述管理程序使得所述非虛擬化知曉的來賓操作系統(tǒng)能夠直接控制所述計算機系統(tǒng)的硬 件設(shè)備。
17.如權(quán)利要求所述的計算機系統(tǒng)16,其特征在于,當(dāng)所述工作負荷用對所述系統(tǒng)物 理存儲器的直接訪問來執(zhí)行DMA傳輸時,所述工作負荷被遷移到第二計算機系統(tǒng)。
18.—個或多個計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)包括被配置成被安裝 在非虛擬化知曉的來賓操作系統(tǒng)上的虛擬化知曉的過濾器驅(qū)動器,所述非虛擬化知曉的來 賓操作由虛擬化主計算機機的資源以供由所述非虛擬化知曉的來賓操作系統(tǒng)使用的系統(tǒng) 管理程序來主存,所述虛擬化知曉的過濾器驅(qū)動器被配置成當(dāng)一個或多個處理器上執(zhí)行時 執(zhí)行包括下列動作從設(shè)備驅(qū)動器接收對將來賓物理存儲器地址范圍轉(zhuǎn)換成總線相對存儲器地址范圍的 請求;確定由所述來賓物理存儲器地址范圍指向的存儲器的部分是否不是常駐在所述非虛 擬化知曉的來賓操作系統(tǒng)中;當(dāng)存在由所述來賓物理存儲器地址范圍指向的所述存儲器的非常駐部分時向所述設(shè)備驅(qū)動器傳送指示所請求的傳輸將不同步地發(fā)生的消息,向所述管理程序傳送請求將由所述來賓物理存儲器地址范圍指向的所述存儲器的所 有非常駐部分變成常駐的消息,以及從所述管理程序接收指示所述存儲器的所述非常駐部分已經(jīng)變?yōu)槌qv的消息;以及向所述硬件訪問層傳送對將所述來賓物理存儲器地址范圍轉(zhuǎn)換成總線相對存儲器地 址范圍的所述請求。
19.如權(quán)利要求18所述的一個或多個計算機可讀存儲介質(zhì),其特征在于,所述管理程 序準(zhǔn)許所述來賓操作系統(tǒng)直接訪問主計算機的硬件設(shè)備,同時所述管理程序允許過量使用 主計算機系統(tǒng)的系統(tǒng)物理存儲器。
20.如權(quán)利要求19所述的一個或多個計算機可讀存儲介質(zhì),其特征在于,所述管理程 序創(chuàng)建所述虛擬機的整體狀態(tài)的快照,所述快照是在所述虛擬機執(zhí)行時被部分地創(chuàng)建的。
全文摘要
所描述的技術(shù)通過在其他非虛擬化知曉的來賓操作系統(tǒng)中執(zhí)行虛擬化知曉的代碼來提高在管理程序上執(zhí)行的工作負荷的運行時性能。在一種實現(xiàn)中,虛擬化知曉的代碼允許工作負荷直接訪問物理硬件設(shè)備,同時允許過量使用被分配給工作負荷的系統(tǒng)存儲器。在一種實現(xiàn)中,DMA過濾器驅(qū)動器被插入到I/O驅(qū)動器堆棧,以保證在傳輸開始之前DMA傳輸?shù)哪繕?biāo)來賓物理存儲器是常駐的。DMA過濾器驅(qū)動器可以利用高速緩存來跟蹤存儲器的哪些頁是常駐的。高速緩存還可以指示存儲器的哪些頁由一個或多個傳輸使用,這使得管理程序能夠避免在傳輸過程中挪用存儲器頁。
文檔編號G06F13/28GK102077188SQ200980124869
公開日2011年5月25日 申請日期2009年6月5日 優(yōu)先權(quán)日2008年6月26日
發(fā)明者J·奧辛斯 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
五常市| 长汀县| 阳春市| 腾冲县| 大丰市| 宾阳县| 醴陵市| 潢川县| 永登县| 沈丘县| 汶川县| 华蓥市| 靖宇县| 深水埗区| 乐安县| 岳阳县| 沂水县| 政和县| 晋城| 和林格尔县| 昭觉县| 平定县| 永州市| 永城市| 汉源县| 陇西县| 吉安县| 交口县| 潼南县| 新巴尔虎右旗| 韶关市| 策勒县| 含山县| 木里| 陕西省| 青神县| 穆棱市| 密山市| 平乡县| 抚宁县| 诏安县|