• 正文
    • 1.前言
    • 2.多路復(fù)用
    • 3.聚合
    • 4.模擬
    • 5.結(jié)語(yǔ)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

虛擬化的三種方式

2024/11/25
2799
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1.前言

Virtualization(虛擬化)是讓公開(kāi)的虛擬資源等同于被虛擬化的底層物理資源。虛擬化在各個(gè)領(lǐng)域應(yīng)用很廣泛,不局限于計(jì)算機(jī)科學(xué)領(lǐng)域。無(wú)論是在硬件、軟件還是在嵌入式子系統(tǒng)中,虛擬化總是使用或組合三種簡(jiǎn)單的技術(shù)來(lái)實(shí)現(xiàn)的:多路復(fù)用(Multiplexing)、聚合(Aggregation)模擬(Emulation)。

2.多路復(fù)用

多路復(fù)用目的是在多個(gè)虛擬實(shí)體之間復(fù)用物理資源。有兩種類型的多路復(fù)用:空間復(fù)用時(shí)間復(fù)用。

通過(guò)空間復(fù)用,物理資源(在空間上)被劃分為多個(gè)虛擬實(shí)體。例如操作系統(tǒng)跨不同地址空間對(duì)物理內(nèi)存的不同頁(yè)面進(jìn)行多路復(fù)用。為了實(shí)現(xiàn)這一目標(biāo),操作系統(tǒng)要統(tǒng)一管理虛擬到物理的地址映射,并依賴于MMU提供的體系結(jié)構(gòu)支持。

通過(guò)時(shí)間復(fù)用,可以在虛擬實(shí)體之間分時(shí)調(diào)度相同的物理資源。例如,操作系統(tǒng)調(diào)度器將CPU內(nèi)核和硬件線程多路復(fù)用到一組可運(yùn)行的進(jìn)程中。通過(guò)上下文切換操作將處理器寄存器文件的狀態(tài)保存在與傳出進(jìn)程相關(guān)聯(lián)的內(nèi)存中,然后從與傳入進(jìn)程相關(guān)聯(lián)的內(nèi)存位置恢復(fù)該寄存器文件的狀態(tài)。

圖1 多路復(fù)用

3.聚合

聚合所做的與多路復(fù)用恰恰相反,它獲取多個(gè)物理資源,把它們組合起來(lái),并使它們看起來(lái)像是單個(gè)抽象。例如,RAID控制器將多個(gè)磁盤(pán)聚合成單個(gè)卷。在配置完成后,RAID控制器將確保對(duì)卷的所有讀寫(xiě)操作都恰當(dāng)分配到RAID組的各個(gè)磁盤(pán)上。

這樣的話,操作系統(tǒng)將文件系統(tǒng)格式化到卷上,就不必?fù)?dān)心布局和編碼的細(xì)節(jié)。在不同的域中,處理器的內(nèi)存控制器將多個(gè)DIMM的容量聚合到一個(gè)物理地址空間中,然后由操作系統(tǒng)統(tǒng)一管理。

圖2?聚合

4.模擬

模擬依賴于軟件中的間接層來(lái)搭建與物理設(shè)備相對(duì)應(yīng)的虛擬化資源或設(shè)備,即使該虛擬資源實(shí)際不存在于當(dāng)前的計(jì)算機(jī)物理系統(tǒng)中??缂軜?gòu)模擬器是在一個(gè)處理器架構(gòu)上運(yùn)行另一個(gè)處理器架構(gòu),例如,Apple Rosetta在x86計(jì)算機(jī)上模擬PowerPC處理器以實(shí)現(xiàn)向后兼容,比如在圖(c)中X是x86,Y是PowerPC。

圖3?模擬

5.結(jié)語(yǔ)

多路復(fù)用、聚合和模擬可以自然地組合在一起,形成各種形式的虛擬化實(shí)現(xiàn)。特別是幾乎所有的虛擬機(jī)管理程序(Hypervisor)都是多路復(fù)用和模擬的組合。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫(xiě)文章/發(fā)需求
立即登錄