国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式虛擬機(jī)管理器內(nèi)存虛擬化方法研究

2020-05-11 12:18龍怡清
科技資訊 2020年6期

龍怡清

摘? 要:隨著計(jì)算機(jī)科學(xué)技術(shù)的快速發(fā)展,對(duì)于計(jì)算機(jī)硬件以及軟件的應(yīng)用更加多元化,嵌入式虛擬機(jī)管理技術(shù)就是其中一個(gè)比較典型的使用案例。客戶(hù)操作系統(tǒng)順暢運(yùn)行離不開(kāi)嵌入式虛擬機(jī)管理器,需應(yīng)用嵌入式虛擬機(jī)管理器對(duì)硬件資源(3種硬件資源)虛擬化,而支持虛擬內(nèi)存的客戶(hù)操作系統(tǒng)則需要對(duì)CPU存儲(chǔ)管理單元頁(yè)表虛擬化。該文主要研究的是NXP公司的PowerPC架構(gòu)處理器,以此為例來(lái)詳細(xì)地說(shuō)明CPU的存儲(chǔ)管理單元以及管理方法,從而提出CPU的存儲(chǔ)管理單元虛擬化的需求。從5個(gè)典型性虛擬機(jī)管理器軟件的內(nèi)存虛擬化研究方案中可得出虛擬化問(wèn)題的有效解決方案,此方案包括軟件影子頁(yè)表、硬件支持特性,軟硬件結(jié)合中的多種方案,能進(jìn)一步解決CPU存儲(chǔ)管理單元(MMU)頁(yè)表虛擬化問(wèn)題。

關(guān)鍵詞:嵌入式虛擬機(jī)管理器? 客戶(hù)OS? MMU頁(yè)表? 內(nèi)存虛擬化? 影子頁(yè)表

中圖分類(lèi)號(hào):TP316 ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2020)02(c)-0014-02

嵌入式虛擬機(jī)管理器是一款運(yùn)行在操作系統(tǒng)之上的軟件,在該管理器上面又同時(shí)可以運(yùn)行多個(gè)操作系統(tǒng),不同的操作系統(tǒng)運(yùn)行在不同的區(qū)域,這樣就方便管理。主要的功能實(shí)現(xiàn)就是將物理硬件映射給客戶(hù)操作系統(tǒng)來(lái)使用,讓客戶(hù)操作系統(tǒng)有一種在真實(shí)的硬件上面運(yùn)行的感覺(jué),要想達(dá)到這個(gè)目的并非簡(jiǎn)單,總共需要對(duì)于三大類(lèi)型的硬件設(shè)備進(jìn)行虛擬化操作。第一類(lèi)就是CPU核,在一個(gè)原始的物理CPU核上面進(jìn)行操作,就可以同時(shí)映射出多個(gè)邏輯CPU核來(lái)供客戶(hù)操作系統(tǒng)使用,其中的重要步驟在于對(duì)原始物理CPU核的時(shí)間分割,分割為多個(gè)時(shí)間片段來(lái)執(zhí)行不同的任務(wù),讓不同的邏輯CPU核可以占用物理CPU和上周期內(nèi)的不同時(shí)間片段,就可以感覺(jué)到多個(gè)操作系統(tǒng)同時(shí)運(yùn)行。第二類(lèi)就是內(nèi)存,虛擬化內(nèi)存技術(shù)可以實(shí)現(xiàn)物理內(nèi)存的分劃,不同的分區(qū)肯定不能使用同一個(gè)分區(qū),這必然造成數(shù)據(jù)信息的混亂,出現(xiàn)安全事故,因此物理內(nèi)存的分劃確保數(shù)據(jù)安全性。第三類(lèi)就是設(shè)備,IO設(shè)備是被多個(gè)分區(qū)共同分享的,所以也需要對(duì)于各種IO設(shè)備進(jìn)行虛擬化。

1? MMU硬件管理方法概述

1.1 MMU硬件

嵌入式領(lǐng)域在目前來(lái)看使用的比較主流的處理器架構(gòu)主要有ARM、X86、PowerPC等。MMU是在CPU內(nèi)部集成的一個(gè)硬件邏輯單元,可以提供4種主要的功能:MMU可以實(shí)現(xiàn)將邏輯地址轉(zhuǎn)換為物理地址,當(dāng)MMU關(guān)閉時(shí),邏輯地址是等同于物理地址的;MMU同時(shí)還提供了讀寫(xiě)保護(hù),不同的用戶(hù)被分配到不同的權(quán)限,也可以相同,然后不同的權(quán)限對(duì)應(yīng)著不同的區(qū)域,這樣就實(shí)現(xiàn)了資源的權(quán)限控制。

PowerPC架構(gòu)處理器可以同時(shí)支持3種類(lèi)型的MMU轉(zhuǎn)換模式:利用TLB將邏輯地址轉(zhuǎn)換為物理地址的頁(yè)地址轉(zhuǎn)換模式;邏輯地址轉(zhuǎn)換為物理地址的塊地址轉(zhuǎn)換模式(充分利用BAT寄存器進(jìn)行的塊地址轉(zhuǎn)換模式);平板映射模式(禁止地址轉(zhuǎn)換)。

由于并不是所有的處理器都支持MMU,并且就算硬件滿(mǎn)足條件,也有可能操作系統(tǒng)不支持虛擬內(nèi)存,在這種情況下就只能采取平板映射模式。但需要注意的是,塊地址轉(zhuǎn)換只用于部分處理器。

1.2 MMU管理方法

NXP公司的核心架構(gòu)處理器經(jīng)歷了比較漫長(zhǎng)的發(fā)展過(guò)程,其硬件結(jié)構(gòu)隨之不斷地發(fā)生著改變,硬件的功能基本保持不變,穩(wěn)定性能越來(lái)越好,主要就是實(shí)現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換和保護(hù)工作。MMU對(duì)于存儲(chǔ)管理機(jī)制的實(shí)現(xiàn)支持主要有兩種方式,分別是塊地址轉(zhuǎn)換形式和MMU頁(yè)表形式。其中塊地址轉(zhuǎn)換形式的內(nèi)存為128kB,是最小內(nèi)存塊。

TLB是存在于內(nèi)存中的非常重要的一塊區(qū)域,主要用于存放MMU頁(yè)表??梢杂脕?lái)保護(hù)經(jīng)常使用的頁(yè)表項(xiàng),MMU頁(yè)表加載之后就會(huì)進(jìn)入到緩存,頻繁的改變就可以得到TLB表項(xiàng),這個(gè)替換的過(guò)程是非常復(fù)雜的,一方面只有硬件的支持才能很好地完成,另一方面還需要優(yōu)秀的算法來(lái)實(shí)現(xiàn)轉(zhuǎn)換。大內(nèi)存塊常用BAT且地址不會(huì)因映射關(guān)系的改變而頻繁改變地址轉(zhuǎn)換。

1.3 MMU虛擬化需求

虛擬機(jī)管理器可以運(yùn)行多個(gè)客戶(hù)操作系統(tǒng),如果客戶(hù)操作系統(tǒng)是基于虛擬化的,那么客戶(hù)操作系統(tǒng)處于用戶(hù)態(tài)時(shí),沒(méi)有辦法對(duì)于MMU的空間進(jìn)行管理,所以,在客戶(hù)操作系統(tǒng)上面抽象了一個(gè)適配層,如果該適配層可以很好地支持MMU的虛擬化功能,則是非常完美的實(shí)現(xiàn)。MMU虛擬化主要實(shí)現(xiàn)了3個(gè)功能:一是實(shí)現(xiàn)了客戶(hù)操作系統(tǒng)物理內(nèi)存地址到主機(jī)物理內(nèi)存地址的完美轉(zhuǎn)換;二是設(shè)置了內(nèi)存的權(quán)限管理,最大程度地避免內(nèi)存的泄露;三是將客戶(hù)頁(yè)表已訪問(wèn)的信息進(jìn)行緩存,方便下次直接使用。

2? MMU虛擬化方法分析

2.1 XEN內(nèi)存虛擬化方法

英國(guó)劍橋大學(xué)是XEN誕生地,人們通過(guò)不懈地鉆研,發(fā)現(xiàn)X86架構(gòu)處理器與內(nèi)存虛擬化有重要關(guān)系,通過(guò)它發(fā)現(xiàn)了一種優(yōu)秀的內(nèi)存虛擬化方法??蛻?hù)操作系統(tǒng)可以直接對(duì)硬件頁(yè)表進(jìn)行讀操作,而更新操作則必須要有XEN的參與,如果頻繁的陷入XEN,將會(huì)有較大的開(kāi)銷(xiāo),因此可以使用隊(duì)列的結(jié)構(gòu)來(lái)分批地對(duì)這些操作進(jìn)行確認(rèn),這樣就可以在一定程度上降低開(kāi)銷(xiāo)。

X86影子模式、X86直接模式是XEN對(duì)MMU硬件虛擬化的主要方式。X86影子模式主要就是客戶(hù)操作系統(tǒng)維護(hù)客戶(hù)頁(yè)表,因此會(huì)產(chǎn)生客戶(hù)操作系統(tǒng)的影子頁(yè)表,這個(gè)影子頁(yè)表由XEN來(lái)幫忙維護(hù)。MMU硬件能進(jìn)行該頁(yè)表訪問(wèn),在訪問(wèn)的同時(shí)也可以訪問(wèn)客戶(hù)頁(yè)表、影子頁(yè)表,并且能進(jìn)行信息的有效傳遞。

X86直接模式主要就是客戶(hù)操作系統(tǒng)維護(hù)客戶(hù)頁(yè)表,MMU可以訪問(wèn)客戶(hù)頁(yè)表,客戶(hù)操作系統(tǒng)需要在XEN上面對(duì)于客戶(hù)頁(yè)表進(jìn)行注冊(cè),頁(yè)表基地址的改變可通過(guò)Linux客戶(hù)操作系統(tǒng)實(shí)現(xiàn),但XEN需在提交頁(yè)表之前確認(rèn),頁(yè)表的更新也離不開(kāi)XEN的陷入,并仿真寫(xiě)操作。

2.2 ViMo內(nèi)存虛擬化方法

韓國(guó)電子通信研究院設(shè)計(jì)的ViMo被廣泛應(yīng)用于移動(dòng)通信領(lǐng)域,能支持建立在ARM基礎(chǔ)上的架構(gòu)處理器的全虛擬化技術(shù)。其主要把地址空間分為物理地址、機(jī)器地址、虛擬地址。毫無(wú)疑問(wèn)虛擬地址是由客戶(hù)操作系統(tǒng)來(lái)使用的,物理地址則是主要作為客戶(hù)操作系統(tǒng)的物理地址,機(jī)器地址主要由ViMo來(lái)進(jìn)行維護(hù),每個(gè)虛擬機(jī)都有自己的機(jī)器地址,這段地址比較特別,具有物理上的連續(xù)性,使用起來(lái)非常的方便,一旦虛擬機(jī)進(jìn)入關(guān)機(jī)狀態(tài),這段地址可以會(huì)被分配給其他的虛擬機(jī)使用。

2.3 KVM/ARM內(nèi)存虛擬化方法

KVM/ARM是第一個(gè)全系統(tǒng)的ARM虛擬化解決方案,工作原理為ARM架構(gòu)處理器,簡(jiǎn)言之是在多核的ARM上面運(yùn)行原生客戶(hù)的操作系統(tǒng)。虛擬地址的訪問(wèn)權(quán)對(duì)于客戶(hù)操作系統(tǒng)以及內(nèi)核都至關(guān)重要,并且它們同時(shí)訪問(wèn)的時(shí)候不能相互產(chǎn)生影響,所以?xún)?nèi)存虛擬化勢(shì)在必行。對(duì)于真實(shí)的物理內(nèi)存而言,內(nèi)核擁有著絕對(duì)的訪問(wèn)控制權(quán)限,而客戶(hù)操作系統(tǒng)則需要通過(guò)內(nèi)核才能訪問(wèn)。要想實(shí)現(xiàn)這樣的需求就需要增加其他的內(nèi)存虛擬化層,這樣客戶(hù)操作系統(tǒng)就可以訪問(wèn)內(nèi)存的虛擬化層。KVM/ARM的內(nèi)存虛擬化方法比較特別,為了實(shí)現(xiàn)客戶(hù)虛擬地址和客戶(hù)物理地址之間的映射,這個(gè)任務(wù)由客戶(hù)操作系統(tǒng)來(lái)完成。內(nèi)核的虛擬地址映射到真實(shí)的物理地址的原理是客戶(hù)物理地址映射到內(nèi)核虛擬地址。

2.4 NOVA內(nèi)存虛擬化方法

NOVA是由德國(guó)的一所大學(xué)操作系統(tǒng)研究小組設(shè)計(jì)的,基于Intel VT-x的支持全虛擬化的微內(nèi)核架構(gòu)虛擬機(jī)管理器。以下4種類(lèi)型為內(nèi)存的基本類(lèi)型。

(1)HVA:由NOVA分配,在打開(kāi)MMU時(shí)候的地址。

(2)HPA:有物理平臺(tái)提供,關(guān)閉MMU時(shí)候的地址。

(3)GPA:由NOVA分配給客戶(hù)操作系統(tǒng),客戶(hù)操作系統(tǒng)在關(guān)閉MMU時(shí)候的地址。

(4)GVA:由客戶(hù)操作系統(tǒng)分配,客戶(hù)操作系統(tǒng)在打開(kāi)MMU時(shí)候的地址。

一般GPA等同于HVA。由于處理器支持嵌套分頁(yè),便可以運(yùn)用硬件提供的特性更好地完成內(nèi)存的虛擬化。需注意的是,處理器不支持嵌套分頁(yè)特性就需要使用vTLB算法,進(jìn)而填充和刷新影子頁(yè)表。

2.5 MobiVMM內(nèi)存虛擬化方法

韓國(guó)大學(xué)和微軟亞洲研究院聯(lián)合開(kāi)發(fā)的MobiVMM內(nèi)存虛擬化方法,適用范圍為消費(fèi)電子領(lǐng)域,能有效解決資源受限、實(shí)時(shí)支持、功能高效管理。主要的設(shè)計(jì)方案就是MobiVMM和客戶(hù)操作系統(tǒng)共享一個(gè)地址空間,在共享空間時(shí)會(huì)把4GB空間里最高的32MB留置于MobiVMM,因此切換MobiVMM時(shí),不用刷新TLB、Cache,一定程度上節(jié)省了大量的人力、物力、財(cái)力。

3? MMU頁(yè)表虛擬化方案

3.1 軟件方案

在軟件方案選擇時(shí)需影子頁(yè)表、其變體二選一,原因在于它們虛擬化能力較強(qiáng),能實(shí)現(xiàn)MMU頁(yè)表虛擬化。工作主要機(jī)制為對(duì)原始CPU分頁(yè),GVA到GPA的映射不可或缺,維護(hù)主要是由客戶(hù)操作系統(tǒng)的客戶(hù)頁(yè)表完成,HVA到HPA的映射關(guān)系非常重要,維護(hù)主要是由虛擬機(jī)管理器的主機(jī)頁(yè)表完成,影子頁(yè)表主要用于維護(hù)GVA到HPA的映射關(guān)系。

3.2 硬件支持

硬件條件支持有了一定基礎(chǔ),便可利用這些基礎(chǔ)的特性進(jìn)行MMU頁(yè)表虛擬化。其中的技術(shù)要點(diǎn)在于在硬件上引入另一個(gè)分頁(yè)級(jí)別,客戶(hù)操作系統(tǒng)來(lái)控制64位以及32位的頁(yè)表事件,虛擬機(jī)管理器控制擴(kuò)展頁(yè)表,CPU則是使用擴(kuò)展頁(yè)表和客戶(hù)頁(yè)表。

3.3 軟硬件結(jié)合

基于軟硬件結(jié)合的MMU頁(yè)表虛擬化解決方案,是根據(jù)虛擬機(jī)管理器所支持處理器的虛擬化特性生成的,需注意的是當(dāng)處理器具有類(lèi)似EPT特性時(shí),可直接選擇MMU頁(yè)表虛擬化方案,如不支持則可采用類(lèi)似影子頁(yè)表、其變體二選一的軟件MMU頁(yè)表虛擬化方案。

4? 結(jié)語(yǔ)

對(duì)嵌入式虛擬機(jī)管理器內(nèi)存虛擬化方法的研究,有利于解決各種虛擬化問(wèn)題,對(duì)于客戶(hù)操作系統(tǒng)的虛擬化需結(jié)合MMU頁(yè)表進(jìn)行。解決方案包括軟件解決方案、硬件支持方案、軟硬件結(jié)合解決方案。

參考文獻(xiàn)

[1] 尹學(xué)淵,陳興蜀,陶術(shù)松,等.一種無(wú)代理虛擬機(jī)進(jìn)程監(jiān)控方法[J].南京大學(xué)學(xué)報(bào):自然科學(xué)版,2019(2):98.

[2] 劉健,王馬龍.基于負(fù)載特征的虛擬機(jī)動(dòng)態(tài)遷移決策算法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(3):123.

[3] 陳佳昕.虛擬機(jī)隱藏進(jìn)程檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī):專(zhuān)業(yè)版,2019(1):93-96.

[4] 徐海燕,郭京.基于共享內(nèi)存的多核虛擬機(jī)系統(tǒng)中的虛擬機(jī)間通信[J].電子技術(shù)與軟件工程,2014(3):78.

[5] 陳興蜀,趙成,陶術(shù)松.基于KVM的Windows虛擬機(jī)用戶(hù)進(jìn)程防護(hù)[J].電子科技大學(xué)學(xué)報(bào),2016(6):950-957.

玉龙| 犍为县| 临汾市| 榆社县| 长春市| 博客| 新兴县| 界首市| 安乡县| 秦皇岛市| 怀远县| 南宫市| 华蓥市| 阿鲁科尔沁旗| 贺兰县| 宁海县| 长汀县| 磐石市| 常州市| 通化市| 淮安市| 太湖县| 临海市| 公主岭市| 休宁县| 吉木萨尔县| 静宁县| 额济纳旗| 达州市| 宁波市| 龙山县| 扎鲁特旗| 永寿县| 拜泉县| 夏津县| 麻江县| 长治县| 依兰县| 昌黎县| 东乌珠穆沁旗| 唐河县|