cpu虛擬化是將乙個物理的cpu虛擬成多個虛擬cpu供虛擬機器使用。
在傳統的x86指令集中,cpu有4個特權級(0-3),第0級用來執行作業系統,擁有最高的特權,第3級用來執行應用程式,擁有最低的特權級。
虛擬機器執行的過程中,通常vmm作為管理元件,執行在宿主機的作業系統中,擁有最高特權級別,而虛擬機器上的作業系統就職能執行在第3級別了。
但是,作業系統中的某些指令,只能執行在最高特權級別,因此執行在第3級別的guest作業系統如何去執行那些只能在第0級才能執行的特權指令,就成為乙個急需解決的問題。
根據實現機制的不同,這一過程分為三類:
(1)基於模擬執行的cpu虛擬化,也就是所謂的全虛擬化。
當vmm捕獲到guest作業系統需要執行的特權指令時,用本地物理cpu的指令對該特權指令進行模擬執行,並將結果返回給guest作業系統。
這中方式的乙個優點就在於,它可以虛擬出與本地物理cpu指令集不同的虛擬cpu
如kvm, vmware
(2)作業系統輔助虛擬化,也就是所謂的半虛擬化
將guest作業系統中的特權指令通過hypercall的方式進行改寫,類似於系統呼叫
這種方式需要修改guest作業系統,
如xen
(3)硬體支援的虛擬化
現如今常見的處理器都支援,intel為 intel vt-x, amd 為 svm
在通常的cpu基礎之上,增加了乙個新的模式,通過cpu模式的切換來執行那些特權指令。
結束程序的常見方式
乙個程序由於以下五個因素將會導致終止 前三個都是正常終止,後面兩個為非正常終止 程序終止之後,都會執行相同的核心 這段 做的工作就是關閉開啟的檔案,釋放記憶體,和其他的清理工作。int exit int status 程序終止之後,都會執行相同的核心 這段 做的工作就是關閉開啟的檔案,釋放記憶體,和...
單點登入常見方式
一 使用cookie redis 1.在專案任何乙個模組進行登入,登入之後把資料放在兩個地方。1 redis 在key 生成唯一的隨機值 ip 使用者id等 在value存使用者資料。2 cookie 把redis裡面的key值放到cookie裡面 2.訪問專案其他模組,傳送請求帶著cookie進行...
JSP頁面跳轉的常見方式
jsp頁面跳轉的幾種常用方式 1 requestdispatcher.forward 在伺服器端起作用,當使用forward 時,servlet engine傳遞http請求從當前的servlet或者是jsp到另外的乙個servlet jsp 或普通html檔案,也即你的form提交至a.jsp 在...