第六講 CPU虛擬化

2022-02-24 04:38:57 字數 1649 閱讀 1780

虛擬化技術的分類主要有伺服器虛擬化、儲存虛擬化、網路虛擬化、應用虛擬化

伺服器虛擬化技術按照虛擬物件來分,可分為:cpu虛擬化、記憶體虛擬化、i/o虛擬化

按照虛擬化程度可分為:全虛擬化、半虛擬化、硬體輔助虛擬化

將不同的虛擬化物件和程度組合,可得出9種不同的伺服器虛擬化技術

首先詳細介紹下伺服器虛擬化之cpu虛擬化,後續講解中再詳細介紹記憶體虛擬化及i/o虛擬化。

二、cpu虛擬化

·cpu全虛擬化技術

主要採用優先順序壓縮技術(ring compression)和 二進位制**翻譯技術(binary translation)。優先順序壓縮技術讓vmm和guest 執行在不同的特權級下。

對x86架構而言,即vmm執行在最高特權級別ring 0下,guest os 執行在ring 1 下,使用者應用執行在ring 3下。因此 guest os 的核心指令無法直接下達

到計算機系統硬體執行,而是需要經過 vmm 的捕獲和模擬執行(部分難以虛擬化的指令需要通過 binary translation技術進行轉換)。

·cpu半虛擬化技術

主要採用hypercall 技術。guest os 的部分**被改變,從而使guest os會將和特權指令相關的操作都轉換為發給vmm的hypercall(超級呼叫),由vmm繼續進行處理。而hypercall支援的批處理和非同步這兩種優化方式,使得通過hypercall 能得到近似於物理機的速度。

·cpu硬體輔助虛擬化技術

目前主要有intel 的vt-x和amd的amd-v這兩種技術。其核心思想都是通過引入新的指令和執行模式,使vmm和guest os分別執行在不同模式(root 模式和非root模式)下,且guest os 執行在ring 0 下。通常情況下,guest os 的核心指令可以直接下達到計算機系統硬體執行,而不需要經過vmm。當guest os執行到特殊指令的時候,系統會切換到vmm,讓vmm來處理特殊指令。

cpu的虛擬化技術可以單cpu模擬多cpu並行,允許乙個平台同時執行多個作業系統,並且應用程式都可以在相互獨立的空間內執行而互不影響,

從而顯著提高計算機的工作效率。

guestos負責第2級排程,即執行緒或程序在vcpu上的排程(將核心執行緒對映到相應的虛擬cpu上。)

vmm(virtual machine monitor)負責第1級排程,即vcpu在物理處理單元上的排程。

兩級排程的排程策略和機制不存在依賴關係。vmm負責物理處理器資源在各個虛擬機器之間的分配和排程,本質上即把各個虛擬機器中的vcpu按照一定的策略和機制排程在物理處理單元上,可以採用任意的策略來分配物理資源,滿足虛擬機器的不同需求。

第六講 if 語句

格式 單分支if 條件測試命令 then 命令序列 fi 多分支 if then 命令序列 else 命令序列 fi bin bash data new create if f file then echo exist file cat file wc l rm file else touch fi...

第六講感悟

方法是處理業務邏輯的 滿足使用者需求,有開發者設計的具有一定邏輯的 鄙人認為可以把方法看作是數學中的方程式,帶入因變數進行計算,得到所要求得的值 方法應盡可能單 一 簡單 容易理解。因此關於方法的返回值 有return語句的方法有可能還需被呼叫到其他方法中去使用 類似於三元一次方程兩兩相消後再求一次...

第六講 堆疊操作

本節中的例子其結構和例1一樣,僅改變mydisplay和myreshape。例4 利用堆疊繪製三個物體 乙個綠色的茶壺,乙個藍色的茶壺,乙個紅色的立方體 部分 void mydisplay void void myreshape glsizei w,glsizei h 執行後,我們可以看到左邊為乙個...