TW202309743A - 虛擬機器執行期間無法存取之前綴頁面 - Google Patents
虛擬機器執行期間無法存取之前綴頁面 Download PDFInfo
- Publication number
- TW202309743A TW202309743A TW111119200A TW111119200A TW202309743A TW 202309743 A TW202309743 A TW 202309743A TW 111119200 A TW111119200 A TW 111119200A TW 111119200 A TW111119200 A TW 111119200A TW 202309743 A TW202309743 A TW 202309743A
- Authority
- TW
- Taiwan
- Prior art keywords
- access
- memory
- virtual machine
- selected area
- implicit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
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)
- Storage Device Security (AREA)
- Operation Control Of Excavators (AREA)
Abstract
分派一虛擬機器,且基於該分派判定預期可由該虛擬機器存取且用於該虛擬機器與一作業系統之間的通信的記憶體之一選擇區域是否可由該虛擬機器存取。基於判定記憶體之該選擇區域不可由該虛擬機器存取,藉由一選擇攔截碼退出虛擬機器執行。
Description
一或多個態樣大體上係關於促進計算環境內之處理,且特定而言,係關於改良此類處理。
計算環境常常具有待由機器或程式用以與作業系統通信之記憶體的選擇區域。記憶體之此區域可稱為前綴頁面,且在一個實例中,包括8K (千位元組)記憶體。該記憶體被定義為真實記憶體,且存取不需要動態轉譯。此等頁面含有一系列預定義指派儲存位置。作業系統組態內之各虛擬處理器具有唯一前綴值。此前綴值將所指派之真實儲存位置映射至僅由彼處理器使用之絕對位址。可在程式之執行期間顯式地或隱式地存取記憶體之頁面。顯式存取歸因於特定指令之執行而發生,如界定於例如由國際商業機器公司(International Business Machines Corporation)提供之z/Architecture
®指令集架構中的監督器呼叫(Supervisor Call)或儲存設施清單(Store Facility List)指令。隱式存取歸因於指令執行之範疇外的條件而發生,且包括例如架構化中斷(諸如機器檢查、外部中斷、輸入/輸出(I/O)中斷等)或在指令執行期間遇到的程式中斷(作為儲存之副作用或歸因於異動之異常終止)。
舉例而言,對於由機器偵測到程式例外狀況的情況,機器儲存關於前綴頁面中之程式例外狀況的資訊。此資訊包括現行程式狀態字(PSW)及正執行之程式之指令位址(稱為程式舊PSW)、發生之程式例外狀況(程式中斷碼)之類型,及關於例外狀況之資訊,諸如記憶體位址、定址模式等。另外,機器獲得軟體程式中斷處理常式(亦稱為程式新PSW)之程式狀態字及指令位址,且使用該程式狀態字及指令位址起動作業系統中之程式中斷處理常式的執行。在處置程式例外狀況之後,作業系統將還原程式舊PSW且恢復原始程式之執行。另外,在一個實例中,當客體遇到記憶體異動時,客體前綴頁面亦儲存有診斷資訊。
在支援虛擬化之計算環境中,虛擬機器(客體)之前綴頁面經映射且可由虛擬機器存取。對於作為超管理器(或主機)之客體執行的虛擬機器,儘管作為真實頁面存取客體前綴頁面,但可存在在超管理器層級提供虛擬化且將客體真實頁面映射至主機絕對儲存器之超管理器轉譯。
在典型超管理器實施中,虛擬機器之前綴頁面為超管理器所已知。超管理器負責在記憶體中釘選此等頁面,且在客體執行之持續時間保持其主機轉譯有效。虛擬機器之前綴頁面的釘選對超管理器而言係繁瑣的,此係因為難以更改其記憶體管理方案以避免超出客體前綴頁面。安全虛擬機器之執行進一步使超管理器之記憶體管理複雜化。在此情況下,出於安全原因,即使在前綴頁面仍自動態硬體轉譯映射時,超管理器仍可能不再存取屬於安全客體之前綴頁面。此防止非受信任超管理器影響及存取客體資料。
需促進與虛擬機器(包括安全虛擬機器)相關聯之處理及前綴頁面之使用。
經由提供用於促進計算環境內之處理的電腦程式產品來克服先前技術之缺點且提供額外優點。該電腦程式產品包括一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行方法之程式指令。該方法包括基於一虛擬機器之分派判定預期可由該虛擬機器存取且用於該虛擬機器與一作業系統之間的通信的記憶體之一選擇區域是否可由該虛擬機器存取。基於判定記憶體之該選擇區域不可由該虛擬機器存取,藉由一選擇攔截碼退出虛擬機器執行。此舉在預期可存取的記憶體之選擇區域不可存取的情況下藉由防止客體指令執行來促進處理。
在一個實例中,基於判定記憶體之該選擇區域可由該虛擬機器存取,執行該虛擬機器之一或多個客體指令。
在一個實例中,基於判定記憶體之該選擇區域可存取,判定該虛擬機器之一客體指令是否將存在對記憶體之該選擇區域的存取。基於判定將存在存取,檢查該存取為一顯式存取抑或一隱式存取。基於該存取為該顯式存取抑或該隱式存取,執行一或多個動作。
再次檢查記憶體之預期可存取的該選擇區域之可存取性以促進處理。一或多個態樣處置以下情形:超管理器在客體執行之持續時間內可能不再保持釘選客體(例如,虛擬機器)之記憶體(例如,前綴頁面)之選擇區域。
作為一實例,基於存取為隱式存取,該一或多個動作包括例如判定隱式存取之原因及基於隱式存取之原因而執行一或多個選擇動作。
在一個實例中,基於隱式存取之原因為異步中斷,一或多個選擇動作包括例如執行記憶體之選擇區域的預先測試及判定在記憶體之選擇區域的預先測試期間是否發生例外狀況。作為一實例,基於判定在記憶體之選擇區域的預先測試期間發生該例外狀況,該異步中斷在虛擬機器中保持待處理,且存在該虛擬機器藉由選擇攔截碼至主機的退出。
在一個實例中,基於隱式存取之原因為程式中斷,一或多個選擇動作包括判定該程式中斷是否需存取記憶體之該選擇區域及基於判定該程式中斷需存取記憶體之該選擇區域而執行記憶體之該選擇區域的一預先測試。在一個實例中,判定在記憶體之選擇區域之預先測試期間是否發生例外狀況,且基於在記憶體之選擇區域之預先測試期間是否發生例外狀況而執行處理。
在一個實例中,該執行處理包括基於判定在記憶體之該選擇區域的該預先測試期間並未發生該例外狀況而繼續進行指令處理。在一個實例中,基於判定在記憶體之選擇區域之預先測試期間確實發生例外狀況,執行處理包括檢查客體指令是否作為異動執行之部分而執行。基於該檢查指示客體指令作為異動執行之部分而執行,藉由選擇攔截碼退出虛擬機器執行,且異常終止異動執行。在一個實例中,基於該檢查指示客體指令並不作為異動執行之部分而執行,判定例外狀況之類型,且基於例外狀況之類型執行一或多個所選動作。
作為一實例,基於例外狀況之類型為廢止或抑制例外狀況,一或多個所選動作包括廢止客體指令。另外,在一個實例中,基於例外狀況之類型為完成或早期指定例外狀況,一或多個所選動作包括將中斷資訊儲存在安全位置、針對例外狀況鎖定虛擬機器,以及藉由選擇攔截碼退出虛擬機器執行。
在一個實例中,在虛擬機器之下一輸入項處檢查虛擬機器之鎖定,且基於經由鎖定設定該鎖定而完成程式例外狀況處置。
藉由判定退出之原因/條件且基於其執行動作來促進處理。
本文中亦描述及主張與一或多個態樣相關之電腦實施方法及系統。另外,本文中亦描述及可能主張與一或多個態樣相關之服務。
經由本文中所描述之技術實現額外特徵及優勢。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之部分。
根據本發明之一或多個態樣,提供一種促進計算環境內之處理的能力。作為一實例,該能力包括在虛擬機器之執行期間基於記憶體之選擇區域(例如,前綴頁面)之可存取性執行選擇性處理。
參考圖1描述併有及使用本發明之一或多個態樣的計算環境之一個實施例。作為一實例,該計算環境係基於由紐約阿蒙克市之國際商業機器公司提供之z/Architecture
®指令集架構。z/Architecture指令集架構之一個實施例描述於標題為「z/Architecture Principles of Operation」之公開案(IBM公開案第SA22-7832-12號,第十三版,2019年9月)中,該公開案特此以全文引用之方式併入本文中。然而,z/Architecture指令集架構僅為一個實例架構;國際商業機器公司及/或其他實體之其他架構及/或其他類型的計算環境可包括及/或使用本發明之一或多個態樣。z/Architecture及IBM為國際商業機器公司在至少一個司法管轄區中之商標或註冊商標。
參考圖1,在一個實例中,計算環境100包括中央處理器複合體(CPC) 102。中央處理器複合體102為例如IBM Z
®伺服器(或由國際商業機器公司或其他實體供應之其他伺服器或機器),且包括耦接至一或多個處理器單元(亦稱為處理器) 110及輸入/輸出(I/O)子系統111之複數個組件,諸如記憶體104 (亦稱為系統記憶體、主記憶體、主儲存器、中央儲存器、儲存器)。實例處理器單元110包括一或多個通用處理器(亦稱為中央處理器或中央處理單元(CPU))及/或一或多個其他處理器。IBM Z為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
I/O子系統111可為中央處理器複合體之一部分或與其分離。其引導主儲存器104與耦接至中央處理器複合體之輸入/輸出控制單元108及輸入/輸出(I/O)裝置106之間的資訊流。
可使用許多類型之I/O裝置。一個特定類型為資料儲存裝置140。資料儲存裝置140可儲存一或多個程式142、一或多個電腦可讀程式指令144及/或資料等。電腦可讀程式指令可經組態以進行本發明之態樣之實施例的功能。
中央處理器複合體102可包括及/或耦接至可移除式/不可移除式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非可移除式非揮發性磁性媒體(通常稱為「硬碟機」)、用於自可移除式非揮發性磁碟(例如,「軟碟」)讀取及寫入至可移除式非揮發性磁碟之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之可移除式非揮發性光碟讀取或寫入至可移除式非揮發性光碟之光碟機。應理解,可結合中央處理器複合體102使用其他硬體及/或軟體組件。實例包括但不限於:微碼或毫碼(millicode)、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
另外,中央處理器複合體102可與大量其他通用或專用計算系統環境或組態一起操作。可適合於與中央處理器複合體102一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、薄用戶端、厚用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子器件、網路PC、迷你電腦系統、大型電腦系統及包括上述系統或裝置中之任一者的分散式雲端計算環境及類似者。
中央處理器複合體102在一或多個實施例中提供虛擬化支援,其中記憶體104包括例如一或多個虛擬機器112 (亦稱為客體)、諸如超管理器114之管理虛擬機器之虛擬機器管理器、受信任執行環境115及處理器韌體116。超管理器114之一個實例為由紐約阿蒙克市之國際商業機器公司提供之z/VM
®超管理器。超管理器有時稱為主機。z/VM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
在一或多個實施例中,受信任執行環境115可至少部分地實施於經組態以執行例如諸如本文中所描述之過程之硬體及/或韌體中。受信任執行環境為利用記憶保護硬體施行記憶體保護之受信任韌體(其亦可稱為超監督器)及/或硬體。客體之擁有者可藉由使用嵌入於主機密鑰文件中之公用主機密鑰而將資訊安全地傳遞(使用例如IBM安全執行)至受信任執行環境。為處理機密資訊,受信任執行環境使用匹配之私用主機密鑰。私用主機密鑰特定於伺服器,例如,IBM Z
®伺服器,且受硬體保護。
處理器韌體116包括例如處理器之微碼或毫碼。其包括例如用於實施較高階機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,該專屬碼通常作為包括受信任軟體之微碼或毫碼、特定於底層硬體之微碼或毫碼提供,且控制作業系統對系統硬體之存取。
中央處理器複合體之虛擬機器支援提供操作大量虛擬機器112之能力,該等虛擬機器各自能夠用不同程式120操作且執行客體作業系統122,諸如Linux
®作業系統。各虛擬機器112能夠充當分開系統。亦即,各虛擬機器可獨立地進行重設,執行客體作業系統,且藉由不同程式操作。在虛擬機器中執行之作業系統或應用程式呈現為能夠存取完整系統,但實際上,僅其一部分可用。儘管提供z/VM及Linux作為實例,但可根據本發明之一或多個態樣使用其他虛擬機器管理器及/或作業系統。註冊商標Linux
®係依照Linux基金會(Linux Foundation)的轉授權而使用,Linux Foundation為該商標在全球範圍內的所有者Linus Torvalds的獨家被授權人。
在一個實施例中,一或多個虛擬機器112為安全虛擬機器。安全虛擬機器由超管理器(例如,超管理器114)以使得超管理器無法觀測安全虛擬機器之狀態(例如,記憶體、暫存器等)的方式起動。舉例而言,在機密計算之一個實施例中,超管理器可起動/停止安全虛擬機器,且超管理器知曉用於起動安全虛擬機器之資料位於何處但其無法深入執行安全虛擬機器。用於載入/起動安全虛擬機器之資料可以超管理器無法看到安全機器之方式加密。安全虛擬機器影像之擁有者將機密資料置放於安全客體後設資料中,且接著產生安全虛擬機器影像以及安全客體後設資料。在載入安全虛擬機器之後,藉由諸如受信任執行環境115之受信任執行環境處理與安全虛擬機器之狀態的任何互動。
在一個實例中,參考圖2,為起動安全虛擬機器,超管理器(例如,超管理器114)發出起動虛擬機器指令200,諸如由受信任實體(例如,超監督器)執行之起動解譯性執行指令。作為一實例,起動虛擬機器指令200包括指向控制區塊(例如,非安全狀態描述202)之運算元,其包括主機(例如,超管理器114)與虛擬機器之間的介面。作為一實例,非安全狀態描述202包括指示所起動之虛擬機器是否為安全虛擬機器之安全指示符204。舉例而言,若安全指示符204經設定成例如一,則虛擬機器為安全虛擬機器(且若其被設定成例如零,則其為非安全虛擬機器)。另外,非安全狀態描述202包括安全執行標識碼206及指向另一控制區塊(安全狀態描述220)之指標(稱為安全狀態描述指標210)。安全狀態描述220包括未由超管理器看到之安全虛擬機器之機密資料。在一個實例中,安全狀態描述220亦包括至非安全狀態描述202之指標230。(若所起動之虛擬機器為非安全虛擬機器,則在一個實例中,不指向或使用安全狀態描述。)
基於針對安全虛擬機器執行起動虛擬機器指令,受信任實體將安全虛擬機器載入至硬體中,且當起動指令完成時,虛擬機器安全地在硬體上執行。在虛擬機器執行之持續時間中,無論安全或非安全,記憶體之選擇區域(例如,前綴頁面)皆將可由虛擬機器存取。亦即,主機映射有效,可獲得相關聯的主機絕對位址,且可存取頁面。然而,無法採用此情形。因此,在虛擬機器執行期間執行檢查,且若記憶體之選擇區域不可存取,則採取特定動作。參考圖3A至圖3B描述此處理之一個實施例。
在一個實例中,參考圖3A,超管理器(例如,超管理器114)分派虛擬機器300。基於該分派,在一個實例中,處理由受信任實體(例如,超監督器)執行。舉例而言,判定預期可存取的記憶體之選擇區域實際上是否可存取。在一個實例中,記憶體之選擇區域為前綴頁面,且因此判定前綴頁面是否可存取302。若前綴頁面不可存取,則根據本發明之一態樣,虛擬機器執行藉由選擇攔截碼(例如,碼112)退出304。然而,若前綴頁面可存取,則可執行虛擬機器之一或多個客體指令306。
在客體指令之執行期間,若不需存取前綴頁面(例如,不需要前綴存取) 308,則客體指令處理繼續。然而,若將存取前綴頁面308,則判定(例如,藉由受信任實體)存取是否為顯式的310。亦即,為歸因於特定指令之執行的存取。若存取為顯式的,則存取頁面,且若在頁面存取期間發生例外狀況,則報告例外狀況312。然而,若存取為隱式存取314,則判定(例如,藉由受信任實體)存取之原因316。
若存取前綴頁面之原因為異步中斷(例如,輸入/輸出中斷、外部中斷等) 318,則預先測試(例如,藉由受信任實體)待存取之前綴頁面320。若預先測試指示例外狀況322,則中斷在虛擬機器中保持待處理,且存在藉由選擇攔截碼至主機之虛擬機器退出324。然而,若不存在來自預先測試之例外狀況322,則將異步中斷呈現至虛擬機器326且虛擬機器執行繼續328。
返回至316,若存取之原因為程式中斷330,則另外判定(例如,藉由受信任實體)中斷是否需存取前綴頁面(例如,中斷需要前綴存取) 332。若中斷無需存取前綴頁面,則處理正常繼續進行334。然而,若中斷需存取前綴頁面332,則(例如,藉由受信任實體)執行待使用的前綴頁面之預先測試336。若在預先測試期間不存在例外狀況338,則處理正常繼續進行334。然而,若在預先測試期間存在例外狀況338,則判定(例如,藉由受信任實體)指令是否作為異動執行之部分(例如,在異動開始與異動結束指令之間)而執行340。若指令作為異動執行之部分而執行,則根據本發明之一態樣,虛擬機器藉由選擇攔截碼退出,異動異常終止,且將例外狀況報告至主機(例如,超管理器) 342。
另一方面,若指令並不作為異動執行之部分而執行340,則參考圖3B,查詢(例如,藉由受信任實體)例外狀況之類型350。若例外狀況類型為例如廢止或抑制352,則廢止(例如,藉由受信任實體)客體指令354,且虛擬機器藉由選擇攔截碼退出364。此後,超管理器解析前綴頁面366從而使其可存取,且虛擬機器由超管理器重新分派368。另外,若例外狀況類型完成356或早期指定358,則將中斷資訊儲存(例如,藉由受信任實體)在儲存區域(例如,安全模式中之安全狀態描述)中360。此資訊包括例如當前執行的程式之程式狀態字/指令位址、程式例外狀況(程式中斷碼)之類型及關於例外狀況之資訊,諸如記憶體位址、定址模式等。(在其他實例中,可儲存額外、較少及/或其他資訊。) 針對例外狀況鎖定(例如,藉由受信任實體)虛擬機器362,且虛擬機器執行藉由選擇攔截碼退出364。此後,超管理器解析前綴頁面366,且虛擬機器由超管理器重新分派368。
在一個實例中,返回至圖3A,基於重新分派虛擬機器,判定(例如,藉由受信任實體)虛擬機器是否針對例外狀況被鎖定370。若虛擬機器未針對例外狀況被鎖定,則執行客體指令以繼續處理306。然而,若虛擬機器針對例外狀況被鎖定,則將自選擇攔截退出之前所儲存的程式例外狀況呈現(例如,藉由受信任實體)至作業系統,該作業系統正常處置該例外狀況372。處理可繼續,例如,中斷需要前綴存取332。
儘管在以上實例中,虛擬機器為安全虛擬機器,但在其他實施例中,一或多個態樣可適用於非安全虛擬機器。
根據本發明之一或多個態樣,在虛擬機器(例如,安全虛擬機器)之執行期間執行前綴頁面檢查及處理。虛擬機器對前綴頁面(或用於虛擬機器與作業系統之間的通信的記憶體之其他選擇區域)之存取可為顯式或隱式的。在客體執行期間對前綴頁面之顯式存取類似於其他記憶體存取進行處置。舉例而言,虛擬機器存取前綴頁面作為真實記憶體,且若無法存取頁面,則報告主機程式例外狀況。隱式存取更加難以管理,此係因為其可能在客體分派期間之任何時間發生。在此等頁面之隱式存取期間,受信任實體(例如,超監督器)測試頁面之可存取性。若其不可存取,則超監督器檢查隱式存取之原因。取決於原因,超監督器決定自客體操作單元退避(例如,廢止指令),抑或擷取虛擬機器之狀態且將其儲存於安全超監督器儲存器中,且在藉由向超管理器指示客體前綴頁面不可存取之選擇攔截碼(例如,112)退出至主機(例如,超管理器)之前鎖定虛擬機器。在自虛擬機器退出之後,超管理器使得該或該等頁面可由客體存取且重新分派客體。受信任實體在虛擬機器之重新分派之執行(例如,起動解譯性執行)期間檢查虛擬機器是否經鎖定,且若如此,則在藉由選擇攔截碼退出之前呈現作為客體狀態之部分儲存的中斷。此中斷接著由作業系統處理,且最終恢復客體執行。
在一或多個態樣中,提供處置在虛擬機器之前綴頁面經判定為在其執行期間經存取時不可存取時的情況之能力。受信任實體(例如,超監督器)用以在前綴不可存取時儲存虛擬機器之狀態,包括待處理中斷(若適用),且經由選擇攔截碼向超管理器通知前綴不再可存取。在一個實例中,超管理器接著將前綴頁面自非安全轉換為安全,且再次分派虛擬機器。作為另一實例,超管理器映射超管理器虛擬儲存器中之客體前綴頁面。在起動虛擬機器之執行期間,超監督器接著檢查前綴可存取性,且完成虛擬機器應在選擇攔截碼退出之前進行的工作。
在一或多個態樣中,在客體處於不可中斷的點時,發生選擇攔截碼(例如,112)。舉例而言,若客體遇到完成型例外狀況(例如,溢位、程式事件記錄等),則客體更新客體儲存器及/或客體暫存器。然而,在一個實例中,客體無法呈現中斷,此係因為其前綴不可存取且無法僅簡單地退出至超管理器。因此,在此情況下,受信任實體將關於程式例外狀況之資訊儲存在安全儲存器中,鎖定客體,且退出。當前綴不可存取時客體不可簡單地退出且因此受信任實體執行特定動作的其他實例為異動異常終止及執行時間檢測樣本。亦可存在其他實例。
本發明之一或多個態樣不可避免地與電腦技術相關且促進電腦內之處理,從而改良其效能。藉由在維持安全性且改良效能的同時管理虛擬機器(例如安全虛擬機器)之前綴頁面存取來促進處理。
參考圖4A至圖4C描述促進計算環境內之處理的一個實施例之其他細節,此係因為該計算環境與本發明之一或多個態樣有關。
參考圖4A,在一個實施例中,基於虛擬機器之分派判定預期可由該虛擬機器存取且用於該虛擬機器與作業系統之間的通信的記憶體之選擇區域是否可由該虛擬機器存取400。基於判定記憶體之選擇區域不可由該虛擬機器存取,藉由選擇攔截碼退出虛擬機器執行402。
此舉在預期可存取的記憶體之選擇區域不可存取的情況下藉由防止客體指令執行來促進處理。一或多個態樣處置以下情形:超管理器在客體執行之持續時間內可能不再保持釘選客體(例如,虛擬機器)之記憶體(例如,前綴頁面)之選擇區域。
另外,在一個實例中,基於判定記憶體之選擇區域可由該虛擬機器存取,執行該虛擬機器之一或多個客體指令404。
在一個實例中,基於判定記憶體之該選擇區域可存取,判定該虛擬機器之客體指令是否將存在對記憶體之選擇區域的存取406。基於判定將存在存取,檢查該存取為顯式存取抑或隱式存取408。基於該存取為顯式存取抑或隱式存取,執行一或多個動作410。
再次檢查記憶體之預期可存取的該選擇區域之可存取性以促進處理。
作為一實例,基於存取為隱式存取412,該一或多個動作包括例如判定隱式存取之原因414及基於隱式存取之原因而執行一或多個選擇動作416。
在一個實例中,參考圖4B,基於隱式存取之原因為異步中斷420,一或多個選擇動作包括例如執行記憶體之選擇區域的預先測試422及判定在記憶體之選擇區域的預先測試期間是否發生例外狀況424。作為一實例,基於判定在記憶體之選擇區域的預先測試期間發生該例外狀況,該異步中斷在虛擬機器中保持待處理,且存在該虛擬機器藉由選擇攔截碼至主機的退出426。
在一個實例中,基於隱式存取之原因為程式中斷430,一或多個選擇動作包括例如判定該程式中斷是否需存取記憶體之選擇區域432,及基於判定該程式中斷需存取記憶體之選擇區域而執行記憶體之選擇區域的預先測試434。在一個實例中,判定在記憶體之選擇區域之預先測試期間是否發生例外狀況436,且基於在記憶體之選擇區域之預先測試期間是否發生例外狀況而執行處理438。
在一個實例中,參考圖4C,執行處理包括基於判定在記憶體之選擇區域的預先測試期間並未發生例外狀況而繼續進行指令處理440。另外,在另一實例中,基於判定在記憶體之選擇區域之預先測試期間確實發生例外狀況,執行處理包括檢查客體指令是否作為異動執行之部分而執行442。基於該檢查指示客體指令作為異動執行之部分而執行,在一個實例中,藉由選擇攔截碼退出虛擬機器執行,且異常終止異動執行444。另外,在一個實例中,基於該檢查指示客體指令並不作為異動執行之部分而執行,判定例外狀況之類型,且基於例外狀況之類型執行一或多個所選動作446。
作為一實例,基於例外狀況之類型為廢止或抑制例外狀況,一或多個所選動作包括廢止客體指令448。另外,在一個實例中,基於例外狀況之類型為完成或早期指定例外狀況450,一或多個所選動作包括將中斷資訊儲存在安全位置452、針對例外狀況鎖定虛擬機器454,以及藉由選擇攔截碼退出虛擬機器執行456。
在一個實例中,在虛擬機器之下一輸入項處檢查虛擬機器之鎖定458,且基於經由鎖定設定該鎖定而完成程式例外狀況處置460。
藉由判定退出之原因/條件且基於其執行動作來促進處理。
其他變化及實施例為可能的。
本發明之態樣可由許多類型之計算環境使用。參考圖5A描述併有及使用本發明之一或多個態樣的計算環境之另一實施例。在此實例中,計算環境36包括例如原生中央處理單元(CPU) 37、記憶體38及一或多個輸入/輸出裝置及/或介面39,前述各者經由例如一或多個匯流排40及/或其他連接而彼此耦接。作為實例,計算環境36可包括:由紐約阿蒙克市之國際商業機器公司供應之PowerPC
®處理器;由加州帕洛阿爾托市(Palo Alto, California)之惠普公司(Hewlett Packard Co.)供應的具有Intel
®Itanium
®II處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、英特爾公司(Intel Corporation)、甲骨文公司(Oracle)及/或其他公司供應之架構的其他機器。PowerPC為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。Intel及Itanium為英特爾公司或其子公司在美國及其他國家中之商標或註冊商標。
原生中央處理單元37包括一或多個原生暫存器41,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示在任何特定時間點處之環境狀態之資訊。
此外,原生中央處理單元37執行儲存於記憶體38中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體38中之仿真器程式碼42。此程式碼使得在一個架構中組態之計算環境能夠仿真另一架構。舉例而言,仿真器程式碼42允許基於除z/Architecture指令集架構以外之架構的機器(諸如,PowerPC處理器、HP Superdome伺服器或其他者)仿真z/Architecture指令集架構且執行基於z/Architecture指令集架構開發之軟體及指令。
參考圖5B描述與仿真器程式碼42有關之其他細節。儲存於記憶體38中之客體指令43包含經開發以在除原生CPU 37之架構以外之架構中執行的軟體指令(例如,與機器指令相關)。舉例而言,客體指令43可能已經設計以在基於z/Architecture指令集架構之處理器上執行,但替代地,在可為例如Intel Itanium II處理器之原生CPU 37上仿真。在一個實例中,仿真器程式碼42包括指令提取常式44,以自記憶體38獲得一或多個客體指令43且視情況提供對所獲得指令之本端緩衝。其亦包括指令轉譯常式45以判定已經獲得的客體指令之類型且將客體指令轉譯成一或多個對應的原生指令46。此轉譯包括例如識別待由客體指令執行之功能及挑選原生指令執行彼功能。
另外,仿真器程式碼42包括仿真控制常式47以使得執行原生指令。仿真控制常式47可使原生CPU 37執行仿真一或多個先前所獲得之客體指令之原生指令的常式且在此執行完結時,將控制傳回至指令提取常式以仿真獲得下一客體指令或一組客體指令。原生指令46之執行可包括將資料自記憶體38載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算(如藉由轉譯常式判定)。
各常式例如實施於軟體中,該軟體儲存於記憶體中且藉由原生中央處理單元37執行。在其他實例中,一或多個常式或操作實施於韌體、硬體、軟體或其某一組合中。可使用原生CPU之暫存器41或藉由使用記憶體38中之位置來仿真所仿真處理器之暫存器。在實施例中,客體指令43、原生指令46及仿真器程式碼42可駐留於同一記憶體中或可分配於不同記憶體裝置當中。
根據本發明之一或多個態樣,可仿真之指令包括本文中所描述之客體指令。另外,根據本發明之一或多個態樣,可仿真本發明之其他指令、命令、功能、操作、呼叫及/或一或多個態樣。
上文所描述之計算環境僅為可使用之計算環境的實例。可使用其他環境,包括但不限於未經分割之環境、經分割之環境、雲端環境及/或仿真環境;實施例不限於任何一種環境。儘管本文中描述計算環境之各種實例,但本發明之一或多個態樣可與許多類型之環境一起使用。本文中所提供之計算環境僅為實例。
各計算環境能夠經組態以包括本發明之一或多個態樣。
一或多個態樣可係關於雲端計算。
應理解,儘管本發明包括關於雲端計算之詳細描述,但本文中所敍述之教示的實施不限於雲端計算環境。實情為,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之計算環境來實施。
雲端計算為用於使得能夠對可組態計算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機器及服務)之共用集區進行便利之按需網路存取的服務提供之模型,可組態計算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
按需自助服務:雲端消費者可在需要時自動地單方面地佈建計算能力(諸如,伺服器時間及網路儲存空間),而無需與服務之提供者之人為互動。
寬網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源共用:提供者之計算資源經共用以使用多租用戶模型為多個消費者服務,其中根據需求動態指派及重新指派不同實體及虛擬資源。存在位置獨立性之意義,此係因為消費者通常不具有對所提供之資源之確切位置的控制或瞭解,但可能能夠按較高抽象層級(例如,國家、州或資料中心)指定位置。
快速彈性:可快速地且彈性地佈建能力,在一些情況下自動地佈建能力,以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
計次服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及活動使用者帳戶)之某一抽象層級下充分利用計量能力而自動控制及最佳化資源使用。可監測、控制及報告資源使用狀況,由此向所利用服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供至消費者之能力係使用在雲端基礎結構上執行的提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網頁之電子郵件)之精簡型用戶端介面自各種用戶端裝置存取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之基礎雲端基礎結構,其中可能的例外狀況為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將消費者創建之應用程式或使用提供者所支援之程式設計語言及工具創建的所獲取之應用程式部署至雲端基礎結構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎結構,但控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎結構即服務(IaaS):提供給消費者之能力係供應處理、儲存、網絡及其他基礎計算資源,其中消費者能夠部署及執行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制基礎雲端基礎結構,但具有對作業系統、儲存器、所部署應用程式之控制,及可能的對選擇網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎結構。私用雲端可由組織或第三方來管理且可存在於內部部署或外部部署。
社群雲端:該雲端基礎結構由若干組織共用且支援具有共用關注事項(例如,任務、安全要求、策略及合規性考量)之特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:使雲端基礎結構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:雲端基礎結構為兩個或更多個雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡的雲端爆裂)之標準化或專屬技術繫結在一起。
藉由集中於無狀態性、低耦合、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎結構。
現參考圖6,描繪說明性雲端計算環境50。如所展示,雲端計算環境50包括一或多個雲端計算節點52,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端計算裝置可與該一或多個雲端計算節點進行通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未展示)。此允許雲端計算環境50提供基礎結構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維護資源。應理解,圖6中所展示之計算裝置54A至54N之類型意欲僅為說明性的,且計算節點52及雲端計算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參考圖7,展示藉由雲端計算環境50 (圖6)所提供之功能抽象層之集合。事先應理解,圖7中所示之組件、層及功能意欲僅為說明性的,且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(IRSC)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存裝置65;以及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用程式伺服器軟體67及資料庫軟體68。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,包括虛擬私用網路;虛擬應用程式及作業系統74;及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供計算資源及用以執行雲端計算環境內之任務之其他資源的動態採購。當在雲端計算環境內利用資源時,計量及定價82提供成本追蹤,及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包括應用程式軟體授權。安全性為雲端消費者及任務提供身分驗證,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理者提供對雲端計算環境之存取。服務層級管理84提供雲端計算資源分配及管理使得滿足所需服務層級。服務層級協議協定(SLA)規劃及實現85提供雲端計算資源之預先配置及採購,針對雲端計算資源之未來要求係根據SLA來預期。
工作負載層90提供功能之實例,可針對該功能利用雲端計算環境。可自此層提供之工作負載及功能的實例包括:地圖測繪及導航91;軟體開發及生命週期管理92;虛擬教室教育提供93;資料分析處理94;異動處理95;及管理記憶體選擇區域(例如,前綴頁面)處理96。
本發明之態樣可為在任何可能之技術細節整合層級處的系統、方法及/或電腦程式產品。電腦程式產品可包括電腦可讀儲存媒體(或多個媒體),其上具有電腦可讀程式指令以使得處理器執行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於):電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更具體實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)、記憶棒、軟碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不將電腦可讀儲存媒體本身理解為暫時信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖電纜傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。各計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於實行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫的組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、用於積體電路系統之組態資料,或原始碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及程序性程式設計語言,諸如「C」程式設計語言或類似程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行、部分地在使用者電腦上執行、作為獨立套裝軟體執行、部分地在使用者電腦上執行且部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後一情形中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路系統可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之各區塊,及流程圖說明及/或方塊圖中的區塊之組合。
可將此等電腦可讀程式指令提供至電腦或可程式資料處理設備之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之手段。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,其可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區塊中指定之功能/動作之態樣。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之各區塊可表示指令之模組、區段或部分,其包含用於實施經指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所指出的功能可不按圖式中所指出的次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊實際上可實現為一個步驟,同時、實質上同時、以部分或完全在時間上重疊之方式執行,或該等區塊有時可以相反次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之各區塊,及方塊圖及/或流程圖說明中之區塊之組合。
除上述以外,可藉由供應客體環境之管理之服務提供者提供、供應、部署、管理、服務一或多個態樣等。舉例而言,服務提供者可建立、維持、支援(等)電腦程式碼及/或執行用於一或多個消費者之一或多個態樣的電腦基礎架構。作為回報,服務提供者可根據訂用及/或收費協議接收來自消費者之付款(作為實例)。另外或替代地,服務提供者可接收來自向一或多個第三方出售廣告內容之付款。
在一個態樣中,可部署一應用程式用於執行一或多個實施例。作為一個實例,應用程式之部署包含提供可操作以執行一或多個實施例之電腦基礎結構。
作為另一態樣,可部署計算基礎結構,包含將電腦可讀程式碼整合至計算系統中,其中程式碼結合計算系統能夠執行一或多個實施例。
作為又一態樣,可提供一種用於整合計算基礎結構之處理程序,包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統能夠執行一或多個實施例。
儘管上文描述各種實施例,但其僅為實例。舉例而言,其他架構之計算環境可用以併有及/或使用一或多個態樣。另外,可使用不同指令、命令、功能、呼叫及/或操作。另外,可執行不同動作。許多變化係可能的。
本文中描述各種態樣。另外,在不脫離本發明之態樣之精神的情況下,許多變化係可能的。應注意,除非不一致,否則本文所述之各態樣或特徵及其變體可與任何其他態樣或特徵組合。
另外,其他類型之計算環境可係有益的且可被使用。作為實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理器。記憶體元件包括(例如)在實際執行程式碼期間使用之本機記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(Thumb Drive)及其他記憶體媒體等)可直接或經由介入之I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網卡僅為幾個可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,單數形式「一(a、an)」及「該」意欲亦包括複數形式,除非上下文另有清楚指示。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。對於一般熟習此項技術者而言,許多修改及變化將為顯而易見的。選取及描述實施例以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解具有如適於所預期之特定用途之各種修改的各種實施例。
36:計算環境
37:原生中央處理單元
38:記憶體
39:輸入/輸出裝置及/或介面
40:匯流排
41:原生暫存器
42:仿真器程式碼
43:客體指令
44:指令提取常式
45:指令轉譯常式
46:原生指令
47:仿真控制常式
50:雲端計算環境
52:雲端計算節點
54A:蜂巢式電話
54B:桌上型電腦
54C:膝上型電腦
54N:汽車電腦系統
60:硬體及軟體層
61:大型電腦
62:基於精簡指令集電腦(IRSC)架構之伺服器
63:伺服器
64:刀鋒伺服器
65:儲存裝置
66:網路及網路連接組件
67:網路應用程式伺服器軟體
68:資料庫軟體
70:虛擬化層
71:虛擬伺服器
72:虛擬儲存器
73:虛擬網路
74:虛擬應用程式及作業系統
75:虛擬用戶端
80:管理層
81:資源佈建
82:計量及定價
83:使用者入口網站
84:服務層級管理
85:服務層級協議協定(SLA)規劃及實現
90:工作負載層
91:地圖測繪及導航
92:軟體開發及生命週期管理
93:虛擬教室教育提供
94:資料分析處理
95:異動處理
96:管理記憶體選擇區域(例如,前綴頁面)處理
100:計算環境
102:中央處理器複合體
104:記憶體/主儲存器
106:輸入/輸出(I/O)裝置
108:輸入/輸出控制單元
110:處理器單元
111:輸入/輸出(I/O)子系統
112:虛擬機器
114:超管理器
115:受信任執行環境
116:處理器韌體
120:程式
122:客體作業系統
140:資料儲存裝置
142:程式
144:電腦可讀程式指令
200:起動虛擬機器指令
202:非安全狀態描述
204:安全指示符
206:安全執行識別碼
210:安全狀態描述指標
220:安全狀態描述
230:指標
300:步驟
302:步驟
304:步驟
306:步驟
308:步驟
310:步驟
312:步驟
314:步驟
316:步驟
318:步驟
320:步驟
322:步驟
324:步驟
326:步驟
328:步驟
330:步驟
332:步驟
334:步驟
336:步驟
338:步驟
340:步驟
342:步驟
350:步驟
352:步驟
354:步驟
356:步驟
358:步驟
360:步驟
362:步驟
364:步驟
366:步驟
368:步驟
370:步驟
372:步驟
400:步驟
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
412:步驟
414:步驟
416:步驟
420:步驟
422:步驟
424:步驟
426:步驟
430:步驟
432:步驟
434:步驟
436:步驟
438:步驟
440:步驟
442:步驟
444:步驟
446:步驟
448:步驟
450:步驟
452:步驟
454:步驟
456:步驟
458:步驟
460:步驟
在本說明書之結尾處之申請專利範圍中作為實例特定地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容以及目標、特徵及優點自結合隨附圖式進行之以下詳細描述顯而易見,其中:
圖1描繪併有及使用本發明之一或多個態樣的計算環境之一個實例;
圖2描繪根據本發明之一或多個態樣的在起動虛擬機器(包括安全虛擬機器)時使用的控制區塊之一個實例;
圖3A至圖3B描繪根據本發明之一或多個態樣的與虛擬機器之執行相關聯之前綴存取處理的一個實例;
圖4A至圖4C描繪根據本發明之一或多個態樣的促進計算環境內之處理的一個實例;
圖5A描繪併有及使用本發明之一或多個態樣的計算環境之另一實例;
圖5B描繪根據本發明之一或多個態樣的圖5A之記憶體之其他細節;
圖6描繪根據本發明之一或多個態樣的雲端計算環境之一個實施例;及
圖7描繪根據本發明之一或多個態樣的抽象模型層之一個實例。
400:步驟
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
412:步驟
414:步驟
416:步驟
Claims (20)
- 一種用於促進一計算環境內之處理的電腦程式產品,該電腦程式產品包含: 一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令,該方法包含: 基於一虛擬機器之分派判定預期可由該虛擬機器存取且用於該虛擬機器與一作業系統之間的通信的記憶體之一選擇區域是否可由該虛擬機器存取;及 基於判定記憶體之該選擇區域不可由該虛擬機器存取,藉由一選擇攔截碼退出虛擬機器執行。
- 如請求項1之電腦程式產品,其中該方法進一步包含基於判定記憶體之該選擇區域可由該虛擬機器存取而執行該虛擬機器之一或多個客體指令。
- 如請求項1之電腦程式產品,其中基於判定記憶體之該選擇區域可存取,該方法進一步包含: 判定該虛擬機器之一客體指令是否將存在對記憶體之該選擇區域的存取; 基於判定將存在存取,檢查該存取為一顯式存取抑或一隱式存取;及 基於該存取為該顯式存取抑或該隱式存取,執行一或多個動作。
- 如請求項3之電腦程式產品,其中基於該存取為該隱式存取,該一或多個動作包括: 判定該隱式存取之一原因;及 基於該隱式存取之該原因而執行一或多個選擇動作。
- 如請求項4之電腦程式產品,其中基於該隱式存取之該原因為一異步中斷,該一或多個選擇動作包括: 執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於判定在記憶體之該選擇區域的該預先測試期間發生該例外狀況,使該異步中斷在虛擬機器中保持待處理,且藉由該選擇攔截碼退出至該虛擬機器之一主機。
- 如請求項4之電腦程式產品,其中基於該隱式存取之該原因為一程式中斷,該一或多個選擇動作包括: 判定該程式中斷是否需存取記憶體之該選擇區域; 基於判定該程式中斷需存取記憶體之該選擇區域而執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於在記憶體之該選擇區域的該預先測試期間是否發生該例外狀況而執行處理。
- 如請求項6之電腦程式產品,其中該執行處理包括基於判定在記憶體之該選擇區域的該預先測試期間並未發生該例外狀況而繼續進行指令處理。
- 如請求項6之電腦程式產品,其中該執行處理包括基於判定在記憶體之該選擇區域的該預先測試期間確實發生該例外狀況而進行以下操作: 檢查該客體指令是否作為異動執行之部分而執行;及 基於該檢查指示該客體指令作為異動執行之部分而執行,藉由該選擇攔截碼退出虛擬機器執行,且異常終止異動執行。
- 如請求項6之電腦程式產品,其中該執行處理包括基於判定在記憶體之該選擇區域的該預先測試期間確實發生該例外狀況而進行以下操作: 檢查該客體指令是否作為異動執行之部分而執行; 基於該檢查指示該客體指令並不作為異動執行之部分而執行,判定該例外狀況之一類型;及 基於該例外狀況之該類型而執行一或多個所選動作。
- 如請求項9之電腦程式產品,其中基於例外狀況之該類型為一廢止或抑制例外狀況,該一或多個所選動作包括廢止該客體指令。
- 如請求項9之電腦程式產品,其中基於例外狀況之該類型為一完成或早期指定例外狀況,該一或多個所選動作包括: 將中斷資訊儲存在一安全位置; 針對例外狀況鎖定該虛擬機器;及 藉由該選擇攔截碼退出虛擬機器執行。
- 如請求項11之電腦程式產品,其中該方法進一步包含: 在該虛擬機器之一下一輸入項處檢查該虛擬機器之一鎖定;及 基於經由鎖定設定該鎖定而完成程式例外狀況處置。
- 一種用於促進一計算環境內之處理的電腦系統,該電腦系統包含: 一記憶體;及 至少一個處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含: 基於一虛擬機器之分派判定預期可由該虛擬機器存取且用於該虛擬機器與一作業系統之間的通信的記憶體之一選擇區域是否可由該虛擬機器存取;及 基於判定記憶體之該選擇區域不可由該虛擬機器存取,藉由一選擇攔截碼退出虛擬機器執行。
- 如請求項13之電腦系統,其中基於判定記憶體之該選擇區域可存取,該方法進一步包含: 判定該虛擬機器之一客體指令是否將存在對記憶體之該選擇區域的存取; 基於判定將存在存取,檢查該存取為一顯式存取抑或一隱式存取;及 基於該存取為該顯式存取抑或該隱式存取,執行一或多個動作。
- 如請求項14之電腦系統,其中基於該存取為該隱式存取,該一或多個動作包括: 判定該隱式存取之一原因;及 基於該隱式存取之該原因而執行一或多個選擇動作,其中基於該隱式存取之該原因為一異步中斷,該一或多個選擇動作包括: 執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於判定在記憶體之該選擇區域的該預先測試期間發生該例外狀況,使該異步中斷在虛擬機器中保持待處理,且藉由該選擇攔截碼退出至該虛擬機器之一主機。
- 如請求項14之電腦系統,其中基於該存取為該隱式存取,該一或多個動作包括: 判定該隱式存取之一原因;及 基於該隱式存取之該原因而執行一或多個選擇動作,其中基於該隱式存取之該原因為一程式中斷,該一或多個選擇動作包括: 判定該程式中斷是否需存取記憶體之該選擇區域; 基於判定該程式中斷需存取記憶體之該選擇區域而執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於在記憶體之該選擇區域的該預先測試期間是否發生該例外狀況而執行處理。
- 一種促進一計算環境內之處理的電腦實施方法,該電腦實施方法包含: 基於一虛擬機器之分派判定預期可由該虛擬機器存取且用於該虛擬機器與一作業系統之間的通信的記憶體之一選擇區域是否可由該虛擬機器存取;及 基於判定記憶體之該選擇區域不可由該虛擬機器存取,藉由一選擇攔截碼退出虛擬機器執行。
- 如請求項17之電腦實施方法,其中基於判定記憶體之該選擇區域可存取,該方法進一步包含: 判定該虛擬機器之一客體指令是否將存在對記憶體之該選擇區域的存取; 基於判定將存在存取,檢查該存取為一顯式存取抑或一隱式存取;及 基於該存取為該顯式存取抑或該隱式存取,執行一或多個動作。
- 如請求項18之電腦實施方法,其中基於該存取為該隱式存取,該一或多個動作包括: 判定該隱式存取之一原因;及 基於該隱式存取之該原因而執行一或多個選擇動作,其中基於該隱式存取之該原因為一異步中斷,該一或多個選擇動作包括: 執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於判定在記憶體之該選擇區域的該預先測試期間發生該例外狀況,使該異步中斷在虛擬機器中保持待處理,且藉由該選擇攔截碼退出至該虛擬機器之一主機。
- 如請求項18之電腦程式產品,其中基於該存取為該隱式存取,該一或多個動作包括: 判定該隱式存取之一原因;及 基於該隱式存取之該原因而執行一或多個選擇動作,其中基於該隱式存取之該原因為一程式中斷,該一或多個選擇動作包括: 判定該程式中斷是否需存取記憶體之該選擇區域; 基於判定該程式中斷需存取記憶體之該選擇區域而執行記憶體之該選擇區域的一預先測試; 判定在記憶體之該選擇區域的該預先測試期間是否發生一例外狀況;及 基於在記憶體之該選擇區域的該預先測試期間是否發生該例外狀況而執行處理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/460,886 | 2021-08-30 | ||
US17/460,886 US20230061511A1 (en) | 2021-08-30 | 2021-08-30 | Inaccessible prefix pages during virtual machine execution |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202309743A true TW202309743A (zh) | 2023-03-01 |
TWI829173B TWI829173B (zh) | 2024-01-11 |
Family
ID=83283498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111119200A TWI829173B (zh) | 2021-08-30 | 2022-05-24 | 虛擬機器執行期間無法存取之前綴頁面 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230061511A1 (zh) |
CN (1) | CN117897692A (zh) |
TW (1) | TWI829173B (zh) |
WO (1) | WO2023031014A1 (zh) |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7665005B2 (en) * | 2006-08-25 | 2010-02-16 | Intel Corporation | In situ processor margin testing |
US7877640B2 (en) * | 2007-03-30 | 2011-01-25 | Sap Ag | Method and system for providing enhanced exception messages for exceptions thrown by virtual machines |
JP5018252B2 (ja) * | 2007-06-06 | 2012-09-05 | 株式会社日立製作所 | デバイス割り当て変更方法 |
US8370559B2 (en) * | 2007-09-28 | 2013-02-05 | Intel Corporation | Executing a protected device model in a virtual machine |
US8495341B2 (en) * | 2010-02-17 | 2013-07-23 | International Business Machines Corporation | Instruction length based cracking for instruction of variable length storage operands |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
US10061616B2 (en) * | 2012-05-30 | 2018-08-28 | Red Hat Israel, Ltd. | Host memory locking in virtualized systems with memory overcommit |
US20130339656A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Compare and Replace DAT Table Entry |
US9575125B1 (en) * | 2012-10-11 | 2017-02-21 | Everspin Technologies, Inc. | Memory device with reduced test time |
US9275225B2 (en) * | 2013-03-15 | 2016-03-01 | Intel Corporation | Linear address mapping protection |
US9582295B2 (en) * | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9652270B2 (en) * | 2014-03-21 | 2017-05-16 | Intel Corporation | Apparatus and method for virtualized computing |
US9703726B2 (en) * | 2014-06-24 | 2017-07-11 | Bitdefender IPR Management Ltd. | Systems and methods for dynamically protecting a stack from below the operating system |
US20160048679A1 (en) * | 2014-08-18 | 2016-02-18 | Bitdefender IPR Management Ltd. | Systems And Methods for Exposing A Current Processor Instruction Upon Exiting A Virtual Machine |
US9489275B2 (en) * | 2014-10-02 | 2016-11-08 | Netapp, Inc. | Techniques for error handling in parallel splitting of storage commands |
US20160132420A1 (en) * | 2014-11-10 | 2016-05-12 | Institute For Information Industry | Backup method, pre-testing method for environment updating and system thereof |
US20160210069A1 (en) * | 2015-01-21 | 2016-07-21 | Bitdefender IPR Management Ltd. | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine |
US9459907B2 (en) * | 2015-02-24 | 2016-10-04 | Red Hat Israel, Ltd. | Guest controlled malicious payload protection |
US10037219B2 (en) * | 2015-05-27 | 2018-07-31 | Red Hat Israel, Ltd. | Virtual machine locking |
US9852295B2 (en) * | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
JP6772270B2 (ja) * | 2015-12-19 | 2020-10-21 | ビットディフェンダー アイピーアール マネジメント リミテッド | 複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション |
US9965313B2 (en) * | 2016-01-05 | 2018-05-08 | Bitdefender IPR Management Ltd. | Systems and methods for auditing a virtual machine |
US10659466B2 (en) * | 2016-03-22 | 2020-05-19 | Microsoft Technology Licensing, Llc | Secure resource-based policy |
US10043005B2 (en) * | 2016-03-31 | 2018-08-07 | Bitdefender IPR Management Ltd. | Systems and methods for application control in virtualized environments |
US10102025B2 (en) * | 2016-05-31 | 2018-10-16 | Huawei Technologies Co., Ltd. | Virtual machine resource utilization in a data center |
US10140448B2 (en) * | 2016-07-01 | 2018-11-27 | Bitdefender IPR Management Ltd. | Systems and methods of asynchronous analysis of event notifications for computer security applications |
US10635479B2 (en) * | 2016-12-19 | 2020-04-28 | Bitdefender IPR Management Ltd. | Event filtering for virtual machine security applications |
US11150929B2 (en) * | 2018-05-29 | 2021-10-19 | Red Hat, Inc. | Enhanced memory management for virtual machines |
US10575657B2 (en) * | 2018-06-06 | 2020-03-03 | Mattel, Inc. | Convertible auto-rocking rocker |
US11237859B2 (en) * | 2018-11-28 | 2022-02-01 | Red Hat Israel, Ltd. | Securing virtual machines in computer systems |
US11099874B2 (en) * | 2019-01-28 | 2021-08-24 | Red Hat Israel, Ltd. | Efficient userspace driver isolation by shallow virtual machines |
US10956188B2 (en) * | 2019-03-08 | 2021-03-23 | International Business Machines Corporation | Transparent interpretation of guest instructions in secure virtual machine environment |
US11347529B2 (en) * | 2019-03-08 | 2022-05-31 | International Business Machines Corporation | Inject interrupts and exceptions into secure virtual machine |
US11029991B2 (en) * | 2019-03-08 | 2021-06-08 | International Business Machines Corporation | Dispatch of a secure virtual machine |
US11308215B2 (en) * | 2019-03-08 | 2022-04-19 | International Business Machines Corporation | Secure interface control high-level instruction interception for interruption enablement |
US20210263762A1 (en) * | 2020-02-26 | 2021-08-26 | Samsung Electronics Co., Ltd. | Storage device-assisted live virtual machine migration |
US11430539B2 (en) * | 2020-06-29 | 2022-08-30 | Micron Technology, Inc. | Modifiable repair solutions for a memory array |
US11900142B2 (en) * | 2021-06-16 | 2024-02-13 | Red Hat, Inc. | Improving memory access handling for nested virtual machines |
-
2021
- 2021-08-30 US US17/460,886 patent/US20230061511A1/en active Pending
-
2022
- 2022-05-24 TW TW111119200A patent/TWI829173B/zh active
- 2022-08-25 CN CN202280058732.9A patent/CN117897692A/zh active Pending
- 2022-08-25 WO PCT/EP2022/073696 patent/WO2023031014A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023031014A1 (en) | 2023-03-09 |
US20230061511A1 (en) | 2023-03-02 |
CN117897692A (zh) | 2024-04-16 |
TWI829173B (zh) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020426828B2 (en) | Reserving one or more security modules for secure guest | |
KR102551935B1 (ko) | 보안 운영 체제 이미지의 점진적 복호화 및 무결성 검증 | |
TW202248864A (zh) | 重設動態位址轉譯保護指令 | |
US20230039894A1 (en) | Deferred reclaiming of secure guest resources | |
TW202307706A (zh) | 安全客戶之多部分元資料之客製化 | |
TW202307711A (zh) | 安全客體映像及後設資料更新 | |
TWI829173B (zh) | 虛擬機器執行期間無法存取之前綴頁面 | |
TWI827045B (zh) | 關於透過元資料提供至安全客戶之機密資料之電腦程式產品、電腦系統及電腦實施方法 | |
TWI840804B (zh) | 相關於安全客體資源之延後取回之電腦程式產品、電腦系統及電腦實施方法 | |
US11151267B2 (en) | Move data and set storage key based on key function control | |
TWI729678B (zh) | 用於移動資料及設定儲存金鑰指令之電腦程式產品、電腦系統及電腦實施方法 | |
EP4381400A1 (en) | Confidential data provided to a secure guest via metadata | |
JP2022518672A (ja) | オーバーフロー例外の命令割込み抑制 |