QEMU虛擬機的移植和優(yōu)化
《QEMU虛擬機的移植和優(yōu)化》由會員分享,可在線閱讀,更多相關《QEMU虛擬機的移植和優(yōu)化(122頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、QEMU虛擬機的移植和優(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、 浙江大學碩士學位淪義 摘要 摘要 近年來,虛擬機技術再度成為學術界和工業(yè)界的熱點話題。虛擬機技術在云 計算、高可用服務、安全等很多領域得到了廣泛的應用。在嵌入式開發(fā)中,通過 在PC機或者服務器上運行嵌入式體系結(jié)構(gòu)的虛擬機,也可以為嵌入式操作系統(tǒng)、 應用程序的開發(fā)和測試提供極大的便利。本文在分析各種不同類型的虛擬機及其 典型代表的基礎上,選擇了QEMU作為在IA-32體系Pc機上實
6、現(xiàn)csky嵌入式體 系結(jié)構(gòu)虛擬機的實驗平臺。 本文的主要貢獻為:首先,深入分析了QEMU用戶模式和系統(tǒng)模式的內(nèi)部實 現(xiàn)機制。介紹了將QEMU的兩種模式移植到csky體系結(jié)構(gòu)時遇到的問題及相應的 解決方案,提出了一系列QEMU前端移植的策略。然后,我們嘗試對QEMU的寄存 器分配機制進行改進,提出并實現(xiàn)了基于“最小交叉數(shù)”的寄存器分配算法,實 驗數(shù)據(jù)表明優(yōu)化寄存器分配機制確實可以一定程度上提高系統(tǒng)性能。最后,我們 對QEMU的調(diào)試功能進行了增強。目前QEMU的調(diào)試模塊在實現(xiàn)斷點和單步功能時 需要頻繁的清空翻譯塊緩沖,這可能導
7、致調(diào)試時較差的用戶體驗。本文提出了使 用獨立的解釋執(zhí)行模塊支持單步,以及運行時判斷斷點狀態(tài)的翻譯方案,使調(diào)試 過程中不再需要清空翻譯塊緩沖,且最小化了需要重新翻譯的翻譯塊數(shù)量。另外 本文還通過實現(xiàn)一種新的子進程調(diào)試端口選擇方式,為QEMU用戶模式增加了多 進程程序調(diào)試支持。 QEMU,動態(tài)二進制翻譯,移植,優(yōu)化,調(diào)試 關鍵詞: Abstract 浙江大學碩士學位論文
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 目錄 浙江大學碩士學位論文 目錄 摘要……………………………………………………..i Abstract.........................................................ii 第1章緒論…………………………
23、…………………….1 1.1課題背景…………………………………………….1 1.2本文的工作………………………………….i………1 1.3本文的組織…………………………………………..2 I.4本章小結(jié)…………………………………………….2 第2章虛擬機技術綜述………………………………………3 2.1虛擬機的概念…………………………………………3 2.2虛擬機的分類…………………………………………3 2.3進程虛擬機…………………………………………..5
24、 2.3.1動態(tài)二進制翻譯………………….:……………….6 2.3.2高級語言虛擬機……………………………………7 2.3.3動態(tài)二進制優(yōu)化……………………………………7 2.3.4操作系統(tǒng)級劃分……………………………………7 2.4系統(tǒng)虛擬機…………………………………………..8 2.4.1客戶和宿主同架構(gòu)的系統(tǒng)虛擬機……………………….9 2.4.2客戶和宿主不同架構(gòu)的系統(tǒng)虛擬機…………………….10 2.4.3半虛擬化和預虛擬化……………………………
25、….11 2.5 QEMqJ簡介…………………………………………..13 2.6本章小結(jié)……………………………………………13 第3章移植QEMU用戶模式…………………………………..15 3.I QEMU重要機制分析……………………………………15 3.1.1翻譯和執(zhí)行的基本單位……………………………..15 3.1-2直接跳轉(zhuǎn)鏈………………………………………16 3.1.3微指令和臨時變量…………………………………18
26、 3.2寄存器的剪裁映射…………………………………….2l 3.3用戶模式指令翻譯…………………………………….22 浙江大學碩士學位論文 目錄 3.3.1簡單指令翻譯…………………………………….22 3.3.2復雜指令翻譯和Helper機制…………………………24 3.4其它重要的移植工作…………………………………..26 3.4.1系統(tǒng)調(diào)用映射…………………………………….26
27、 3.4.2模擬Linux信號處理機制……………………………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的實現(xiàn)………………………………………33 4.2.1系統(tǒng)模式下的內(nèi)存訪問……………
28、………………..33 4.2.2地址轉(zhuǎn)換過程的實現(xiàn)……………………………….34 4.2.3 Softmmu對指令翻譯的影響………………………….35 4.3機器管理和外圍設備實現(xiàn)……………………………….36 4.3.1設備和機器管理…………………………………..36 4.3.2實現(xiàn)一個外圍設備…………………………………38 4.4本章小結(jié)……………………………………………41 第5章優(yōu)化QEMU寄存器分配機制……………………………..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的寄存器分配機制…………………………….44 5.2.2當前機制的缺陷…………………………………..45 5.3改進方案及實現(xiàn)………………………………………46 5.3.1基于最小交叉數(shù)的分配機制………………………….46 5.3.2改進分配機制的實現(xiàn)方案……………………………48 5.4本章小結(jié)……………………………………………49 II
31、 錄 浙江大學碩士學位論文 第6章完善QEMU的調(diào)試機制…………………………………50 6.1遠程調(diào)試中的斷點機制…………………………………5l 6.1.1軟件斷點的實現(xiàn)方式……………………………….51 6.1.2 GDB遠程調(diào)試中的斷點機制………………………….52 6.2系統(tǒng)模式的斷點和單步實現(xiàn)……………………………..53 6.2.1翻譯塊的管理……………………………
32、……….53 6.2.2單步功能的實現(xiàn)機制……………………………….54 6.2.3斷點功能的實現(xiàn)機制……………………………….55 6.3改進方案及實現(xiàn)………………………………………57 6.3.1使用獨立的解釋模式實現(xiàn)單步………………………..57 6.3.2基于運行時判斷的斷點支持………………………….58 6.4用戶模式多線程調(diào)試…………………………………..60 6.5本章小結(jié)……………………………………………62 第7章實驗結(jié)果及分析……………
33、………………………..64 7.1用戶模式移植實驗結(jié)果…………………………………64 7.2系統(tǒng)模式移植實驗結(jié)果…………………………………65 7.3寄存器分配機制改進實驗結(jié)果……………………………66 7.4調(diào)試機制改進實驗結(jié)果…………………………………67 7.5本章小結(jié)……………………………………………70 第8章總結(jié)與展望…………………………………………71 參考文獻…………………………………………………72 攻讀碩士學位期間主要的研究成果……………………………..75
34、 致謝…………………………………………………….76 III 浙江大學碩士學位論文 圖【-j錄 圖目錄 圖2.1計算機系統(tǒng)的三個不同抽象層次……………………………………………4 圖2.2虛擬機的分類…………………………………………………………………5 圖2.3動態(tài)二進制翻譯系統(tǒng)的主要執(zhí)行流程……………………………
35、…………6 圖2.4半虛擬化的主要執(zhí)行流程………………………………………………….1l 圖2.5三種不同的同構(gòu)系統(tǒng)虛擬機實現(xiàn)………………………………………….13 圖3.1一個翻譯塊的執(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的設備和機器管理………………………………………………37 圖4.7使用總線連接外圍設備…………………………………………………….38 圖4.8UART的數(shù)據(jù)交互……………………………………………………………40 圖5.1 QEMU寄存器分配機制……
38、……………………………………………….44 圖5.2臨時變量的DEF和USE……………………………………………………46 圖5.3兩個生命期的交叉數(shù)……………………………………………………….47 圖5.4算法增加的數(shù)據(jù)結(jié)構(gòu)………………………………………………………一49 圖6.1調(diào)試模塊和虛擬機的交互………………………………………………….50 圖6.2 gdb的軟件斷點實現(xiàn)機制……………………………………………………5l 圖6.3斷點處理中gdb和QEMU的交互…………………………………………53 圖6.4tbs管
39、理示意圖……………………………………………………………….54 圖6.5 QEMU單步處理流程……………………………………………………….55 圖6.6典型應用場景下的QEMU統(tǒng)計信息………………………………………58 圖6.7改進方案下斷點的處理過程……………………………………………….60 圖6.8 fork之后子進程的處理………………………………………………………61 圖6.9新方案中對fork/vfork的處理………………………………………………62 圖7.1 QEMU用戶模式測
40、試結(jié)果………………………………………………….65 圖7.2 QEMU系統(tǒng)模式測試結(jié)果………………………………………………….66 IV 圖目錄 浙江大學碩士學位論文 圖7.3寄存器分配算法性能對比………………………………………………….67 圖7.4調(diào)試模塊改進前…………………………………………………………….68 圖
41、7.5調(diào)試模塊改進后…………………………………………………………….68 圖7.6測試用例對應的匯編代碼………………………………………………….70 V 浙江大學碩士學位論義 表 』錄 表目錄 表3.1四種臨時變量的比較……………………………………………………….2l
42、表3.2 TCG的移位運算指令……………………………………………………….24 uart需要的函數(shù)………………………………………………….39 表4.1實現(xiàn)csky 表6.1三種單步實現(xiàn)方案的對比………………………………………………….57 vI 浙江大學碩士學位論文 第1章緒論 第1章
43、緒論 1.1課題背景 Csky是核高基重大專項中由杭州中天微公司開發(fā)的一種RISC類型的嵌入式 款高中低搭配的微處理器。目標應用領域為機頂盒、手機以及一些其它的Android 設備。 我們在核高基重大專項的“高性能嵌入式CPU關鍵技術研究”分課題中,為 組成了一個基本完善的開發(fā)工具鏈。但是基于開發(fā)板的調(diào)試測試環(huán)境使用起來有 諸多不便,而我們基于傳統(tǒng)解釋執(zhí)行技術實現(xiàn)的模擬器由于執(zhí)行效率過低無法滿 足使用需求。 基于以上出發(fā)點,我們希望實現(xiàn)一個可以在IA.32體系的PC機或者Itanium 體系
44、的服務器上高效率執(zhí)行的csky體系的模擬器或者虛擬機。從而為我們工具 鏈,操作系統(tǒng)等的開發(fā)工作提供便利,并且可以提供給下游廠商的嵌入式開發(fā)人 員使用。 1.2本文的工作 本文首先對虛擬機技術進行了綜述,列舉了各種不同類型的虛擬機,分析了 它們各自的常用實現(xiàn)技術和典型產(chǎn)品。在其基礎上,我們選擇QEMU作為我們后 續(xù)移植和優(yōu)化工作的實驗平臺。 目前,QEMU的前端已經(jīng)被移植到了Arm,Mips等多種體系結(jié)構(gòu),這從側(cè) 面說明了它具有很好的可移植性。但QEMU官方在文檔方面的工作十分滯后,目 前仍然沒有任何具體的移
45、植參考文檔。其它體系結(jié)構(gòu)的移植實現(xiàn)可以在移植接口 方面提供一定的參考,但如何結(jié)合體系結(jié)構(gòu)的特點實現(xiàn)一個高性能的移植仍然是 新的體系的移植者需要著重考慮的問題。為此,本文結(jié)合csky的移植實踐,研究 浙江大學碩士學位論文 第l章緒論 了QEMU用戶模式和系統(tǒng)模式移植中的重要機制的實現(xiàn)策略。 目前QEMU內(nèi)部實現(xiàn)了基于生命期分析的死代碼消除等優(yōu)化措施,但也僅限 于類似的少數(shù)簡單的優(yōu)化。在性能方面QEMU尚有很多優(yōu)化的空間,例如它的寄 存器
46、分配機制仍然非常簡陋。本文嘗試從寄存器分配機制入手,改進QEMU的寄 存器分配方法,并研究其對系統(tǒng)整體性能的影響。 QEMU提供的調(diào)試功能為應用軟件開發(fā)和內(nèi)核開發(fā)提供了極大的便利,但其 調(diào)試模塊在實現(xiàn)單步執(zhí)行,斷點等功能時頻繁的清空翻譯塊緩沖,嚴重影響了調(diào) 試時的性能表現(xiàn),導致較差的調(diào)試體驗。本文嘗試通過實現(xiàn)新的單步、斷點支持 機制,以徹底去除清空翻譯塊緩沖的操作,并盡量減少需要重新翻譯的翻譯塊數(shù) 目。 1.3本文的組織 論文的組織結(jié)構(gòu)如下: 第二章介紹了虛擬機的概念、種類和實現(xiàn)技術。
47、 第三章分析了QEMU的一些重要機制,介紹了移植QEMU用戶模式的主要 工作及移植策略,并對我們移植到esky體系的用戶模式QEMU進行了測試。 第四章介紹了移植QEMU系統(tǒng)模式時,與用戶模式相比新增的工作以及實現(xiàn) 機制。最后通過測試對比了我們移植的QEMU用戶模式和系統(tǒng)模式的性能表現(xiàn)。 第五章介紹了我們提出的寄存器分配算法的原理、實現(xiàn)和性能表現(xiàn)。 第六章在詳細分析QEMU調(diào)試模塊的斷點、單步機制的基礎上,闡述了我們 的改進方案。最后介紹了如何為用戶模式增加多進程調(diào)試支持。 第七章對全文進行總結(jié),并對進一
48、步的研究工作提出了展望。 1.4本章小結(jié) 本章首先介紹了本文研究的課題背景和出發(fā)點;然后對文章完成的工作進行 了簡要介紹;最后對本文的文章組織進行了說明。 2 浙江大學碩士學位論文 第2章虛擬機技術綜述 第2章虛擬機技術綜述 2.1虛擬機的概念 抽象是現(xiàn)代計算機系統(tǒng)軟硬件設計中最重要的方法之一。通過將整個系統(tǒng)劃 分為多個不同
49、的層次并在每個層次定義良好的接口,使每個子系統(tǒng)或者組件可以 忽略底層的細節(jié),大大的降低了實現(xiàn)的復雜度。 例如,現(xiàn)代操作系統(tǒng)中通常將磁盤驅(qū)動器抽象為文件系統(tǒng),應用程序可以通 過文件系統(tǒng)的接口創(chuàng)建、讀寫文件,而不需要關心磁盤尋址之類的硬件細節(jié)。另 set 一個典型的例子是指令集 IsA,instructionarchitecture ,它抽象了計算機硬 件系統(tǒng)的功能,使硬件機器和操作系統(tǒng)可以由不同的廠商開發(fā),只要兩者都遵守 了ISA規(guī)范,就可以很好的協(xié)同工作。
50、 不幸的是,抽象同時也導致了兼容性的問題:完成同樣功能的子系統(tǒng)或者組 件可能抽象出不同的接口,而使用不同接口的子系統(tǒng)之間是無法交互的。例如, 雖然現(xiàn)代計算機系統(tǒng)本質(zhì)上都是圖靈機,可以完成同樣的功能,但不同的硬件廠 家提供了不同的指令集,導致為一種指令集編譯的操作系統(tǒng)二進制映像無法運行 于實現(xiàn)其它指令集的機器之上。 虛擬化技術是一種應對以上兼容性問題的方法。在一個特定的抽象層次上, 使用一個現(xiàn)有子系統(tǒng)或組件模擬出一個不同的接口。從上層系統(tǒng)的角度看,子系 統(tǒng)表現(xiàn)的像是一個,甚至多個不同與真實子系統(tǒng)不同的子系統(tǒng)。
51、 虛擬化技術可以應用于子系統(tǒng)或者組件 例如,我們可以在一種類型的磁盤 驅(qū)動器上使用文件來模擬另一種不同類型的磁盤驅(qū)動器 。也可以應用于整個計 算機系統(tǒng),此時,我們將虛擬出來的計算機系統(tǒng)稱為“虛擬機”【l】。 2.2虛擬機的分類 圖2.1所示是一個計算機系統(tǒng)中接近硬件的幾個不同的抽象層。ISA位于計 算機硬件系統(tǒng)和軟件系統(tǒng)的分界處,它通常被劃分為兩個部分:只有操作系統(tǒng)可 以使用的特權(quán)級指令 圖2.1中由接口3表示 ,和應用程序、操作系統(tǒng)皆可使用 3 浙
52、江大學碩上學位論文 第2章虛擬機技術綜述 的用戶級指令 圖2.1中由接口4表示 。 interface 提供了一系列的系 binary 應用程序二進制接口 ABI,application 統(tǒng)調(diào)用,使得用戶進程可以通過用戶級指令和系統(tǒng)調(diào)用 圖2.1中由接口2表示 來間接訪問硬件資源和系統(tǒng)的底層服務。操作系統(tǒng)
53、響應系統(tǒng)調(diào)用,在確認用戶進 程有響應的權(quán)限后,代替它執(zhí)行訪問硬件資源的操作。 interface 則在ABI的基 應用程序編程接口 APl,applicationprogramming 礎上提供了更高一級的抽象。高級語言函數(shù)庫提供的接口 圖2.1中由接口l表 示 封裝了系統(tǒng)調(diào)用,使高級語言編寫的應用程序在支持相同API的不同機器上 編譯生成可在該機器上運行的二進制程序。 應用程
54、序 ^、 7\y :程序庫 廠、 API V ABI l 操作系統(tǒng)
55、 ISA i 爪 r入 \/\ / 硬件系統(tǒng) 圖2.1計算機系統(tǒng)的三個不同抽象層次 綜上所述,計算機系統(tǒng)給操作系統(tǒng)和用戶進程提供了不同的接口。從用戶進 程的層次看,操作系統(tǒng)提供了系統(tǒng)調(diào)用、用戶級可用指令和一個獨立的地址空間。 而從更底層的,操作系統(tǒng)的層次來看,底層的硬件特性定義了機器,ISA 包括
56、 用戶級和系統(tǒng)級 則是底層機器的訪問界面。 我們可以從同樣的角度將虛擬機劃分為兩大類,進程虛擬機和系統(tǒng)虛擬機。 其中進程虛擬機用來執(zhí)行一個單獨的用戶進程,它隨著該用戶進程的創(chuàng)建而創(chuàng) 建,并隨著該用戶進程的銷毀而銷毀。進程虛擬機模擬了目標體系結(jié)構(gòu)的系統(tǒng)調(diào) 用接口和用戶級指令接口。而系統(tǒng)虛擬機則提供了一個持久的系統(tǒng)環(huán)境,用戶可 以在其之上運行操作系統(tǒng)和大量的用戶進程,且該虛擬機的狀態(tài)將被保存在虛擬 4 浙江大學碩士學位論文
57、 第2章虛擬機技術綜述 的存儲設備中。運行于虛擬機上的用戶進程或者操作系統(tǒng)稱為客戶 Guest ,而 支持虛擬機運行的底層平臺則稱為宿主 Host ;實現(xiàn)進程虛擬機的虛擬化軟件通 常稱為運行時 RuntimeSoftware ,實現(xiàn)系統(tǒng)虛擬機的虛擬化軟件則被稱為虛擬 mac:hinemonitor 【l】。 機監(jiān)督系統(tǒng) VMM,virtual 除了模擬機器的抽象層次不同之外,客戶和宿主體系結(jié)構(gòu)是否相同也是虛擬 機實現(xiàn)方式的重要決定因素之一。
58、根據(jù)以上兩點,可以將虛擬機的種類劃分為如 圖2.2所示的類型【2J。我們將在后文中對每種不同類型的虛擬機進行介紹。 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虛擬機的分類 2.3進程虛擬機 事實上,可以認為幾乎所有的現(xiàn)代操作系統(tǒng)都提供了進程虛擬機。在多任務 操作系統(tǒng)中,每個用戶進程擁有自己獨立的地址空間、寄存器內(nèi)容和文件句柄等, 并且每個進程都可以通過系統(tǒng)調(diào)用訪問底層的硬件資源,以至于每個進程都可以 認為自己獨立擁有一個完整的計算機系統(tǒng)。 我們可以認為操作系統(tǒng)的多任務功能是一
61、種客戶機和宿主機同架構(gòu)的進程 虛擬機,但是同架構(gòu)的進程虛擬機并不局限于這種形式,我們將介紹另外兩種類 型的同架構(gòu)進程虛擬機――動態(tài)二進制優(yōu)化器和操作系統(tǒng)級劃分技術。此外,本 小節(jié)中我們還將介紹兩種異構(gòu)進程虛擬機一一基于動態(tài)二進制翻譯技術的異構(gòu) 進程虛擬機和高級語言虛擬機。 5 浙江大學碩士學位論義 第2章虛擬機技術綜述 2.3.1動態(tài)二進制翻譯 如圖2.3所示,進程虛擬機中我們需
62、要模擬客戶機的系統(tǒng)調(diào)用和用戶級指令。 實現(xiàn)這種模擬的最直接的方式是解釋執(zhí)行:一個解釋器程序取指、解碼、模擬執(zhí) 行每一條客戶機指令。但是這種方法的執(zhí)行效率非常低,通常需要數(shù)十條宿主機 translation 指令來解釋一條客戶機指令。動態(tài)二進制翻譯 DBT,dynamicbinary 技術相比解釋執(zhí)行可以獲得較好的性能。它以塊為單位將客戶機指令翻譯為宿主 機指令,并緩沖翻譯結(jié)果。因此,在長時間運行的程序中,花在指令翻譯上的時
63、間只占總運行時間的一小部分【3】。相比簡單的解釋執(zhí)行,動態(tài)二進制翻譯大大提 高了性能。采用二進制翻譯技術的VMM的主要執(zhí)行流程如圖2.3所示。 從cacheq-,查找當前pc對應的代碼塊 命巾 未命葉 從當前pc殲始翻譯指令直到F條 跳軾指令,,I 加入cache 跳轉(zhuǎn)F1標確定
64、,且己繹被翻時, 嘗試設置直接跳睪專 執(zhí)行翻譯生成的代碼塊 正常結(jié) 發(fā)生異背 處理異常 更新檸序計數(shù)器 圖2.3動態(tài)二進制翻譯系統(tǒng)的主要執(zhí)行流程 是一個典型的采用動態(tài)二進制翻譯技術的進程虛擬機,它可以在Itaniu
65、m體系架 構(gòu)的操作系統(tǒng)之上執(zhí)行為IA.32 X86 體系結(jié)構(gòu)編譯的可執(zhí)行程序【5】。QEMU用戶 模式則使用動態(tài)二進制翻譯技術實現(xiàn)了一個支持多種不同類型宿主和客戶體系 結(jié)構(gòu)的進程虛擬機。 6 浙江大學碩士學位論文 第2章虛擬機技術綜述 2.3.2高級語言虛擬機 高級語言虛擬機是另一種廣泛使用的進程虛擬機。它并不模擬一個真實的機 器,而是模擬一個專門為高級語言設計的指令集/體系
66、結(jié)構(gòu)。高級語言虛擬機把應 用程序從對底層的操作系統(tǒng)和硬件設備的依賴中解放出來,使得應用程序只依賴 于虛擬機提供的接口。這種方式極大地提高了應用程序的可移植性。 Gough討論了應用虛擬機,并比較了使用該技術的兩個典型系統(tǒng)【6】:Java虛 擬機和微軟.NET。兩者都使用基于堆棧的指令集,且內(nèi)在地支持面向?qū)ο蟆K鼈? 的不同之處在于:Java虛擬機更傾向于模擬,而.NET在設計之時就考慮了JIT技 術。實際應用中,當運行于隊.32體系結(jié)構(gòu)上時,兩者都使用JIT技術。 2.3.3動態(tài)二迸制優(yōu)化 為了減少性能損失,動態(tài)二進制翻譯器通常在運行時執(zhí)行一些代碼優(yōu)化措 施。采用這種技術的虛擬機可以在宿主機上運行相同體系的客戶應用程序,此時 進程虛擬機的目的不再是解決兼容性問題,而是在運行時優(yōu)化一些舊的無法重新 編譯的可執(zhí)行文件,以提高其執(zhí)行效率。我們將這類進程虛擬機稱為“動態(tài)二進 制優(yōu)化器”。 動態(tài)二進制優(yōu)化器使用翻譯執(zhí)行過程中收集的profile信息,在運行時對二進
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會全文PPT
- 2025年寒假安全教育班會全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機關工委2024年度年終黨建工作總結(jié)述職匯報
- 心肺復蘇培訓(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學生活介紹
- XX單位2024年終專題組織生活會理論學習理論學習強黨性凝心聚力建新功
- 2024年XX單位個人述職述廉報告
- 一文解讀2025中央經(jīng)濟工作會議精神(使社會信心有效提振經(jīng)濟明顯回升)
- 2025職業(yè)生涯規(guī)劃報告自我評估職業(yè)探索目標設定發(fā)展策略
- 2024年度XX縣縣委書記個人述職報告及2025年工作計劃
- 寒假計劃中學生寒假計劃安排表(規(guī)劃好寒假的每個階段)
- 中央經(jīng)濟工作會議九大看點學思想強黨性重實踐建新功