亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        虛擬機(jī)CPU平臺(tái)體系結(jié)構(gòu)與內(nèi)存機(jī)制研究

        2013-12-31 00:00:00石林

        摘 要:本文對(duì)虛擬機(jī)的體系結(jié)構(gòu)與內(nèi)存機(jī)制進(jìn)行了整體的設(shè)計(jì)與分析,闡述了虛擬機(jī)CPU平臺(tái)的體系結(jié)構(gòu),在明確了運(yùn)行時(shí)系統(tǒng)和應(yīng)用程序級(jí)上的內(nèi)存管理機(jī)制的基礎(chǔ)上,對(duì)動(dòng)態(tài)內(nèi)存管理機(jī)制進(jìn)行了分析與研究,并對(duì)目前主流的虛擬機(jī)內(nèi)存管理技術(shù)進(jìn)行了較深入的分析與研究,選取適合于 XVA 虛擬機(jī)的內(nèi)存管理機(jī)制,并用C語(yǔ)言實(shí)現(xiàn)了一個(gè)基于Windows平臺(tái)的面向科學(xué)計(jì)算的小型虛擬機(jī)軟件系統(tǒng)XVA,是為了給學(xué)生提供一個(gè)虛擬實(shí)驗(yàn)環(huán)境,同時(shí)讓學(xué)生更好的了解、掌握虛擬機(jī)的原理及其基本應(yīng)用。

        關(guān)鍵詞:CPU體系結(jié)構(gòu);內(nèi)存管理技術(shù);XVA虛擬機(jī)

        中圖分類號(hào):TP277

        1 虛擬機(jī)的體系結(jié)構(gòu)的設(shè)計(jì)

        要設(shè)計(jì)XVA虛擬機(jī)的基本執(zhí)行環(huán)境,就必須對(duì)虛擬機(jī)的體系結(jié)構(gòu)進(jìn)行一下整體的分析與設(shè)計(jì),利用資源管理器的技術(shù)對(duì)虛擬機(jī)的體系結(jié)構(gòu)做出組織和規(guī)劃是很方便的。研究XVA虛擬機(jī)CPU環(huán)境平臺(tái)所擁有的基本組成部分和虛擬機(jī)對(duì)這些邏輯部件的管理方法,對(duì)XVA虛擬機(jī)的具體實(shí)現(xiàn)有著十分重要的作用。本文所設(shè)計(jì)的XVA虛擬機(jī)軟件系統(tǒng)的組成結(jié)構(gòu)可以分為以下幾大部分:寄存器組、數(shù)據(jù)堆、虛擬機(jī)運(yùn)行期間的數(shù)據(jù)區(qū)域、數(shù)據(jù)棧、計(jì)算棧、參照棧、過程裝載器系統(tǒng)、本地方法接口、執(zhí)行引擎、本地動(dòng)態(tài)鏈接庫(kù)等。虛擬機(jī)的體系結(jié)構(gòu)具體表示如下圖:

        圖1-1 虛擬機(jī)的體系結(jié)構(gòu)圖

        1.1 CPU體系結(jié)構(gòu)分析

        虛擬機(jī)運(yùn)行期間的數(shù)據(jù)區(qū)域包括虛擬機(jī)的寄存器組和所有棧區(qū)。它是虛擬機(jī)的核心,也就是虛擬機(jī)的內(nèi)存。虛擬機(jī)在運(yùn)行期間會(huì)將所有待保存的程序和數(shù)據(jù)統(tǒng)一分配到幾個(gè)數(shù)據(jù)區(qū)域來(lái)進(jìn)行管理。因?yàn)閮?nèi)存是所有應(yīng)用程序運(yùn)行的基礎(chǔ),因此這幾部分?jǐn)?shù)據(jù)區(qū)域在虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)中有著舉足輕重的作用。其中寄存器組和很多CPU中的寄存器功能是一樣的,主要用來(lái)設(shè)置機(jī)器運(yùn)行期間的狀態(tài)。棧區(qū)包括很多棧,像數(shù)據(jù)棧、數(shù)據(jù)堆、計(jì)算棧、參照棧等等,這些棧都是由許多棧幀組成的,每個(gè)棧幀都代表了不同的運(yùn)行狀態(tài)。當(dāng)應(yīng)用程序執(zhí)行一個(gè)過程調(diào)用時(shí),就是將一個(gè)新的棧幀壓入到棧中的過程,而過程調(diào)用結(jié)束后,這個(gè)棧幀將從棧中彈出并釋放掉。

        在虛擬機(jī)的實(shí)現(xiàn)過程中,過程裝載系統(tǒng)的設(shè)計(jì)有著很重要的作用,它主要負(fù)責(zé)查找應(yīng)用程序并且將應(yīng)用程序裝載到內(nèi)存中去。一般來(lái)說,在設(shè)計(jì)虛擬機(jī)軟件系統(tǒng)的時(shí)候,都會(huì)設(shè)有一個(gè)過程裝載器系統(tǒng),在程序執(zhí)行期間,系統(tǒng)會(huì)根據(jù)給定的調(diào)用過程名來(lái)裝載應(yīng)用程序。

        本地方法接口的定義是當(dāng)一個(gè)進(jìn)程調(diào)用本地程序和數(shù)據(jù)的時(shí)侯,這個(gè)進(jìn)程就基本上擺脫了虛擬機(jī)在結(jié)構(gòu)方面和安全限制方面對(duì)它的限制,這時(shí)這個(gè)進(jìn)程可以使用本地處理器進(jìn)行系統(tǒng)調(diào)用,也可以使用數(shù)據(jù)棧、數(shù)據(jù)堆等進(jìn)行系統(tǒng)調(diào)用,它還可以訪問虛擬機(jī)在運(yùn)行期間的所有數(shù)據(jù)區(qū)域。

        執(zhí)行引擎對(duì)每個(gè)設(shè)計(jì)的虛擬機(jī)軟件系統(tǒng)來(lái)說也是一個(gè)必須有的邏輯部件,它的主要功能是執(zhí)行指令,執(zhí)行那些在過程裝載系統(tǒng)中的指令。在虛擬機(jī)的體系結(jié)構(gòu)中,執(zhí)行引擎的位置很關(guān)鍵,它正處于虛擬機(jī)的中間部位。在定義虛擬機(jī)的規(guī)范中,執(zhí)行引擎的行為是由指令集所決定的。虛擬機(jī)大約支持200多個(gè)字節(jié)碼。每個(gè)字節(jié)碼指令的功能是不一樣的,每條字節(jié)碼指令都要執(zhí)行類似于加減乘除、子程序轉(zhuǎn)移等這樣最基本的運(yùn)算。指令集中指令的組成部分是操作數(shù)和操作符,操作數(shù)是程序執(zhí)行過程中所需的數(shù)據(jù)或參數(shù),操作符具體指定要執(zhí)行什么樣的操作。指令集實(shí)際上就是匯編語(yǔ)言,它的功能和匯編語(yǔ)言是一樣的。

        2 虛擬機(jī)的內(nèi)存管理技術(shù)

        XVA虛擬機(jī)的最基本的設(shè)計(jì)目標(biāo)就是可移植性。為了達(dá)到虛擬機(jī)的可移植性,在程序設(shè)計(jì)過程中考慮通過相關(guān)的軟件來(lái)實(shí)現(xiàn)內(nèi)存保護(hù)機(jī)制。在設(shè)計(jì)XVA虛擬機(jī)時(shí),將XVA可執(zhí)行文件里的數(shù)值編碼設(shè)置為降序格式,之所以這樣做是為了使XVA虛擬機(jī)中的二進(jìn)制代碼能夠在不同的硬件平臺(tái)上運(yùn)行。虛擬機(jī)軟件系統(tǒng)XVA在啟動(dòng)時(shí)首先會(huì)向操作系統(tǒng)申請(qǐng)內(nèi)存分配,然后用分配到的內(nèi)存來(lái)組成一個(gè)人工地址空間。這個(gè)人工地址空間又被分為一個(gè)正文段、一個(gè)堆棧段和一個(gè)數(shù)據(jù)堆段,這三個(gè)內(nèi)存段都是為單個(gè)XVA應(yīng)用程序來(lái)使用的。如下圖所示:

        圖1-2 XVA地址空間圖

        XVA的地址空間是從正文段開始一直到堆棧段的結(jié)束。堆棧段和數(shù)據(jù)堆段的長(zhǎng)度是隨時(shí)變化的,而正文段的長(zhǎng)度在程序開始編譯過程中就已經(jīng)確定下來(lái)了。XVA虛擬機(jī)在實(shí)際啟動(dòng)之前,內(nèi)存段中的地址是不固定的。通過XVA虛擬機(jī)的命令行參數(shù),堆棧和數(shù)據(jù)堆的長(zhǎng)度可以設(shè)置為一個(gè)正值。XVA虛擬機(jī)的內(nèi)存地址空間是從000H 開始,途中經(jīng)過正文段、數(shù)據(jù)堆段,一直到堆棧段的結(jié)束。在這段內(nèi)存地址空間中所有的信息都將在這里進(jìn)行統(tǒng)一組織和管理。在程序執(zhí)行過程中,匯編器對(duì)源程序的處理過程是這樣的,首先將機(jī)器指令裝入到內(nèi)存單元中去,這些程序代碼統(tǒng)一放在內(nèi)存中的低地址空間里,內(nèi)存的剩余空間由用戶隨意進(jìn)行分配。這個(gè)剩余內(nèi)存空間通常被劃分為數(shù)據(jù)堆和堆棧兩個(gè)區(qū)域。堆棧和數(shù)據(jù)堆的長(zhǎng)度一般都是通過XVA虛擬機(jī)的命令行參數(shù)來(lái)設(shè)置的一個(gè)正數(shù),并且它們的長(zhǎng)度在程序執(zhí)行過程中是可變的。在設(shè)計(jì)XVA虛擬機(jī)軟件系統(tǒng)過程時(shí),段寄存器VV和DD就是用來(lái)保存堆棧和數(shù)據(jù)堆的起始地址的。內(nèi)存空間中的代碼段的長(zhǎng)度是在程序編譯過程中定下來(lái)的。除此之外,XVA 虛擬機(jī)在執(zhí)行過程中還將對(duì)內(nèi)存引用現(xiàn)象進(jìn)行嚴(yán)格檢查,內(nèi)存引用比位于最低端的正文段還低或者是超出位于內(nèi)存高端的堆棧段,這樣的問題在程序執(zhí)行過程中一經(jīng)出現(xiàn),后果將會(huì)十分嚴(yán)重,因此要堅(jiān)決避免這種情況的發(fā)生。同時(shí) XVA虛擬機(jī)運(yùn)行時(shí)系統(tǒng)對(duì)堆棧段中的內(nèi)存分配也會(huì)進(jìn)行嚴(yán)格檢查,既確保它不會(huì)溢出棧頂和數(shù)據(jù)堆中。之所以制定這樣幾條嚴(yán)謹(jǐn)?shù)姆雷o(hù)措施是為了是防止任何一個(gè)可能出錯(cuò)的環(huán)節(jié)一旦出現(xiàn)異常對(duì)XVA運(yùn)行時(shí)系統(tǒng)造成的破壞性的損壞。在設(shè)計(jì)XVA虛擬機(jī)運(yùn)行時(shí)系統(tǒng)時(shí),它的內(nèi)存總量也就是說堆棧、數(shù)據(jù)堆以及正文段的內(nèi)存總和是從開始時(shí)就確定下來(lái)的,這樣做的目的就是為了保護(hù)宿主操作系統(tǒng)。為了防止系統(tǒng)崩潰,XVA應(yīng)用程序的動(dòng)態(tài)內(nèi)存分配請(qǐng)求一般不再向宿主系統(tǒng)申請(qǐng),如果要想申請(qǐng)額外地址空間只能向數(shù)據(jù)堆請(qǐng)求分配。通常為了保存程序的返回地址,要顯式地設(shè)定堆棧區(qū),將堆棧指針 SI初始化并設(shè)置在高端內(nèi)存區(qū),這樣做有利于程序正常、準(zhǔn)確的運(yùn)行。

        對(duì)于有很多層嵌套的應(yīng)用程序來(lái)說,有時(shí)一些破壞性的代碼會(huì)闖進(jìn)來(lái)。也就是說堆棧很可能會(huì)導(dǎo)致程序的不正常運(yùn)行以致發(fā)生異常錯(cuò)誤。其實(shí)對(duì)數(shù)據(jù)堆的管理就是虛擬機(jī)的動(dòng)態(tài)內(nèi)存分配問題。綜上,本文設(shè)計(jì)的虛擬機(jī)軟件系統(tǒng)XVA是采用了一種基于順序匹配算法的最先匹配算法的顯示內(nèi)存管理技術(shù)。

        參考文獻(xiàn):

        [1]Bill Blunden著,楊濤等譯.虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)——C/C++[M].機(jī)械工業(yè)出版社,2003,98.

        [2]朱成光.棧式虛擬機(jī)的開發(fā)運(yùn)行平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].西北工業(yè)大學(xué)碩士學(xué)位論文,2007.

        [3]趙旭澤.虛擬機(jī)平臺(tái)的設(shè)計(jì)與關(guān)鍵模塊的實(shí)現(xiàn)[D].沈陽(yáng)理工大學(xué)碩士學(xué)位論文,2011.

        [4]林巧民.虛擬機(jī)相關(guān)技術(shù)研究及實(shí)現(xiàn)[D].河海大學(xué)碩士學(xué)位論文,2004.

        [5]廖健.基于虛擬機(jī)的存儲(chǔ)過程設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué)碩士學(xué)位論文,2004.

        午夜成人精品福利网站在线观看| 蜜桃高清视频在线看免费1| 美腿丝袜诱惑一区二区| 农村欧美丰满熟妇xxxx| 国产日韩亚洲欧洲一区二区三区| 亚洲伊人久久综合精品| 麻豆久久91精品国产| 五月丁香综合激情六月久久| 久久精品岛国av一区二区无码| 免费人人av看| 人妻少妇精品视中文字幕免费| 一区二区三区中文字幕| 欧美日本日韩aⅴ在线视频| 青青草免费激情自拍视频| 日韩女同在线免费观看| 国内精品伊人久久久久网站| 欧美va亚洲va在线观看| 日韩精品有码在线视频| 国产精品三区四区亚洲av| 成人性生交大片免费| 国产无线乱码一区二三区| 免费啪啪av人妻一区二区| 亚洲中文字幕舔尻av网站| 精品国产人成亚洲区| 色欧美与xxxxx| 精品久久一区二区三区av制服| 97精品人人妻人人| 婷婷开心深爱五月天播播| 国产人妖赵恩静在线视频| 蜜臀av一区二区三区免费观看 | 日本无码欧美一区精品久久 | 国产综合无码一区二区辣椒| 精品四虎免费观看国产高清| 天堂av一区二区麻豆| 亚洲av中文无码字幕色本草| 免费a级毛片无码a| 中文亚洲成a人片在线观看| 国产成人高清在线观看视频 | 欧美成人精品第一区二区三区| 成人国产在线播放自拍| 亚洲精品一品区二品区三区|