TWI506445B - 用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體 - Google Patents

用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體 Download PDF

Info

Publication number
TWI506445B
TWI506445B TW098118057A TW98118057A TWI506445B TW I506445 B TWI506445 B TW I506445B TW 098118057 A TW098118057 A TW 098118057A TW 98118057 A TW98118057 A TW 98118057A TW I506445 B TWI506445 B TW I506445B
Authority
TW
Taiwan
Prior art keywords
memory
virtual
hypervisor
virtual memory
resident
Prior art date
Application number
TW098118057A
Other languages
English (en)
Other versions
TW201003404A (en
Inventor
Jacob Oshins
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of TW201003404A publication Critical patent/TW201003404A/zh
Application granted granted Critical
Publication of TWI506445B publication Critical patent/TWI506445B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體
本發明係關於虛擬作業系統的直接記憶體篩選器。
電腦工業在硬體方面有越來越朝向虛擬化之趨勢。在這些環境中,作業系統在虛擬機器監視器或超管理器之上運行,其中與電腦硬體的互動由虛擬層調停。如此允許多個虛擬作業系統,已知為訪客作業系統或訪客OS,在單一電腦上運行,使其可在作業系統之間強力分隔之下在相同機器上運行多個工作負載。這對於IT部門或需要運行多個工作負載或多個伺服器應用的任何操作而言都特別有利。不過,不管何時只要隔離的作業系統與電腦硬體互動,使得虛擬層必須介入以維持分隔,則虛擬層導入大幅的效能損失(performance penalty)。為了解決此效能損失,傳統方法利用讓訪客作業系統直接控制硬體裝置,減少其中虛擬層必須介入的互動次數。不過,同意訪客作業系統直接控制這些硬體裝置,總是需要同意訪客作業系統能夠完全並且專屬控制配置給該訪客作業系統的所有系統記憶體。同意將專屬記憶體存取給予該訪客作業系統,則會喪失包含狀態封裝、遷徙、快照以及檢查點這些虛擬化優點。
本說明書說明利用允許訪客作業系統(訪客OS)直接存取實體硬體裝置來執行「直接記憶體存取(Direct Memory Access,DMA)」傳輸,同時允許過度使用配置給訪客OS的系統記憶體,來增加在超管理器上執行的訪客OS之運轉時間效能。在一個實施當中,將虛擬感知DMA篩選驅動器***非虛擬感知作業系統的I/O驅動器堆疊當中。為了回應應用程式運用硬體裝置進行DMA傳輸的要求,DMA篩選驅動器延遲開始所要求的傳輸,直到傳輸的目的地記憶體受承認為止。在一個實施當中,篩選驅動器運用快取來追蹤哪個記憶體分頁受到承認,而不引用(invoke)超管理器。在一個實施當中,若篩選驅動器從快取當中知道目的地記憶體分頁已受承認,則篩選驅動器允許立即開始所要求的傳輸。不過,若篩選驅動器從快取當中知道目的地記憶體分頁的至少其中之一不受承認,則篩選驅動器要求超管理器支持(back)所有非承認的目的地記憶體分頁。在接收到所有目的地記憶體分頁都常駐的指示時,DMA篩選驅動器會開始要求的傳輸。
在一個實施當中,快取額外包含與每一記憶體分頁相關的參考計數器。在一個實施當中,於開始DMA傳輸之前,篩選驅動器增加與在傳輸期間可能會存取之每一記憶體分頁相關的參考計數器。若記憶體分頁的參考計數器包含正整數,則超管理器不同意該分頁用於其他工作負載。不過,若記憶體分頁的參考計數器為零,則超管理器有把握地同意記憶體分頁用於其他工作負載。在一個實施當中,一旦傳輸已經完成,篩選驅動器減少每一分頁與傳輸相關的參考計數。
在一個實施當中,超管理器可要求篩選驅動器重設快取的所有參考計數器。在一個實施當中,若工作負載無法即時回應超管理器的要求,則超管理器終止該工作負載。
下面討論,係將目標定為利用同意訪客OS直接存取實體硬體裝置,同時允許過度使用訪客OS的記憶體,來增加在超管理器上執行工作負載的運轉時間效能之技術。超管理器,也稱為主機、親代磁碟分割、特權磁碟分割或虛擬機器管理器,係不在訪客OS內之受信賴的程式碼監督本體。訪客OS,也稱為虛擬OS,係在由超管理器所建立的虛擬機器上執行。工作負載可包含在訪客OS上執行的應用程式;或另外工作負載可代表在虛擬機器上執行的整個軟體堆疊,包含訪客OS。
在伺服器環境內,在伺服器上執行的一般工作負載運用到主機電腦資源中的15-20%。伺服器電腦組態成具有此額外處理的頂部空間(headroom),以便用最小或無停止時間來有效處理伺服器負載內的峰值。另外,這對在單一機器上只有執行一個伺服器應用來說也很平常,因為伺服器應用通常消耗機器上所有可用的資源,而相同機器上有其他伺服器應用時就無法平順運行。在單一伺服器上執行多個訪客OS的潛在好處為有能力執行多個伺服器應用,每一應用都有自己的訪客OS,同時在工作負載之間共享系統資源。
狀態封裝,允許在虛擬機器系統內共享系統資源。當超管理器維護虛擬機器的狀態封裝,超管理器能夠挪用來自一個訪客OS的記憶體分頁,並將該等記憶體分頁給予另一個訪客OS。這在當一個訪客OS渴求記憶體而另一個訪客OS有多餘記憶體時有其好處,讓超管理器能夠有效配置記憶體給每一訪客OS。狀態封裝所能夠啟用的另一功能為遷徙,遷徙允許在第一機器上執行的第一超管理器將整個虛擬機器傳輸給在第二機器上執行的第二超管理器,同時該虛擬機器持續運行,只有一些或根本沒有資料損失。另外,狀態封裝,可建立快照或檢查點。快照與檢查點儲存虛擬機器的完整狀態,允許使用者完全並且無資料損失地恢復之前狀態。
傳統上來說,超管理器允許大部分計算在其頂端上運行的虛擬機器內完成而不中斷處理。不過,當在這些虛擬機器上執行的訪客OS嘗試與電腦的I/O系統(磁碟、網路、視訊等等)互動,則因為這些作業系統並未確實擁有這些裝置,所以傳統超管理器必須攔截此存取。若許可訪客OS直接操縱裝置,則許多訪客OS應該發出衝突指令給這些裝置,導致電腦當機。
為了避免當機,不管何時訪客OS嘗試與I/O系統互動時,傳統超管理器可攔截呼叫並且執行與訪客OS嘗試達成的動作相同之某些動作。例如:若訪客OS嘗試程式設計一磁碟控制器從磁碟讀取一個資料區塊,傳統超管理器可能會停止該訪客OS、從內含虛擬磁碟內容的檔案中讀取資料區塊、將來自該檔案的資料儲存到訪客OS所佔用之記憶體內,然後重新啟動該訪客OS。此處理係有用,但是緩慢。
讓虛擬的作業系統或其他工作負載直接控制機器內完整或部分特定裝置有其優點,如此超管理器就不用中斷來存取這些裝置,導致虛擬OS的效能大幅提升。
當超管理器建立訪客OS所要運行的環境時,會建立記憶體檢視來查看工作負載所擁有的實體記憶體範圍是否相鄰,類比於若訪客OS在實體機器上運行時可用的記憶體。實際上,指定給訪客OS的記憶體幾乎不會相鄰,並且訪客OS所使用之用於定址其記憶體的位址也幾乎不是該記憶體的真實實體位址。超管理器建立並維護可即時修正這些位址的間接表格(通常稱為分頁表)。也有可能訪客OS察覺其所擁有的某些記憶體並不存在,或暫時借給了另一個訪客OS。這在訪客OS直接控制真實實體I/O裝置時會發生問題。訪客OS可指示該裝置讀取或寫入這實際上不存在的記憶體,也可指示該裝置使用記憶體的虛擬位址,而非實際系統實體位址,來讀取或寫入記憶體。此由I/O裝置直接讀取或寫入至記憶體的處理稱為「直接記憶體存取(Direct Memory Access,DMA)」。
此問題的一項已提出的解決方案,通常稱為「I/O分頁錯失」(I/O Page Faults),牽涉到允許訪客OS指示裝置執行DMA傳輸。一旦裝置開始DMA傳輸,電腦的記憶體控制器攔截該處理並指示超管理器重新配置資源,如此在裝置嘗試存取的位址上可取得實體記憶體。然後,當取得記憶體時,並且當已經將正確內容載入記憶體時,則允許進行傳輸。此解決方案並未牽涉到變更訪客OS內的軟體。不過,此解決方案需要裝置容忍從該裝置開始交易到允許進行交易之間極大量的時間。因為超管理器在該傳輸開始之後 才感知該傳輸,所以此延遲相當巨大,而且確定實際實體記憶體的任何處理都可用於該傳輸,包含從交換檔中讀取,同時硬體裝置持續從緩衝區接收資料或傳輸資料至緩衝區。
利用在裝置內建立非常大的緩衝區可處理此延遲,不過因此會大幅增加裝置成本。或者,若硬體裝置在傳輸開始之前中斷在超管理器內運行的裝置驅動器,則可減少此延遲。在中斷時,超管理器內的裝置驅動器確定該目標記憶體已被承認。不過,此中斷本身具有效能問題,因為換起超管理器是一項非常耗資源的操作。
在一個實施當中,在交易開始之前,軟體組件***訪客OS內來中止軟體層上的I/O交易,並且確定在交易已經中止的同時,藉由實際實體記憶體以支持被該交易定為目標的虛擬記憶體。用以確定該目標的虛擬記憶體已被承認的中止交易,可讓交易能夠發生而無中斷,免除I/O分頁錯失方法所導致的任意延遲。在交易開始之前中止軟體層上的交易也不需要傳送中斷給超管理器,或與超管理器通訊。
第1圖描述在電腦上執行的說明虛擬機器環境100。該環境包含一個直接在電腦上執行的超管理器102。該電腦在一個實施當中可為具有運行多個工作負載所需資源的伺服器電腦,其中每一工作負載都在其自己的訪客OS實例當中執行。在另一個環境中,電腦為可讓使用者同時運行多個作業系統的個人電腦,像是桌上型或膝上型電腦。在一個實施當中,超管理器內含一超管理器I/O子系統104。超管理器I/O子系統104可控制電腦上所有硬體資源,確定多個訪客作業系統未發出衝突指令給實際硬體裝置。超管理器I/O子系統104可包含一訪客OS記憶體管理組件106,用來配置和控制配置給虛擬機器的虛擬資源。
超管理器102、超管理器I/O子系統104和訪客OS記憶體管理組件106可協調建立訪客作業系統108或訪客OS 108執行於其上的虛擬機器。在一個實施當中,訪客OS 108已經啟發,代表就是知道是否在虛擬機器頂端或在實體機器頂端上運行。根據對於虛擬資源與實體資源所做不同的假設,已啟發的訪客OS在虛擬機器上執行與在實體機器上執行所運用的資源不同。此外,已啟發的訪客OS可與超管理器102互動來分享資源。在一個實施當中,已啟發的訪客OS可從超管理器102協調要求虛擬記憶體,或放棄虛擬記憶體給超管理器102來讓另一個訪客OS使用。
在另一個實施當中,訪客OS 108並未感知其在虛擬機器上執行。此「未啟發的」訪客OS 108,也稱為非虛擬感知或非協調訪客OS 108,在虛擬機器上展現出比已啟發但同一個訪客OS更糟糕的效能。未啟發的訪客OS 108在虛擬機器上的操作與在實體機器上的操作完全一樣。
許多作業系統提供軟體擷取給通常裝置驅動器所使用的直接記憶體存取,此擷取牽涉到許多程式編輯介面與物件,其允許裝置驅動器呈現實體位址清單,通常是記憶體描述清單或MDL的格式,並且接收回傳的裝置邏輯位址清單,通常是散佈/收集清單的格式。
實體位址可為超管理器用來讀取或寫入真實實體記憶體的系統實體位址。或者,實體位址可當成真實實體位址顯示給訪客OS 108,但是實際上虛擬位址當成訪客實體位址。在另一方面,裝置邏輯位址為硬體裝置用來讀取或寫入至實體記憶體的位址。一旦從介面回傳裝置邏輯位址的散佈/收集清單,則裝置驅動器可程式編輯其硬體以實際進行相關的讀取與寫入。
許多作業系統透過此DMA擷取來允許外掛組件以擴充DMA功能性。在一個實施當中,DMA篩選器114可將自己***處理當中,其中當裝置驅動器112需要將實體位址轉換成裝置邏輯位址時,則會擷取其所呼叫函式的指標器。在其他環境中,虛擬感知硬體抽象化層(Hardware Abstraction Layer,HAL)120可***非虛擬感知訪客OS 108內,導致訪客OS 108展現出已啟發的行為。透過這些裝置,虛擬感知組件可***非虛擬感知訪客OS 108內,導致非虛擬感知訪客OS 108展現出類似於已啟發訪客OS的行為。
在一個實施當中,裝置驅動器112可起始DMA傳輸來將資料寫入硬體裝置,或從硬體裝置讀取資料。裝置驅動器112可傳送要求122至隨插即用管理員118,要求122包含定義在訪客OS的訪客實體位址內之記憶體範圍。在一個實施當中,隨插即用管理員118可傳送要求124給硬體存取層120,用來指出將來自訪客實體位址的記憶體範圍轉換成匯流排相對位址之函式。在接收到要求124之後,虛擬感知硬體存取層120可與超管理器102通訊,確定允許開始傳輸之前已經承認與DMA傳輸相關的記憶體。
在另一個實施當中,DMA篩選器114已***I/O驅動器堆疊110內。在一個實施當中,DMA篩選器114可接收用於在I/O驅動器堆疊110內通訊的I/O要求封包(I/O Request Packet,IRP)。IRP之一可為來自裝置驅動器112的要求126,用來指出將訪客實體記憶體位址範圍轉換成匯流排相對位址範圍之函式。虛擬感知DMA篩選器114可在接收要求126之後與超管理器102通訊,確定允許開始傳輸之前已經承認與DMA傳輸相關的記憶體。訊息128回傳至隨插即用管理員118,來允許開始傳輸。
第2圖描述在電腦上執行的說明虛擬機器環境200。在一個實施當中,DMA篩選器114中止一個要求的DMA傳輸,以確定已經承認交易所需的記憶體。所要求的DMA傳輸包含記憶體位址範圍。雖然這些記憶體位址以實體記憶體位置呈現給訪客OS 108,因此可立即用於DMA傳輸,這些位址實際可為訪客實體記憶體位址,一種未映射至實際實體記憶體位址的虛擬記憶體位址格式。此外,某些這些訪客實體記憶體位址目前並不映射至實際實體記憶體位址,因為超管理器102已經同意另一個訪客OS可使用記憶體的某些實際實體分頁。在DMA交易可安全在訪客OS 108內發生而超管理器102不介入之前,必須承認交易所參照的記憶體用於交易壽命期間,並且交易所參照的記憶體位址必須在訪客實體位址空間與系統實體位址空間之間具備有效的轉換。DMA篩選器114在一個實施當中與訪客OS記憶體管理組件106通訊,確定已經承認交易所參照的所有記憶體分頁。在一個實施當中,DMA篩選器114可與訪客OS記憶體管理組件106通訊,來要求訪客OS記憶體管理組件106承認交易所參照的所有未承認之記憶體分頁。
在一個實施當中,交易開始於應用202(例如從磁碟讀取),並且向下傳遞至將處置交易的硬體裝置之裝置驅動器112。然後裝置驅動器112使用其DMA介面,要求交易所參照的目的地記憶體之裝置邏輯位址。DMA篩選器114可攔截對於裝置邏輯位址的此要求,並且將交易放在等待清單204上,直到已經承認參照的記憶體並且存在有有效的交易。然後DMA篩選器114可呈現交易,搭配回傳給裝置驅動器112的邏輯位址結果集,然後程式編輯硬體讓資料傳輸通過DMA。
第3圖描述在電腦上執行的說明虛擬記憶體共享環境300。在一個實施當中,工作負載302、工作負載304和工作負載306全都在超管理器上執行,並且每一工作負載都可配置給一部份系統記憶體308。工作負載302-306在其他伺服器工作之間可執行資料庫、電子郵件伺服器、網路伺服器或OLAP伺服器。工作負載302可使用虛擬記憶體310,該虛擬記憶體可映射至系統記憶體308。工作負載304和306同樣使用虛擬記憶體312和314,該虛擬記憶體每一都映射至系統記憶體308。工作負載302的虛擬記憶體310中每一分頁都可映射至系統記憶體308內記憶體的分頁。不過,超管理器可從工作負載302偷走一個記憶體分頁,並供應該分頁當成工作負載304的分頁。因此,可讓兩個工作負載指向實體記憶體相同的部份,如重疊316所指示,或讓一個工作負載認為其擁有實際上已經同意另一個工作負載使用的記憶體分頁。在此情況下,其上執行工作負載302和304的訪客作業系統過度使用,因為超管理器的訪客OS記憶體管理組件已經配置比系統記憶體308內實際可用還要多的虛擬記憶體給工作負載。若工作負載302嘗試存取重疊316內含的記憶體,則超管理器會介入並將新記憶體分頁供應給工作負載302,選擇性從交換檔將值複製到新記憶體分頁。
記憶體共享為利用維持狀態封裝包覆虛擬機器可啟用的一項技術範例。利用允許虛擬記憶體技術,超管理器可共享工作負載之間的記憶體分頁、快速遷徙正在運行中的工作負載並且對工作負載進行快照或檢查點。這些技術可利用超管理器偷取或同意來自訪客OS的記憶體分頁之能力來啟動,而不會導致不穩定的環境。
第4圖描述說明的驅動器堆疊400。在一個實施當中,確定承認記憶體目標分頁的處理需要傳送訊息給訪客OS記憶體管理器106並接收回應訊息。在其他實施當中,利用導入記憶體狀態快取402來增加回應,來減少或消除DMA篩選器114必須與超管理器102通訊的次數。記憶體狀態快取402可儲存指示承認哪個系統記憶體308的記憶體分頁之陣列。記憶體狀態快取402可儲存在DMA篩選器114內,如此可在訪客OS 108的範圍內完成存取,而不用引用超管理器102。記憶體狀態快取402可包含4位元用於每一記憶體分頁。在一個具體實施例內,一位元可用來指示是否承認分頁,而其他3位元則計數與該記憶體分頁相關的主動DMA傳輸之數量。此系統允許記憶體狀態快取402最多追蹤7個同時進行的DMA交易。例如:記憶體狀態快取記錄404指示相關記憶體分頁已牽涉在7個DMA交易內,並且該分頁目前已經常駐。記憶體狀態快取記錄406指示相關記憶體分頁並未牽涉在任何DMA交易內,並且目前不受承認為真實實體記憶體分頁。在不受承認之下,嘗試寫入狀態快取記錄406相關記憶體分頁或從該記憶體分頁讀取的任何DMA交易會導致資料毀損或當機,因為該值可能會寫入指派給其他工作負載的記憶體,或寫入不存在的記憶體內。
追蹤與記憶體分頁相關之DMA傳輸次數的目的之一為確定超管理器102將不會從目前DMA交易正在使用的訪客OS 108中盜取分頁。因此,將至少承認目前DMA交易所使用記憶體範圍內包含之所有記憶體分頁,直到完成所有相關的DMA交易。因此,記憶體狀態快取記錄408指示一個錯誤-三個DMA交易在相關的記憶體分頁上操作,但是目前並不承認該分頁。因此,在超管理器102從一個工作負載盜取記憶體分頁並且給其他工作負載之前,首先會判斷訪客OS 108內嵌的虛擬感知組件是否知道該記憶體分頁目前正在使用中。
若已經開始DMA交易,並且已經承認與該交易相關的所有記憶體分頁,則DMA篩選器114增加與DMA交易相關的記憶體分頁相關的記憶體狀態快取記錄之參考計數或針腳計數。然後DMA篩選器114可立即允許交易開始。
記憶體狀態快取記錄410指示並無現用DMA交易使用相關的記憶體分頁,但是目前承認該分頁。若DMA傳輸要求使用類似於與記憶體狀態快取記錄410相關分頁之分頁,則應允許DMA傳輸立刻繼續直接存取執行中的硬體。
在一個實施當中,超管理器可要求DMA篩選器114重設記憶體狀態快取402的所有參考計數器。此外或另外,若工作負載無法即時回應超管理器的要求,則超管理器終止該工作負載。
在一個實施當中,記憶體狀態快取402並不存在。在此情況下,必須暫停裝置驅動器並且必須在超管理器解除任何分頁的承認之前撤回所有交易。此策略較佳在某些情況內,其大幅減少實施快取所需的記憶體。
當大多數或所有訪客記憶體仍舊承認時,並且大部分DMA交易開始而不需要與訪客OS記憶體管理員通訊時有最佳效能。
第5圖描述說明的複數個驅動器堆疊500。在一個實施當中,第一驅動器堆疊110、第二驅動器堆疊504和第三驅動器堆疊506都共享相同的記憶體狀態快取502。多個驅動器堆疊可立即製作不同的DMA篩選器114實例;不過所有虛擬感知DMA篩選器都管理相同的虛擬記憶體。因此,所有DMA篩選器在相同的記憶體狀態快取上運作,以便降低維護快取所需的負擔,並且將DMA篩選器114與超管理器之間的通訊減至最少。例如:若起始DMA傳輸的驅動器堆疊506牽涉到虛擬位址0x0012384C,但是不與其他DMA篩選器實例共享記憶體狀態快取502,每次超管理器要同意來自訪客OS的記憶體分頁時,則會檢查每個記憶體狀態快取來確定並不同意DMA傳輸內確實牽涉的記憶體分頁。
第6圖描述說明的遷徙環境600。根據此實施,狀態封裝可讓在電腦602上運行的超管理器604遷徙至在電腦606上運行的超管理器608。在一個環境內,工作負載610至616在超管理器604上執行。工作負載612可能需要透過網路622遷徙至超管理器608。該遷徙由將記憶體分頁從超管理器604複製到超管理器608來執行,同時遷徙的工作負載612繼續運作。利用使工作負載612內每一分頁無效來開始遷徙,如此工作負載612所做的任何後續記憶體存取都將進入超管理器604。然後,超管理器604將所有記憶體驗證分頁開始傳輸至超管理器608。在此傳輸期間,工作負載612繼續在超管理器604上執行。在傳輸期間存取的記憶體分頁會標示為不乾淨,並且留在超管理器604內,當記憶體分頁未標示為不乾淨,表示尚未被接觸過,則繼續傳輸至超管理器608。最終,所有乾淨的分頁都已經傳輸,並且只留下工作負載612接觸過的不乾淨分頁。在此點上,工作負載612會暫停來允許剩餘的不乾淨分頁傳輸至超管理器608。一旦所有分頁都已經傳輸至超管理器608,則在超管理器608上開始工作負載612,通常在超管理器604暫停工作負載612之後不超過300微秒就會開始。一般來說,遷徙發生並不會中斷連接。
第7圖描述使用虛擬感知軟體組件強化非虛擬感知作業系統之說明處理。操作702表示使用I/O驅動器堆疊110內安裝的虛擬感知軟體組件來決定系統是否在虛擬機器上執行。在一個實施當中,虛擬感知軟體組件包含DMA篩選器114。此外或另外,虛擬感知軟體組件包含HAL 120。另一方面,操作704表示當在虛擬機器上執行時虛擬感知軟體組件會與超管理器102通訊。
第8圖描述用於在軟體內延遲DMA傳輸開始,直到實體記憶體支持已知之與傳輸相關之記憶體之說明處理。操作802表示接收虛擬記憶體位址的範圍。在一個實施當中,虛擬記憶體位址的範圍包含DMA傳輸的來源或目的地。稍後可將接收的虛擬記憶體位址傳輸至裝置邏輯位址內,允許傳輸中使用的硬體裝置自然找出實體記憶體。另一方面,操作804表示決定由所接收虛擬記憶體位址所指向的任何虛擬記憶體是否都未被支持,否則認知為非常駐。若並沒有位址為非常駐,表示所有要求的位址都為常駐,則傳輸所接收的虛擬記憶體位址範圍。在一個具體實施例內,虛擬位址的範圍傳輸給將虛擬記憶體位址轉換成裝置邏輯位址之組件。另一方面,操作806表示正面判斷在已接收的虛擬記憶體位址範圍內參照至少記憶體的非支持或非常駐部份之一。另一方面,操作808表示要求超管理器102支持或常駐已接收的虛擬記憶體位址之非常駐部份。另一方面,操作810表示接收來自超管理器102的指示,告知所接收虛擬記憶體位址指向的所有非常駐部份均已被支持。另一方面,操作812表示傳輸虛擬記憶體位址的範圍。
第9圖描述用於在軟體內延遲DMA傳輸開始,直到真實實體記憶體支持已知之與傳輸相關之虛擬記憶體之說明處理。操作902表示接收要求將訪客實體記憶體位址的範圍轉換成匯流排相對記憶體位址。另一方面,操作904表示判斷真實實體記憶體是否任何接收的訪客實體記憶體位址都未被支持。若所有訪客實體記憶體位址都被支持,則所接收的要求傳輸至HAL 120。另一方面,操作906表示正面判斷在已接收的要求內所參照的訪客實體記憶體何時具有至少一非支持或非常駐部份。另一方面,操作908表示傳輸訊息給裝置驅動器112,指示不會同步發生傳輸。在一個具體實施例內,所接收的要求儲存在等待清單204內。另一方面,操作910表示傳輸訊息給超管理器102,要求超管理器102支持或常駐已接收要求內含的訪客實體記憶體之非常駐部份。另一方面,操作912表示接收來自超管理器102的訊息,告知真實實體記憶體已支持所接收要求內含訪客實體記憶體指向的所有非常駐部份。另一方面,操作914表示傳輸要求至HAL 120。
第10圖描述建立虛擬感知DMA篩選驅動器或DMA篩選器114的示例性處理功能性1000。處理功能性1000可組態成可實施軟體陳列分析和偵測系統的任何合適計算裝置或伺服器。在一個示例性組態中,處理功能性1000包含至少一處理單元1002以及記憶體1004。處理單元1002可實施成適合用在硬體、軟體、韌體或這些組合內。處理單元1002的軟體或韌體實施可包含用任何合適的程式語言撰寫來執行此處所述許多功能之電腦或機器可執行指令。
記憶體1004可儲存可在處理器1002上載入並執行的指令程式,以及在這些程式執行期間產生的資料。根據計算裝置的組態與類型,記憶體1004可為揮發性(像是RAM)及/或非揮發性(像是ROM、快閃記憶體等等)。計算裝置或伺服器也可包含額外可移除式儲存裝置1006以及/或不可移除式儲存裝置1008,包含但不受限於磁性儲存裝置、光碟片及/或帶儲存。硬碟機以及隨附之電腦可讀取媒體提供了電腦可讀取指令、資料結構、程式模組與計算裝置的其他資料之非揮發性儲存裝置。
記憶體1004、可移除式儲存裝置1006以及不可移除式儲存裝置1008全都是電腦儲存媒體的範例。電腦儲存媒體包含在任何方法或技術內實施的揮發與非揮發性、可移除與不可移除媒體,用於儲存像是電腦可讀取指令、資料結構、程式模組或其他資料等等資訊。記憶體1004、可移除式儲存裝置1006以及不可移除式儲存裝置1008全都是電腦儲存媒體的範例。可呈現的其他電腦儲存媒體類型包含但不受限於RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能光碟(Digital Versatile Disk,DVD)或其他光學儲存裝置、磁匣、磁帶、磁片儲存或其他磁性儲存裝置,或其他任何可用於儲存所要資訊並且可由伺服器或其他計算裝置存取的媒體。
此時更詳細說明記憶體1004的內容,記憶體1004可包含作業系統1010和一或多個用來實施軟體陣列分析與偵測程式100的應用程式或服務。在一個實施當中,記憶體1004包含一資料管理模組1012和一自動化模組1014。資料管理模組1012包含但不受限於識別並追蹤一個作業。自動化模組1014儲存並管理資訊,像是作業識別碼、作業狀態、使用者的計算裝置等等,並且可與一或多個邏輯及/或遠端資料庫或服務通訊。
記憶體1004進一步包含一使用者介面模組1016和一作業模組1018。使用者介面模組1016表示使用者具有使用者介面來登入或登出作業等等。作業模組1018包含但不受限於追蹤計算裝置的狀態、登入或登出、連線或中斷連線等等。作業模組1018執行連線、中斷連線、搜尋功能,像是執行搜尋來識別已經登入、登出的用戶端裝置、用戶端裝置的狀態、使用者狀態等等。
處理功能性1000也可內含通訊連線1016,其允許處理功能性1000與儲存的資料庫、其他計算裝置或伺服器、使用者終端機及/或網路上其他裝置通訊。通訊連線1016為通訊媒體的範例。通訊媒體一般具體實施電腦可讀取指令、資料指令以及程式模組。藉由範例並且不受限於此範例,通訊媒體包含像是有線網路或直接有線連線的有線媒體,以及像是聲音、RF、紅外線以及其他無線媒體的無線媒體。此處所使用的術語「電腦可讀取媒體」包含儲存媒體以及通訊媒體兩者。
處理功能性1000也可包含輸入裝置1018,像是鍵盤、滑鼠、筆、語音輸入裝置、觸碰輸入裝置等等,以及輸出裝置1020,像是顯示器、喇叭、印表機等等。處理功能性1000可包含在處理功能性1000上主控的資料庫,包含但不受限於作業資料、網路位址、計算裝置清單等等。所有這些裝置都為業界所熟知,因此不需要在耗費版面討論。
上述標的可在硬體、軟體或同時在硬體與軟體內實施。雖然以特定結構特徵語言以及/或方法性步驟來說明標的,吾人可瞭解,後附申請專利範圍內所定義的標的並不必然受限於上述特定特徵或步驟。而特定特徵與步驟僅揭示當成實施所主張標的的示例性形式。例如:方法性步驟並不需要依照此處所述的順序或組合來執行,可在一或多項步驟的任意組合內執行。
結論
雖然以特定結構特徵語言以及/或方法性步驟來說明示例性系統及方法,可瞭解,後附申請專利範圍內所定義的標的並不必然受限於所述的特定特徵或步驟。而特定特徵與步驟僅揭示當成實施所主張方法、裝置、系統等的示例性形式。
100...虛擬機器環境
102...超管理器
104...超管理器I/O子系統
106...訪客OS記憶體管理組件
108...訪客作業系統
110...I/O驅動器堆疊
110...第一驅動器堆疊
112...裝置驅動器
114...DMA篩選器
116...匯流排驅動器
118...隨插即用管理員
120...虛擬感知硬體抽象化層
122...要求
124...要求
126...要求
128...訊息
200...虛擬機器環境
202...應用
204...等待清單
300...虛擬記憶體共享環境
302...工作負載
304...工作負載
306...工作負載
308...系統記憶體
310...虛擬記憶體
312...虛擬記憶體
314...虛擬記憶體
316...重疊
400...驅動器堆疊
402...記憶體狀態快取
404...記憶體狀態快取記錄
406...記憶體狀態快取記錄
408...記憶體狀態快取記錄
410...記憶體狀態快取記錄
500...驅動器堆疊
502...記憶體狀態快取
504...第二驅動器堆疊
506...第三驅動器堆疊
600...遷徙環境
602...電腦
604...超管理器
606...電腦
608...超管理器
610...工作負載
612...工作負載
614...工作負載
616...工作負載
618...超管理器
620...工作負載
622...網路
1000...示例性處理功能性
1002...處理單元(處理器)
1004...記憶體
1006...可移除式儲存裝置
1008...不可移除式儲存裝置
1010...作業系統
1012...資料管理模組
1014...自動化模組
1016...使用者介面模組
1016...通訊連線
1018...輸入裝置
1020...輸出裝置
在此參考附圖來描述實施方式。在圖式內,參考數字的最左數字可識別首次出現該參考數字的圖式。不同圖式內所使用相同的參考符號指示類似或相同的項目。
第1圖描述已***訪客作業系統的I/O驅動器堆疊當中之說明虛擬感知篩選驅動器。
第2圖描述接收來自應用程式的DMA傳輸要求並將要求快取在等待清單中之說明虛擬感知篩選驅動器。
第3圖描述在工作負載之間分享系統記憶體的說明系統。
第4圖描述一個說明快取,該快取的每一元件都映射至一記憶體分頁。
第5圖描述包含複數個驅動器堆疊的訪客作業系統,每一驅動器堆疊都運用單一相同快取。
第6圖描述用於遷徙工作負載的說明處理。
第7圖描述一說明處理,為將虛擬感知軟體***非虛擬感知作業系統,如此當非虛擬感知作業系統在虛擬機器上執行時展現出與在實體機器上執行時之不同行為。
第8圖描述一說明處理,為接收記憶體位址範圍、決定該範圍所指出的記憶體是否常駐以及若虛擬記憶體不常駐,要求超管理器在傳輸該記憶體位址範圍之前將其常駐。
第9圖描述一說明處理,為接收轉換記憶體位址範圍的要求、決定所要求的記憶體是否常駐以及若要求的記憶體不常駐,則要求超管理器在傳輸該要求至硬體存取層之前將其常駐。
第10圖描述建立虛擬感知篩選驅動器的說明處理功能性。
100...虛擬機器環境
102...超管理器
104...超管理器I/O子系統
106...訪客OS記憶體管理組件
108...訪客作業系統
110...I/O驅動器堆疊
110...第一驅動器堆疊
112...裝置驅動器
114...DMA篩選器
116...匯流排驅動器
118...隨插即用管理員
120...虛擬感知硬體抽象化層
122...要求
124...要求
126...要求
128...訊息

Claims (20)

  1. 一種用於虛擬作業系統的直接記憶體篩選器的電腦系統,包括:一或更多個處理器;系統實體記憶體,可由該一或更多個處理器存取;以及一超管理器,儲存於該系統實體記憶體中,並可在該一或更多個處理器上執行;以及一第一虛擬機器,儲存於該系統實體記憶體中,該第一虛擬機器具有一虛擬感知模組,該虛擬感知模組可在該一或更多個處理器上執行,用來執行下列步驟:接收一虛擬記憶體位址範圍;獨立於該超管理器,判斷該虛擬記憶體位址範圍的虛擬記憶體位址的至少一者是否指向該系統實體記憶體的一非常駐部份,其中該系統實體記憶體的該非常駐部份係可至少與儲存於該系統實體記憶體中之一第二虛擬機器共享;回應判斷該等虛擬記憶體位址的至少一者指向系統實體記憶體的一非常駐部份,傳輸一要求至該超管理器,以支持(back)系統實體記憶體之該非常駐 部份,並接收來自該超管理器指示已支持系統實體記憶體的該非常駐部份之一訊息;以及因應於判斷至少該等虛擬記憶體位址沒有指向系統實體記憶體的一非常駐部份,或接收來自該超管理器之該訊息此兩者中之至少一者,以傳輸該虛擬記憶體位址範圍。
  2. 如申請專利範圍第1項所述之電腦系統,其中虛擬記憶體的一部份包含虛擬記憶體的一分頁。
  3. 如申請專利範圍第1項所述之電腦系統,其中該虛擬感知模組可另執行下列動作:接收與該虛擬記憶體位址範圍相關的一記憶體傳輸已經完成之一指示。
  4. 如申請專利範圍第3項所述之電腦系統,其中該虛擬感知模組包含一資料結構,該資料結構包含用於虛擬記憶體每一部份的一指示器,每一指示器包含系統實體記憶體一部份是否常駐或非常駐的一表示。
  5. 如申請專利範圍第4項所述之電腦系統,其中每一指示器另包含進行中記憶體傳輸的一參考計數,該進行中記憶體傳輸係將目標定為包含與該指示器相關的該虛擬記憶體部份之一虛擬記憶體位址範圍。
  6. 如申請專利範圍第1項所述之電腦系統,其中該虛擬記憶體位址範圍包含一非同步直接記憶體存取傳輸 的一目標。
  7. 如申請專利範圍第1項所述之電腦系統,其中該虛擬感知模組為一硬體抽象化層。
  8. 如申請專利範圍第5項所述之電腦系統,其中在該超管理器的該要求上,該虛擬感知模組更新與每一虛擬記憶體部份相關的該參考計數。
  9. 如申請專利範圍第4項所述之電腦系統,其中該虛擬感知模組的多個實例係存取包含每一虛擬記憶體部份的指示器之相同資料結構。
  10. 如申請專利範圍第8項所述之電腦系統,其中該超管理器經組態成當該虛擬感知模組無法更新與每一虛擬記憶體部份相關的該參考計數時,終止該第一虛擬機器。
  11. 如申請專利範圍第1項所述之電腦系統,其中該虛擬記憶體位址範圍包含用於通訊一裝置驅動器的一要求之一輸入/輸出要求封包。
  12. 如申請專利範圍第1項所述之電腦系統,其中該虛擬感知模組經組態成***由該超管理器所主控的一工作負載內執行之一非虛擬感知訪客作業系統,並且其中該超管理器可讓該非虛擬感知訪客作業系統能夠直接控制該電腦系統的一硬體裝置。
  13. 如申請專利範圍第12項所述之電腦系統,其中該工 作負載係運用狀態封裝以遷徙至一第二電腦系統。
  14. 一種用於虛擬作業系統的直接記憶體篩選器的方法,包含以下步驟:在具有一虛擬感知模組之一第一虛擬機器接收一虛擬記憶體位址範圍,該虛擬感知模組儲存於一系統實體記憶體中;判斷是該虛擬記憶體位址範圍的虛擬記憶體位址的至少一者或是該虛擬記憶體位址範圍的該等虛擬記憶體位址中沒有任何一者指向系統實體記憶體的一非常駐部份,其中該系統實體記憶體的該非常駐部份係可至少與儲存於該系統實體記憶體中之一第二虛擬機器共享;回應判斷該等虛擬記憶體位址的至少一者指向系統實體記憶體的一非常駐部份,傳輸一要求至一超管理器,以提交系統實體記憶體之該非常駐部份;以及從該第一虛擬機器,因應於判斷該等虛擬記憶體位址沒有指向系統實體記憶體的一非常駐部份,或接收來自該超管理器指示系統實體記憶體之該非常駐部份已經提交之該訊息此兩者中之至少一者,以傳輸該虛擬記憶體位址範圍。
  15. 如申請專利範圍第14項所述之方法,另包含以下步 驟:接收與該虛擬記憶體位址範圍相關的一系統實體記憶體傳輸已經完成之一指示。
  16. 如申請專利範圍第14項所述之方法,其中該虛擬感知模組包含一資料結構,該資料結構包含用於虛擬記憶體每一各別部份的一各別指示器,每一各別指示器包含系統實體記憶體各別部份是否常駐或非常駐的一表示,並另包含利用該虛擬感知模組的多個實例存取包括每一虛擬記憶體各別部份的指示器之相同資料結構之步驟。
  17. 如申請專利範圍第16項所述之方法,其中該第一虛擬機器之該虛擬記憶體位址範圍係為一第一虛擬記憶體位址範圍,其中每一各別指示器另包含進行中記憶體傳輸的一各別參考計數,該進行中記憶體傳輸係將目標定為包含與該指示器相關的該虛擬記憶體各別部份之一虛擬記憶體位址範圍,並另包含在傳輸該超管理器的該要求上,更新與每一虛擬記憶體各別部份相關的該各別參考計數之步驟。
  18. 如申請專利範圍第17項所述之方法,其中當該虛擬感知模組無法更新與每一虛擬記憶體部份相關的該各別參考計數時,藉由該超管理器許可該第一虛擬機器。
  19. 一種儲存指令之電腦可讀取儲存媒體,當在一或更多個處理器上執行時,使該一或更多個處理器執行下列步驟:獨立於具有一虛擬感知模組之一第二虛擬機器之一工作負載,在具有一虛擬感知模組之一第一虛擬機器接收一虛擬記憶體位址範圍;判斷是該虛擬記憶體位址範圍的虛擬記憶體位址的至少一者或是該虛擬記憶體位址範圍的該等虛擬記憶體位址中沒有任何一者指向系統實體記憶體的一非常駐部份;回應判斷該等虛擬記憶體位址的至少一者指向系統實體記憶體的一非常駐部份,傳輸一要求至一超管理器,以提交系統實體記憶體之該非常駐部份,並接收來自該超管理器指示已提交系統實體記憶體的該非常駐部份之一訊息;因應於判斷該等虛擬記憶體位址沒有指向虛擬記憶體的一非常駐部份,或來自該超管理器之該訊息此兩者中之至少一者,以從該第一虛擬機器傳輸該虛擬記憶體位址範圍;以及對於每一虛擬記憶體部份,更新與該每一虛擬記憶體部份相關之相應參考計數,其中該虛擬感知模組包含一資料結構,該資料結構包含用於每一虛擬記憶 體部份的一指示器,每一指示器包含系統實體記憶體之一部份是否常駐或非常駐的一表示。
  20. 如申請專利範圍第19項所述之儲存指令之電腦可讀取儲存媒體,當在該一或更多個處理器上執行時,使該一或更多個處理器執行下列步驟:接收與該虛擬記憶體位址範圍相關的一記憶體傳輸已經完成之一指示。
TW098118057A 2008-06-26 2009-06-01 用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體 TWI506445B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/147,199 US8230155B2 (en) 2008-06-26 2008-06-26 Direct memory access filter for virtualized operating systems

Publications (2)

Publication Number Publication Date
TW201003404A TW201003404A (en) 2010-01-16
TWI506445B true TWI506445B (zh) 2015-11-01

Family

ID=41449257

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098118057A TWI506445B (zh) 2008-06-26 2009-06-01 用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體

Country Status (2)

Country Link
US (2) US8230155B2 (zh)
TW (1) TWI506445B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381209B2 (en) * 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US8689288B2 (en) * 2007-04-16 2014-04-01 Samsung Electronics Co., Ltd. Apparatus and method for protecting system in virtualized environment
US8230155B2 (en) 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8667187B2 (en) 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US8719823B2 (en) * 2009-03-04 2014-05-06 Vmware, Inc. Managing latency introduced by virtualization
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US9110806B2 (en) * 2010-03-10 2015-08-18 Microsoft Technology Licensing, Llc Opportunistic page caching for virtualized servers
US8954959B2 (en) 2010-09-16 2015-02-10 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US8631170B2 (en) * 2010-09-16 2014-01-14 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
US8694992B2 (en) 2010-12-16 2014-04-08 International Business Machines Corporation Traversing memory structures to parse guest operating system instrumentation information in a hypervisor
US9176787B2 (en) 2011-08-18 2015-11-03 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
US9146785B2 (en) * 2011-09-14 2015-09-29 Microsoft Technology Licensing, Llc Application acceleration in a virtualized environment
US9804870B2 (en) 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US8904113B2 (en) 2012-05-24 2014-12-02 International Business Machines Corporation Virtual machine exclusive caching
EP2979180B1 (en) * 2013-03-27 2019-10-30 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating virtualization resources
US20140366022A1 (en) * 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating a Magnetometer in a Guest Operating System from a Host Operating System
US20140366021A1 (en) * 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating an Accelerometer in a Guest Operating System from a Host Operating System
US20150199210A1 (en) * 2014-01-15 2015-07-16 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Confluence of Multiple Operating Systems
US9378038B2 (en) 2013-06-07 2016-06-28 American Megatrends, Inc. Methods, devices and computer readable storage devices for emulating a gyroscope in a guest operating system from a host operating system
US9858097B2 (en) 2013-06-07 2018-01-02 American Megatrends, Inc. Methods, devices and computer readable storage devices for emulating rotation events in a guest operating system from a host operating system
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9459900B2 (en) * 2014-01-13 2016-10-04 Red Hat Israel, Ltd. Hypervisor-based balloon page initialization
US9430182B2 (en) 2014-03-06 2016-08-30 American Megatrends, Inc. Methods, systems and computer readable storage devices for presenting screen content
US9817689B2 (en) 2015-02-27 2017-11-14 Red Hat, Inc. Dirty page tracking of guest-uncached memory
US10341215B2 (en) 2016-04-06 2019-07-02 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating network traffic patterns on a virtual machine
US10684840B1 (en) 2017-03-03 2020-06-16 Amazon Technologies, Inc. Software package installation and monitoring
US10466991B1 (en) * 2017-03-03 2019-11-05 Amazon Technologies, Inc. Computing instance software package installation
US10261925B2 (en) 2017-06-23 2019-04-16 Microsoft Technology Licensing, Llc Enhanced techniques for detecting programming errors in device drivers
US10761986B2 (en) * 2018-10-23 2020-09-01 Advanced Micro Devices, Inc. Redirecting data to improve page locality in a scalable data fabric
US11734197B2 (en) * 2020-07-31 2023-08-22 EMC IP Holding Company LLC Methods and systems for resilient encryption of data in memory
US11914517B2 (en) 2020-09-25 2024-02-27 Advanced Micro Devices, Inc. Method and apparatus for monitoring memory access traffic
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW514784B (en) * 2000-06-08 2002-12-21 Ibm Hypervisor virtualization of OS console and operator panel
TW200602869A (en) * 2004-06-30 2006-01-16 Ibm Autonomically tuning the virtual memory subsystem of a computer operating system
TW200622908A (en) * 2004-09-30 2006-07-01 Ibm System and method for sharing resources between real-time and virtualizing operating systems
US20060206658A1 (en) * 2005-03-08 2006-09-14 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20080141266A1 (en) * 2004-12-06 2008-06-12 Microsoft Corporation Process Isolation Using Protection Domains

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3874603B2 (ja) 2000-11-21 2007-01-31 株式会社日立製作所 計算機システムの共有メモリ構築方法
US7376949B2 (en) 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US20050246453A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US20060070065A1 (en) 2004-09-29 2006-03-30 Zimmer Vincent J Memory support for heterogeneous virtual machine guests
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7685635B2 (en) 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US7451249B2 (en) 2005-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system
US8001543B2 (en) 2005-10-08 2011-08-16 International Business Machines Corporation Direct-memory access between input/output device and physical memory within virtual machine environment
US7890669B2 (en) * 2005-11-25 2011-02-15 Hitachi, Ltd. Computer system for sharing I/O device
US8042109B2 (en) 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US7613847B2 (en) 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
US20080065854A1 (en) * 2006-09-07 2008-03-13 Sebastina Schoenberg Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor
US8230155B2 (en) 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8151032B2 (en) * 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW514784B (en) * 2000-06-08 2002-12-21 Ibm Hypervisor virtualization of OS console and operator panel
TW200602869A (en) * 2004-06-30 2006-01-16 Ibm Autonomically tuning the virtual memory subsystem of a computer operating system
TW200622908A (en) * 2004-09-30 2006-07-01 Ibm System and method for sharing resources between real-time and virtualizing operating systems
US20080141266A1 (en) * 2004-12-06 2008-06-12 Microsoft Corporation Process Isolation Using Protection Domains
US20060206658A1 (en) * 2005-03-08 2006-09-14 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources

Also Published As

Publication number Publication date
US9235435B2 (en) 2016-01-12
US20090328074A1 (en) 2009-12-31
TW201003404A (en) 2010-01-16
US8230155B2 (en) 2012-07-24
US20120290766A1 (en) 2012-11-15

Similar Documents

Publication Publication Date Title
TWI506445B (zh) 用於虛擬作業系統的直接記憶體存取篩選器的電腦系統、方法及電腦可讀取儲存媒體
EP2313832B1 (en) Direct memory access filter for virtualized operating systems
JP3659062B2 (ja) 計算機システム
US8635612B2 (en) Systems and methods for hypervisor discovery and utilization
US8612633B2 (en) Virtual machine fast emulation assist
US9304804B2 (en) Replicating virtual machines across different virtualization platforms
US10185514B2 (en) Virtual machine trigger
US10176007B2 (en) Guest code emulation by virtual machine function
CN104598303B (zh) 基于kvm的虚拟机间在线迁移方法与装置
US20060184938A1 (en) Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
KR20160033517A (ko) 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법
EP2684122A1 (en) Runtime virtual process creation for load sharing
US8738890B2 (en) Coupled symbiotic operating system
US10990374B2 (en) Virtual machine update while keeping devices attached to the virtual machine
US20070118834A1 (en) Method and storage medium for virtualization of device self-description information using in-transit modification
US20140215467A1 (en) Method and Virtualization Controller for Managing a Computer Resource With at Least Two Virtual Machines
JPWO2018173300A1 (ja) I/o制御方法およびi/o制御システム
US20200218459A1 (en) Memory-mapped storage i/o

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees