QEMU虛擬機(jī)的移植和優(yōu)化
《QEMU虛擬機(jī)的移植和優(yōu)化》由會(huì)員分享,可在線閱讀,更多相關(guān)《QEMU虛擬機(jī)的移植和優(yōu)化(122頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、QEMU虛擬機(jī)的移植和優(yōu)化 ADissertationSubmittedto Zhejiang reUnVivers。s1tffortheoereeee Y Deg Masterof
2、 Engineering VirtualMachine QEMU Author: YanWeiBin Supervisor: △墨Q堡i壘羔金£!Q至:
3、! iYi望g Subject:£Q里衛(wèi)望主皇!△衛(wèi)衛(wèi)!i堡壘主iQ旦!里曼h翌Q!QgY Col lege: gQ!里皇g金Q至堡Q里Q叢主皇!旦i金旦g金 SubmittedDate: |I壘望墜壘!Y
4、2壘Q!窒 ILUlllllllllllllll 412lllI 00 6
5、 浙江大學(xué)碩士學(xué)位淪義 摘要 摘要 近年來,虛擬機(jī)技術(shù)再度成為學(xué)術(shù)界和工業(yè)界的熱點(diǎn)話題。虛擬機(jī)技術(shù)在云 計(jì)算、高可用服務(wù)、安全等很多領(lǐng)域得到了廣泛的應(yīng)用。在嵌入式開發(fā)中,通過 在PC機(jī)或者服務(wù)器上運(yùn)行嵌入式體系結(jié)構(gòu)的虛擬機(jī),也可以為嵌入式操作系統(tǒng)、 應(yīng)用程序的開發(fā)和測試提供極大的便利。本文在分析各種不同類型的虛擬機(jī)及其 典型代表的基礎(chǔ)上,選擇了QEMU作為在IA-32體系Pc機(jī)上實(shí)
6、現(xiàn)csky嵌入式體 系結(jié)構(gòu)虛擬機(jī)的實(shí)驗(yàn)平臺。 本文的主要貢獻(xiàn)為:首先,深入分析了QEMU用戶模式和系統(tǒng)模式的內(nèi)部實(shí) 現(xiàn)機(jī)制。介紹了將QEMU的兩種模式移植到csky體系結(jié)構(gòu)時(shí)遇到的問題及相應(yīng)的 解決方案,提出了一系列QEMU前端移植的策略。然后,我們嘗試對QEMU的寄存 器分配機(jī)制進(jìn)行改進(jìn),提出并實(shí)現(xiàn)了基于“最小交叉數(shù)”的寄存器分配算法,實(shí) 驗(yàn)數(shù)據(jù)表明優(yōu)化寄存器分配機(jī)制確實(shí)可以一定程度上提高系統(tǒng)性能。最后,我們 對QEMU的調(diào)試功能進(jìn)行了增強(qiáng)。目前QEMU的調(diào)試模塊在實(shí)現(xiàn)斷點(diǎn)和單步功能時(shí) 需要頻繁的清空翻譯塊緩沖,這可能導(dǎo)
7、致調(diào)試時(shí)較差的用戶體驗(yàn)。本文提出了使 用獨(dú)立的解釋執(zhí)行模塊支持單步,以及運(yùn)行時(shí)判斷斷點(diǎn)狀態(tài)的翻譯方案,使調(diào)試 過程中不再需要清空翻譯塊緩沖,且最小化了需要重新翻譯的翻譯塊數(shù)量。另外 本文還通過實(shí)現(xiàn)一種新的子進(jìn)程調(diào)試端口選擇方式,為QEMU用戶模式增加了多 進(jìn)程程序調(diào)試支持。 QEMU,動(dòng)態(tài)二進(jìn)制翻譯,移植,優(yōu)化,調(diào)試 關(guān)鍵詞: Abstract 浙江大學(xué)碩士學(xué)位論文
8、 Abstract machine once becomeahot bothin Inrecent technology topic years,virtual again machine havebeen usedin academiaand
9、 circles.Virtual industry technology widely availabi researchand otherfields.In cloud lityservices,securitymany computing,high area,avirtual board on orserveral
10、so embedded developmentrunningpc development and ofembedded can a convenienceto testing operatoring providegreat de
11、veloping differentofvirtualmachinesand and the types systemapplication.Afteranalyzing asthe of their
12、 choosethe QEMU expefimenmlplatform typicalrepresentative,we machineontheIA??32architecture a virtual esky pc。 implementing
13、 are:First studiedthe Themaincontributionsofthisdissertationof all,we QEMU describedthe virtualmachine’Sintemal mechanis
14、m,and problems, implementation usermodeand modeto encounteredinthe of QEMU’S system csky processporting
15、 front solutions.Wealso several for their strategyQEMU’S architecture,and proposed and
16、 we to the allocation end try improve mechanism,proposed porting.Then register new allocation whichbasedon”minimum a algorithm cro
17、ssing implementedregister can datashowthatthenew allocationmechanism register number”.Experimental
18、 anew tosome we indeed systemperformanceextent.Finallyproposed improve mechanism,whichusea moduletO single。step
19、 separateexplanationsupport single―step thetranslationmoduletOdetecttheStatuSof we execution,and breakpoints modify hostcode.Afterth
20、ese isno need when thetranslated improments,itlonger executing tb thenumberoftbwhichneedre.translateiSminimized.In toflushthe buffer,and alsoaddth
21、e of additiontothese supportmulti-processesdebugging improvements,we anewchild selectionmode. for processdebugport supportQEMUb
22、yimplementing Keywords:QEMU,dynamicbinary 目錄 浙江大學(xué)碩士學(xué)位論文 目錄 摘要……………………………………………………..i Abstract.........................................................ii 第1章緒論…………………………
23、…………………….1 1.1課題背景…………………………………………….1 1.2本文的工作………………………………….i………1 1.3本文的組織…………………………………………..2 I.4本章小結(jié)…………………………………………….2 第2章虛擬機(jī)技術(shù)綜述………………………………………3 2.1虛擬機(jī)的概念…………………………………………3 2.2虛擬機(jī)的分類…………………………………………3 2.3進(jìn)程虛擬機(jī)…………………………………………..5
24、 2.3.1動(dòng)態(tài)二進(jìn)制翻譯………………….:……………….6 2.3.2高級語言虛擬機(jī)……………………………………7 2.3.3動(dòng)態(tài)二進(jìn)制優(yōu)化……………………………………7 2.3.4操作系統(tǒng)級劃分……………………………………7 2.4系統(tǒng)虛擬機(jī)…………………………………………..8 2.4.1客戶和宿主同架構(gòu)的系統(tǒng)虛擬機(jī)……………………….9 2.4.2客戶和宿主不同架構(gòu)的系統(tǒng)虛擬機(jī)…………………….10 2.4.3半虛擬化和預(yù)虛擬化……………………………
25、….11 2.5 QEMqJ簡介…………………………………………..13 2.6本章小結(jié)……………………………………………13 第3章移植QEMU用戶模式…………………………………..15 3.I QEMU重要機(jī)制分析……………………………………15 3.1.1翻譯和執(zhí)行的基本單位……………………………..15 3.1-2直接跳轉(zhuǎn)鏈………………………………………16 3.1.3微指令和臨時(shí)變量…………………………………18
26、 3.2寄存器的剪裁映射…………………………………….2l 3.3用戶模式指令翻譯…………………………………….22 浙江大學(xué)碩士學(xué)位論文 目錄 3.3.1簡單指令翻譯…………………………………….22 3.3.2復(fù)雜指令翻譯和Helper機(jī)制…………………………24 3.4其它重要的移植工作…………………………………..26 3.4.1系統(tǒng)調(diào)用映射…………………………………….26
27、 3.4.2模擬Linux信號處理機(jī)制……………………………26 3.5本章小結(jié)……………………………………………28 第4章移植QEMU系統(tǒng)模式…………………………………..29 4.1系統(tǒng)模式指令翻譯…………………………………….29 4.1.1特權(quán)指令的翻譯策略……………………………….29 4.1.2切換寄存器組指令的翻譯……………………………3l 4.2Softmmu的實(shí)現(xiàn)………………………………………33 4.2.1系統(tǒng)模式下的內(nèi)存訪問……………
28、………………..33 4.2.2地址轉(zhuǎn)換過程的實(shí)現(xiàn)……………………………….34 4.2.3 Softmmu對指令翻譯的影響………………………….35 4.3機(jī)器管理和外圍設(shè)備實(shí)現(xiàn)……………………………….36 4.3.1設(shè)備和機(jī)器管理…………………………………..36 4.3.2實(shí)現(xiàn)一個(gè)外圍設(shè)備…………………………………38 4.4本章小結(jié)……………………………………………41 第5章優(yōu)化QEMU寄存器分配機(jī)制……………………………..42
29、 5.1 DBT系統(tǒng)中的寄存器分配……………………………….42 5.1.1簡單寄存器分配法…………………………………43 5.1.2全局寄存器分配法…………………………………43 5.1.3 Next-use寄存器分配法…………………………….43 5.1-4簡化的圖著色寄存器分配法………………………….43 5.2 QEMU的寄存器管理……………………………………44 5.2.1
30、 QEMU的寄存器分配機(jī)制…………………………….44 5.2.2當(dāng)前機(jī)制的缺陷…………………………………..45 5.3改進(jìn)方案及實(shí)現(xiàn)………………………………………46 5.3.1基于最小交叉數(shù)的分配機(jī)制………………………….46 5.3.2改進(jìn)分配機(jī)制的實(shí)現(xiàn)方案……………………………48 5.4本章小結(jié)……………………………………………49 II
31、 錄 浙江大學(xué)碩士學(xué)位論文 第6章完善QEMU的調(diào)試機(jī)制…………………………………50 6.1遠(yuǎn)程調(diào)試中的斷點(diǎn)機(jī)制…………………………………5l 6.1.1軟件斷點(diǎn)的實(shí)現(xiàn)方式……………………………….51 6.1.2 GDB遠(yuǎn)程調(diào)試中的斷點(diǎn)機(jī)制………………………….52 6.2系統(tǒng)模式的斷點(diǎn)和單步實(shí)現(xiàn)……………………………..53 6.2.1翻譯塊的管理……………………………
32、……….53 6.2.2單步功能的實(shí)現(xiàn)機(jī)制……………………………….54 6.2.3斷點(diǎn)功能的實(shí)現(xiàn)機(jī)制……………………………….55 6.3改進(jìn)方案及實(shí)現(xiàn)………………………………………57 6.3.1使用獨(dú)立的解釋模式實(shí)現(xiàn)單步………………………..57 6.3.2基于運(yùn)行時(shí)判斷的斷點(diǎn)支持………………………….58 6.4用戶模式多線程調(diào)試…………………………………..60 6.5本章小結(jié)……………………………………………62 第7章實(shí)驗(yàn)結(jié)果及分析……………
33、………………………..64 7.1用戶模式移植實(shí)驗(yàn)結(jié)果…………………………………64 7.2系統(tǒng)模式移植實(shí)驗(yàn)結(jié)果…………………………………65 7.3寄存器分配機(jī)制改進(jìn)實(shí)驗(yàn)結(jié)果……………………………66 7.4調(diào)試機(jī)制改進(jìn)實(shí)驗(yàn)結(jié)果…………………………………67 7.5本章小結(jié)……………………………………………70 第8章總結(jié)與展望…………………………………………71 參考文獻(xiàn)…………………………………………………72 攻讀碩士學(xué)位期間主要的研究成果……………………………..75
34、 致謝…………………………………………………….76 III 浙江大學(xué)碩士學(xué)位論文 圖【-j錄 圖目錄 圖2.1計(jì)算機(jī)系統(tǒng)的三個(gè)不同抽象層次……………………………………………4 圖2.2虛擬機(jī)的分類…………………………………………………………………5 圖2.3動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)的主要執(zhí)行流程……………………………
35、…………6 圖2.4半虛擬化的主要執(zhí)行流程………………………………………………….1l 圖2.5三種不同的同構(gòu)系統(tǒng)虛擬機(jī)實(shí)現(xiàn)………………………………………….13 圖3.1一個(gè)翻譯塊的執(zhí)行過程…………………………………………………….16 7 圖3.2翻譯塊直接跳轉(zhuǎn)示意圖…………………………………………………….1 圖3.3直接跳轉(zhuǎn)鏈表……………………………………………………………….18 圖3.4指令翻譯流程
36、……………………………………………………………….19 圖3.5寄存器的兩種映射方式…………………………………………………….22 圖3.6翻譯lsl指令生成的host基本塊……………………………………………24 圖3.7用戶模式虛擬Linux信號的初始化………………………………………..27 圖4.1特權(quán)指令翻譯方案二……………………………………………………….30 圖4.2 csky體系的不同寄存器組…………………………………………………一3l 圖4.3 QEMU訪存示意圖………………………………………
37、………………….33 handlemmu 圖4.4 esky fault執(zhí)行流程…………………………………………一35 圖4.5翻譯過程死循環(huán)示意圖…………………………………………………….36 圖4.6基于qdev的設(shè)備和機(jī)器管理………………………………………………37 圖4.7使用總線連接外圍設(shè)備…………………………………………………….38 圖4.8UART的數(shù)據(jù)交互……………………………………………………………40 圖5.1 QEMU寄存器分配機(jī)制……
38、……………………………………………….44 圖5.2臨時(shí)變量的DEF和USE……………………………………………………46 圖5.3兩個(gè)生命期的交叉數(shù)……………………………………………………….47 圖5.4算法增加的數(shù)據(jù)結(jié)構(gòu)………………………………………………………一49 圖6.1調(diào)試模塊和虛擬機(jī)的交互………………………………………………….50 圖6.2 gdb的軟件斷點(diǎn)實(shí)現(xiàn)機(jī)制……………………………………………………5l 圖6.3斷點(diǎn)處理中g(shù)db和QEMU的交互…………………………………………53 圖6.4tbs管
39、理示意圖……………………………………………………………….54 圖6.5 QEMU單步處理流程……………………………………………………….55 圖6.6典型應(yīng)用場景下的QEMU統(tǒng)計(jì)信息………………………………………58 圖6.7改進(jìn)方案下斷點(diǎn)的處理過程……………………………………………….60 圖6.8 fork之后子進(jìn)程的處理………………………………………………………61 圖6.9新方案中對fork/vfork的處理………………………………………………62 圖7.1 QEMU用戶模式測
40、試結(jié)果………………………………………………….65 圖7.2 QEMU系統(tǒng)模式測試結(jié)果………………………………………………….66 IV 圖目錄 浙江大學(xué)碩士學(xué)位論文 圖7.3寄存器分配算法性能對比………………………………………………….67 圖7.4調(diào)試模塊改進(jìn)前…………………………………………………………….68 圖
41、7.5調(diào)試模塊改進(jìn)后…………………………………………………………….68 圖7.6測試用例對應(yīng)的匯編代碼………………………………………………….70 V 浙江大學(xué)碩士學(xué)位論義 表 』錄 表目錄 表3.1四種臨時(shí)變量的比較……………………………………………………….2l
42、表3.2 TCG的移位運(yùn)算指令……………………………………………………….24 uart需要的函數(shù)………………………………………………….39 表4.1實(shí)現(xiàn)csky 表6.1三種單步實(shí)現(xiàn)方案的對比………………………………………………….57 vI 浙江大學(xué)碩士學(xué)位論文 第1章緒論 第1章
43、緒論 1.1課題背景 Csky是核高基重大專項(xiàng)中由杭州中天微公司開發(fā)的一種RISC類型的嵌入式 款高中低搭配的微處理器。目標(biāo)應(yīng)用領(lǐng)域?yàn)闄C(jī)頂盒、手機(jī)以及一些其它的Android 設(shè)備。 我們在核高基重大專項(xiàng)的“高性能嵌入式CPU關(guān)鍵技術(shù)研究”分課題中,為 組成了一個(gè)基本完善的開發(fā)工具鏈。但是基于開發(fā)板的調(diào)試測試環(huán)境使用起來有 諸多不便,而我們基于傳統(tǒng)解釋執(zhí)行技術(shù)實(shí)現(xiàn)的模擬器由于執(zhí)行效率過低無法滿 足使用需求。 基于以上出發(fā)點(diǎn),我們希望實(shí)現(xiàn)一個(gè)可以在IA.32體系的PC機(jī)或者Itanium 體系
44、的服務(wù)器上高效率執(zhí)行的csky體系的模擬器或者虛擬機(jī)。從而為我們工具 鏈,操作系統(tǒng)等的開發(fā)工作提供便利,并且可以提供給下游廠商的嵌入式開發(fā)人 員使用。 1.2本文的工作 本文首先對虛擬機(jī)技術(shù)進(jìn)行了綜述,列舉了各種不同類型的虛擬機(jī),分析了 它們各自的常用實(shí)現(xiàn)技術(shù)和典型產(chǎn)品。在其基礎(chǔ)上,我們選擇QEMU作為我們后 續(xù)移植和優(yōu)化工作的實(shí)驗(yàn)平臺。 目前,QEMU的前端已經(jīng)被移植到了Arm,Mips等多種體系結(jié)構(gòu),這從側(cè) 面說明了它具有很好的可移植性。但QEMU官方在文檔方面的工作十分滯后,目 前仍然沒有任何具體的移
45、植參考文檔。其它體系結(jié)構(gòu)的移植實(shí)現(xiàn)可以在移植接口 方面提供一定的參考,但如何結(jié)合體系結(jié)構(gòu)的特點(diǎn)實(shí)現(xiàn)一個(gè)高性能的移植仍然是 新的體系的移植者需要著重考慮的問題。為此,本文結(jié)合csky的移植實(shí)踐,研究 浙江大學(xué)碩士學(xué)位論文 第l章緒論 了QEMU用戶模式和系統(tǒng)模式移植中的重要機(jī)制的實(shí)現(xiàn)策略。 目前QEMU內(nèi)部實(shí)現(xiàn)了基于生命期分析的死代碼消除等優(yōu)化措施,但也僅限 于類似的少數(shù)簡單的優(yōu)化。在性能方面QEMU尚有很多優(yōu)化的空間,例如它的寄 存器
46、分配機(jī)制仍然非常簡陋。本文嘗試從寄存器分配機(jī)制入手,改進(jìn)QEMU的寄 存器分配方法,并研究其對系統(tǒng)整體性能的影響。 QEMU提供的調(diào)試功能為應(yīng)用軟件開發(fā)和內(nèi)核開發(fā)提供了極大的便利,但其 調(diào)試模塊在實(shí)現(xiàn)單步執(zhí)行,斷點(diǎn)等功能時(shí)頻繁的清空翻譯塊緩沖,嚴(yán)重影響了調(diào) 試時(shí)的性能表現(xiàn),導(dǎo)致較差的調(diào)試體驗(yàn)。本文嘗試通過實(shí)現(xiàn)新的單步、斷點(diǎn)支持 機(jī)制,以徹底去除清空翻譯塊緩沖的操作,并盡量減少需要重新翻譯的翻譯塊數(shù) 目。 1.3本文的組織 論文的組織結(jié)構(gòu)如下: 第二章介紹了虛擬機(jī)的概念、種類和實(shí)現(xiàn)技術(shù)。
47、 第三章分析了QEMU的一些重要機(jī)制,介紹了移植QEMU用戶模式的主要 工作及移植策略,并對我們移植到esky體系的用戶模式QEMU進(jìn)行了測試。 第四章介紹了移植QEMU系統(tǒng)模式時(shí),與用戶模式相比新增的工作以及實(shí)現(xiàn) 機(jī)制。最后通過測試對比了我們移植的QEMU用戶模式和系統(tǒng)模式的性能表現(xiàn)。 第五章介紹了我們提出的寄存器分配算法的原理、實(shí)現(xiàn)和性能表現(xiàn)。 第六章在詳細(xì)分析QEMU調(diào)試模塊的斷點(diǎn)、單步機(jī)制的基礎(chǔ)上,闡述了我們 的改進(jìn)方案。最后介紹了如何為用戶模式增加多進(jìn)程調(diào)試支持。 第七章對全文進(jìn)行總結(jié),并對進(jìn)一
48、步的研究工作提出了展望。 1.4本章小結(jié) 本章首先介紹了本文研究的課題背景和出發(fā)點(diǎn);然后對文章完成的工作進(jìn)行 了簡要介紹;最后對本文的文章組織進(jìn)行了說明。 2 浙江大學(xué)碩士學(xué)位論文 第2章虛擬機(jī)技術(shù)綜述 第2章虛擬機(jī)技術(shù)綜述 2.1虛擬機(jī)的概念 抽象是現(xiàn)代計(jì)算機(jī)系統(tǒng)軟硬件設(shè)計(jì)中最重要的方法之一。通過將整個(gè)系統(tǒng)劃 分為多個(gè)不同
49、的層次并在每個(gè)層次定義良好的接口,使每個(gè)子系統(tǒng)或者組件可以 忽略底層的細(xì)節(jié),大大的降低了實(shí)現(xiàn)的復(fù)雜度。 例如,現(xiàn)代操作系統(tǒng)中通常將磁盤驅(qū)動(dòng)器抽象為文件系統(tǒng),應(yīng)用程序可以通 過文件系統(tǒng)的接口創(chuàng)建、讀寫文件,而不需要關(guān)心磁盤尋址之類的硬件細(xì)節(jié)。另 set 一個(gè)典型的例子是指令集 IsA,instructionarchitecture ,它抽象了計(jì)算機(jī)硬 件系統(tǒng)的功能,使硬件機(jī)器和操作系統(tǒng)可以由不同的廠商開發(fā),只要兩者都遵守 了ISA規(guī)范,就可以很好的協(xié)同工作。
50、 不幸的是,抽象同時(shí)也導(dǎo)致了兼容性的問題:完成同樣功能的子系統(tǒng)或者組 件可能抽象出不同的接口,而使用不同接口的子系統(tǒng)之間是無法交互的。例如, 雖然現(xiàn)代計(jì)算機(jī)系統(tǒng)本質(zhì)上都是圖靈機(jī),可以完成同樣的功能,但不同的硬件廠 家提供了不同的指令集,導(dǎo)致為一種指令集編譯的操作系統(tǒng)二進(jìn)制映像無法運(yùn)行 于實(shí)現(xiàn)其它指令集的機(jī)器之上。 虛擬化技術(shù)是一種應(yīng)對以上兼容性問題的方法。在一個(gè)特定的抽象層次上, 使用一個(gè)現(xiàn)有子系統(tǒng)或組件模擬出一個(gè)不同的接口。從上層系統(tǒng)的角度看,子系 統(tǒng)表現(xiàn)的像是一個(gè),甚至多個(gè)不同與真實(shí)子系統(tǒng)不同的子系統(tǒng)。
51、 虛擬化技術(shù)可以應(yīng)用于子系統(tǒng)或者組件 例如,我們可以在一種類型的磁盤 驅(qū)動(dòng)器上使用文件來模擬另一種不同類型的磁盤驅(qū)動(dòng)器 。也可以應(yīng)用于整個(gè)計(jì) 算機(jī)系統(tǒng),此時(shí),我們將虛擬出來的計(jì)算機(jī)系統(tǒng)稱為“虛擬機(jī)”【l】。 2.2虛擬機(jī)的分類 圖2.1所示是一個(gè)計(jì)算機(jī)系統(tǒng)中接近硬件的幾個(gè)不同的抽象層。ISA位于計(jì) 算機(jī)硬件系統(tǒng)和軟件系統(tǒng)的分界處,它通常被劃分為兩個(gè)部分:只有操作系統(tǒng)可 以使用的特權(quán)級指令 圖2.1中由接口3表示 ,和應(yīng)用程序、操作系統(tǒng)皆可使用 3 浙
52、江大學(xué)碩上學(xué)位論文 第2章虛擬機(jī)技術(shù)綜述 的用戶級指令 圖2.1中由接口4表示 。 interface 提供了一系列的系 binary 應(yīng)用程序二進(jìn)制接口 ABI,application 統(tǒng)調(diào)用,使得用戶進(jìn)程可以通過用戶級指令和系統(tǒng)調(diào)用 圖2.1中由接口2表示 來間接訪問硬件資源和系統(tǒng)的底層服務(wù)。操作系統(tǒng)
53、響應(yīng)系統(tǒng)調(diào)用,在確認(rèn)用戶進(jìn) 程有響應(yīng)的權(quán)限后,代替它執(zhí)行訪問硬件資源的操作。 interface 則在ABI的基 應(yīng)用程序編程接口 APl,applicationprogramming 礎(chǔ)上提供了更高一級的抽象。高級語言函數(shù)庫提供的接口 圖2.1中由接口l表 示 封裝了系統(tǒng)調(diào)用,使高級語言編寫的應(yīng)用程序在支持相同API的不同機(jī)器上 編譯生成可在該機(jī)器上運(yùn)行的二進(jìn)制程序。 應(yīng)用程
54、序 ^、 7\y :程序庫 廠、 API V ABI l 操作系統(tǒng)
55、 ISA i 爪 r入 \/\ / 硬件系統(tǒng) 圖2.1計(jì)算機(jī)系統(tǒng)的三個(gè)不同抽象層次 綜上所述,計(jì)算機(jī)系統(tǒng)給操作系統(tǒng)和用戶進(jìn)程提供了不同的接口。從用戶進(jìn) 程的層次看,操作系統(tǒng)提供了系統(tǒng)調(diào)用、用戶級可用指令和一個(gè)獨(dú)立的地址空間。 而從更底層的,操作系統(tǒng)的層次來看,底層的硬件特性定義了機(jī)器,ISA 包括
56、 用戶級和系統(tǒng)級 則是底層機(jī)器的訪問界面。 我們可以從同樣的角度將虛擬機(jī)劃分為兩大類,進(jìn)程虛擬機(jī)和系統(tǒng)虛擬機(jī)。 其中進(jìn)程虛擬機(jī)用來執(zhí)行一個(gè)單獨(dú)的用戶進(jìn)程,它隨著該用戶進(jìn)程的創(chuàng)建而創(chuàng) 建,并隨著該用戶進(jìn)程的銷毀而銷毀。進(jìn)程虛擬機(jī)模擬了目標(biāo)體系結(jié)構(gòu)的系統(tǒng)調(diào) 用接口和用戶級指令接口。而系統(tǒng)虛擬機(jī)則提供了一個(gè)持久的系統(tǒng)環(huán)境,用戶可 以在其之上運(yùn)行操作系統(tǒng)和大量的用戶進(jìn)程,且該虛擬機(jī)的狀態(tài)將被保存在虛擬 4 浙江大學(xué)碩士學(xué)位論文
57、 第2章虛擬機(jī)技術(shù)綜述 的存儲設(shè)備中。運(yùn)行于虛擬機(jī)上的用戶進(jìn)程或者操作系統(tǒng)稱為客戶 Guest ,而 支持虛擬機(jī)運(yùn)行的底層平臺則稱為宿主 Host ;實(shí)現(xiàn)進(jìn)程虛擬機(jī)的虛擬化軟件通 常稱為運(yùn)行時(shí) RuntimeSoftware ,實(shí)現(xiàn)系統(tǒng)虛擬機(jī)的虛擬化軟件則被稱為虛擬 mac:hinemonitor 【l】。 機(jī)監(jiān)督系統(tǒng) VMM,virtual 除了模擬機(jī)器的抽象層次不同之外,客戶和宿主體系結(jié)構(gòu)是否相同也是虛擬 機(jī)實(shí)現(xiàn)方式的重要決定因素之一。
58、根據(jù)以上兩點(diǎn),可以將虛擬機(jī)的種類劃分為如 圖2.2所示的類型【2J。我們將在后文中對每種不同類型的虛擬機(jī)進(jìn)行介紹。 Same―ISA dynamic Dynamic Classic System Whole-system tranlators
59、 binaryopetimizers VMs VMs Hosted Operating。System High-level-language Codesigned level
60、 VMs VMs VMs partition 圖2.2虛擬機(jī)的分類 2.3進(jìn)程虛擬機(jī) 事實(shí)上,可以認(rèn)為幾乎所有的現(xiàn)代操作系統(tǒng)都提供了進(jìn)程虛擬機(jī)。在多任務(wù) 操作系統(tǒng)中,每個(gè)用戶進(jìn)程擁有自己獨(dú)立的地址空間、寄存器內(nèi)容和文件句柄等, 并且每個(gè)進(jìn)程都可以通過系統(tǒng)調(diào)用訪問底層的硬件資源,以至于每個(gè)進(jìn)程都可以 認(rèn)為自己獨(dú)立擁有一個(gè)完整的計(jì)算機(jī)系統(tǒng)。 我們可以認(rèn)為操作系統(tǒng)的多任務(wù)功能是一
61、種客戶機(jī)和宿主機(jī)同架構(gòu)的進(jìn)程 虛擬機(jī),但是同架構(gòu)的進(jìn)程虛擬機(jī)并不局限于這種形式,我們將介紹另外兩種類 型的同架構(gòu)進(jìn)程虛擬機(jī)――動(dòng)態(tài)二進(jìn)制優(yōu)化器和操作系統(tǒng)級劃分技術(shù)。此外,本 小節(jié)中我們還將介紹兩種異構(gòu)進(jìn)程虛擬機(jī)一一基于動(dòng)態(tài)二進(jìn)制翻譯技術(shù)的異構(gòu) 進(jìn)程虛擬機(jī)和高級語言虛擬機(jī)。 5 浙江大學(xué)碩士學(xué)位論義 第2章虛擬機(jī)技術(shù)綜述 2.3.1動(dòng)態(tài)二進(jìn)制翻譯 如圖2.3所示,進(jìn)程虛擬機(jī)中我們需
62、要模擬客戶機(jī)的系統(tǒng)調(diào)用和用戶級指令。 實(shí)現(xiàn)這種模擬的最直接的方式是解釋執(zhí)行:一個(gè)解釋器程序取指、解碼、模擬執(zhí) 行每一條客戶機(jī)指令。但是這種方法的執(zhí)行效率非常低,通常需要數(shù)十條宿主機(jī) translation 指令來解釋一條客戶機(jī)指令。動(dòng)態(tài)二進(jìn)制翻譯 DBT,dynamicbinary 技術(shù)相比解釋執(zhí)行可以獲得較好的性能。它以塊為單位將客戶機(jī)指令翻譯為宿主 機(jī)指令,并緩沖翻譯結(jié)果。因此,在長時(shí)間運(yùn)行的程序中,花在指令翻譯上的時(shí)
63、間只占總運(yùn)行時(shí)間的一小部分【3】。相比簡單的解釋執(zhí)行,動(dòng)態(tài)二進(jìn)制翻譯大大提 高了性能。采用二進(jìn)制翻譯技術(shù)的VMM的主要執(zhí)行流程如圖2.3所示。 從cacheq-,查找當(dāng)前pc對應(yīng)的代碼塊 命巾 未命葉 從當(dāng)前pc殲始翻譯指令直到F條 跳軾指令,,I 加入cache 跳轉(zhuǎn)F1標(biāo)確定
64、,且己繹被翻時(shí), 嘗試設(shè)置直接跳睪專 執(zhí)行翻譯生成的代碼塊 正常結(jié) 發(fā)生異背 處理異常 更新檸序計(jì)數(shù)器 圖2.3動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)的主要執(zhí)行流程 是一個(gè)典型的采用動(dòng)態(tài)二進(jìn)制翻譯技術(shù)的進(jìn)程虛擬機(jī),它可以在Itaniu
65、m體系架 構(gòu)的操作系統(tǒng)之上執(zhí)行為IA.32 X86 體系結(jié)構(gòu)編譯的可執(zhí)行程序【5】。QEMU用戶 模式則使用動(dòng)態(tài)二進(jìn)制翻譯技術(shù)實(shí)現(xiàn)了一個(gè)支持多種不同類型宿主和客戶體系 結(jié)構(gòu)的進(jìn)程虛擬機(jī)。 6 浙江大學(xué)碩士學(xué)位論文 第2章虛擬機(jī)技術(shù)綜述 2.3.2高級語言虛擬機(jī) 高級語言虛擬機(jī)是另一種廣泛使用的進(jìn)程虛擬機(jī)。它并不模擬一個(gè)真實(shí)的機(jī) 器,而是模擬一個(gè)專門為高級語言設(shè)計(jì)的指令集/體系
66、結(jié)構(gòu)。高級語言虛擬機(jī)把應(yīng) 用程序從對底層的操作系統(tǒng)和硬件設(shè)備的依賴中解放出來,使得應(yīng)用程序只依賴 于虛擬機(jī)提供的接口。這種方式極大地提高了應(yīng)用程序的可移植性。 Gough討論了應(yīng)用虛擬機(jī),并比較了使用該技術(shù)的兩個(gè)典型系統(tǒng)【6】:Java虛 擬機(jī)和微軟.NET。兩者都使用基于堆棧的指令集,且內(nèi)在地支持面向?qū)ο蟆K鼈? 的不同之處在于:Java虛擬機(jī)更傾向于模擬,而.NET在設(shè)計(jì)之時(shí)就考慮了JIT技 術(shù)。實(shí)際應(yīng)用中,當(dāng)運(yùn)行于隊(duì).32體系結(jié)構(gòu)上時(shí),兩者都使用JIT技術(shù)。 2.3.3動(dòng)態(tài)二迸制優(yōu)化 為了減少性能損失,動(dòng)態(tài)二進(jìn)制翻譯器通常在運(yùn)行時(shí)執(zhí)行一些代碼優(yōu)化措 施。采用這種技術(shù)的虛擬機(jī)可以在宿主機(jī)上運(yùn)行相同體系的客戶應(yīng)用程序,此時(shí) 進(jìn)程虛擬機(jī)的目的不再是解決兼容性問題,而是在運(yùn)行時(shí)優(yōu)化一些舊的無法重新 編譯的可執(zhí)行文件,以提高其執(zhí)行效率。我們將這類進(jìn)程虛擬機(jī)稱為“動(dòng)態(tài)二進(jìn) 制優(yōu)化器”。 動(dòng)態(tài)二進(jìn)制優(yōu)化器使用翻譯執(zhí)行過程中收集的profile信息,在運(yùn)行時(shí)對二進(jìn)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功