freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

虛擬機(jī)淺析word版(已修改)

2025-05-23 17:36 本頁面
 

【正文】 虛擬機(jī)淺析 虛擬機(jī)淺析 20210607 10: 36最近抽空翻看了《虛擬機(jī) 系統(tǒng)與進(jìn)程的通用平臺(tái)》一書,又在網(wǎng)上翻了一些關(guān)于虛擬機(jī)的文章,受益非淺,略記一些自己的理解。 計(jì)算機(jī)系統(tǒng)由上自下主要可以分為三個(gè)層次:應(yīng)用程序 操作系統(tǒng) 硬件平臺(tái)。由此,就出現(xiàn)了兩種主要的虛擬機(jī):進(jìn)程虛擬機(jī)和系統(tǒng)虛擬機(jī)。進(jìn)程虛擬機(jī)為一個(gè)應(yīng)用程序提供虛擬的運(yùn)行環(huán)境,它需要對操作系統(tǒng)和硬件平臺(tái) (或二者之一 )作虛擬;而系統(tǒng)虛擬機(jī)則為操作系統(tǒng)提供虛擬環(huán)境,主要是對硬件平臺(tái)的虛擬。 進(jìn)程虛擬機(jī) 進(jìn)程虛擬機(jī)對操作系統(tǒng)和硬件平臺(tái)進(jìn)行虛擬,以滿足應(yīng)用程序的運(yùn)行要求。進(jìn)程虛擬機(jī)一般作為主機(jī)上的一個(gè)進(jìn)程來運(yùn)行,這個(gè)進(jìn)程裝載客戶軟件,然后仿真運(yùn)行之。舉例來說,進(jìn)程虛擬機(jī)可以讓 windows 下的軟件在 linux 上運(yùn)行(wine 就是這樣一個(gè)虛擬機(jī),不過它只是對操作系統(tǒng)的虛擬,并不涉及指令集的仿真 )。 進(jìn)程虛擬機(jī)大體上基于如下功能模塊來實(shí)現(xiàn): (摘自《虛擬機(jī)》 ) 進(jìn)程虛擬機(jī)啟動(dòng)以后,加載器將客戶軟件加載到內(nèi)存,并完成相關(guān)的初始化工作,包括對各種信號處理函數(shù)的設(shè)置等。 初始化完成后,客戶軟件的代碼被當(dāng)作數(shù)據(jù),由仿真引擎 讀取,并進(jìn)行解釋或翻譯。 仿真執(zhí)行 仿真引擎讀取到的客戶軟件是一系列的指令集合,這些指令可能需要兩個(gè)層面的仿真: 一、指令集的仿真。如果客戶軟件的指令集與主機(jī)不相同,則需要將其翻譯成主機(jī)的指令集。 比如 X86 下的指令 add%eax,4 可能需要替換成 PPC 下的 addi r4,r4,4。除了指令的變換,寄存器、內(nèi)存地址都需要做相應(yīng)的變換。比如 X86 下的 eax 替換成 PPC 下的 r4。因?yàn)?PPC 的寄存器比 X86 要多很多,這種寄存器的直接替換是可行的。但是如果反過來呢 ?用 X86 來仿真 PPC 的時(shí)候就不能這樣做了,實(shí)在不行 只能將寄存器映射到內(nèi)存上面 (可憐的是內(nèi)存比寄存器要慢很多 )。內(nèi)存地址也是需要變換的,客戶軟件在運(yùn)行的時(shí)候總是認(rèn)為整個(gè)內(nèi)存地址空間都是屬于自己的 (盡管并不是所有地址空間都會(huì)使用 ),但是當(dāng)它在進(jìn)程虛擬機(jī)上面運(yùn)行時(shí),有一部分內(nèi)存空間卻是屬于虛擬機(jī)本身的。進(jìn)程虛擬機(jī)在仿真時(shí)需要對客戶軟件所使用的內(nèi)存地址進(jìn)行映射,使其不與虛擬機(jī)自己使用的內(nèi)存相沖突。簡單的做法是給內(nèi)存地址加一個(gè)基值,而虛擬機(jī)使用的內(nèi)存都小于這個(gè)基值。 另外,像 add 這樣的指令還會(huì)改變條件碼 EFLAGS 寄存器。于是,在仿真完增加 的功能之后,還需要進(jìn) 行一系列的判斷來決定每一個(gè)條件碼是否應(yīng)該被置位 (比如溢出標(biāo)記、零結(jié)果標(biāo)記、等 )。這樣做會(huì)非常的累,所以虛擬機(jī)往往會(huì)采用懶惰的做法:對于每一個(gè)條件碼,記錄下最后一條會(huì)影響到它的指令。而當(dāng)有后續(xù)指令需要關(guān)心某個(gè)條件碼時(shí),再找到這條影響條件碼的指令,判斷這個(gè)條件碼是否應(yīng)該被置位。 二、系統(tǒng)調(diào)用的模擬。如果客戶軟件與主機(jī)使用的不是同一操作系統(tǒng),則需要對系統(tǒng)調(diào)用進(jìn)行模擬。 客戶軟件中的系統(tǒng)調(diào)用代碼將被替換成主機(jī)上的相關(guān)調(diào)用 (也可能不是系統(tǒng)調(diào)用 )。但是有些時(shí)候,系統(tǒng)調(diào)用卻是無法模擬的。比如 linux 下的 fork,在windows 下就難以模擬。 異常也是操作系統(tǒng)模擬的一個(gè)部分,比如進(jìn)程虛擬機(jī)收到一個(gè)信號,可能需要報(bào)告給客戶軟件。要實(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1