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

正文內(nèi)容

kvm分析報告word版(編輯修改稿)

2025-05-11 01:31 本頁面
 

【文章內(nèi)容簡介】 ,頁表雖然確定了線性地址到物理地址的對應(yīng)關(guān)系,但它并不直接控制線性地址到物理地址的轉(zhuǎn)換,這種轉(zhuǎn)換是由TLB控制的。在不會導(dǎo)致地址轉(zhuǎn)換錯誤的前提下,處理器不要求TLB的內(nèi)容一定與頁表保持一致,例如一次進(jìn)程切換后,TLB的內(nèi)容可能都是無效的,但進(jìn)程的頁表卻是有效的,此時頁表和TLB是不一致的,以后訪問內(nèi)存時會引發(fā)TLB miss,并通過TLB fill令某個頁表項與某個TLB項保持一致。VTx中可采用一種稱為Virtual TLB(VTLB)的技術(shù)來實現(xiàn)內(nèi)存虛擬化,其思想就源于上述多級頁表與TLB間的交互機制。VM的頁表并不直接控制線性地址到物理地址的轉(zhuǎn)換,即CR3寄存器并不指向VM的頁目錄,而是指向VMM維護的影子頁表(Shadow Page Table),因此線性地址到物理地址的轉(zhuǎn)換是由影子頁表和TLB來控制的,影子頁表和TLB共同構(gòu)成了所謂的Virtual TLB。VM可以任意修改其頁表,而不會導(dǎo)致VM exit,由此可能產(chǎn)生兩種VM頁表與VTLB之間的不一致情況。第一種不一致是指VM的頁表擁有比影子頁表更多的訪問能力,可以利用頁面故障來修補這種不一致性。例如VM頁表有某個線性地址到物理的對應(yīng)關(guān)系而影子頁表中卻沒有,那么VM對該線性地址的訪問將導(dǎo)致頁面故障。VMM可以捕獲該異常,進(jìn)而根據(jù)VM的頁表來修改影子頁表。第二種不一致是指VM的頁表的訪問能力不及影子頁表,那么一定是由于VM修改了自己的頁表,并且把頁表的訪問權(quán)限降低了,例如頁面交換將頁表項的P位置0,但該操作并不會馬上反映到TLB中。此時,VM需要執(zhí)行INVLPG指令或重裝CR3寄存器來刷新TLB,VM在執(zhí)行INVLPG指令或重裝CR3寄存器時將導(dǎo)致VM exit,使VMM有機會根據(jù)VM的頁表來修改影子頁表,從而修補這種不一致性。另外,處理器在進(jìn)行內(nèi)存訪問時會自動修改頁表項的A位或D位。A位在所有級別的頁表項中都存在,但在TLB entry中并不緩存A位,原因是本次訪存操作涉及的各個級別的頁表項都允許本次訪問,才會在TLB中生成一個entry,因此只要TLB中存在一個entry,那么一定已經(jīng)將entry相關(guān)的各級頁表項都訪問過了,各級頁表項的A位都是1。處理器在初次訪問一個頁表項時,將其A位置1,但由軟件負(fù)責(zé)將A位清0。如果軟件將A位由1變成0,它應(yīng)該使用INVLPG指令使對應(yīng)的TLB entry失效。如果不這樣做,那么在訪存時,總是使用TLB中緩存的entry,處理器認(rèn)為頁表項中的A位已經(jīng)是1了,從而不會將A位由0改為1。在軟件看來,好象該頁自將A位置0以來未曾被訪問過,而實際情況并不是這樣。D位僅在最后一級頁表中存在,而且在TLB entry中也緩存D位。當(dāng)首次寫一個頁時,如果TLB entry不存在或其D位為0,則將頁表項中的D位置1,同A位相同,由軟件負(fù)責(zé)將D位置1。如果軟件將PTE的D位由1變成0,應(yīng)該使用INVLPG指令使對應(yīng)的TLB entry失效。如果不這樣做,那么再次寫該頁時,總是優(yōu)先使用緩存的TLB entry,并且TLB entry的D位為1,這時處理器認(rèn)為PTE的D位已經(jīng)是1了,它不會再將其置1。在軟件看來,好象該頁自將D位置0以來未曾被寫過,而實際情況并不是這樣。由于VM進(jìn)行內(nèi)存訪問實際使用的是影子頁表,因此這種修改不能自動反映到客戶頁表中,從而導(dǎo)致客戶頁表和影子頁表的不一致。應(yīng)該有某種機制使VMM得以捕獲處理器對影子頁表的A位和D位的初次修改,并更新VM頁表,從而解決這種不一致性。對于A位,只要VMM不先于VM建立線性地址到物理地址的映射關(guān)系,就可以確保捕獲客戶對內(nèi)存的訪問,進(jìn)而有機會確保影子頁表項和客戶頁表項在A位上的一致。因為,當(dāng)客戶首次訪問某個線性地址時,由于影子頁表中沒有該線性地址到物理地址的對應(yīng)關(guān)系,將導(dǎo)致一次頁面故障,VMM可以捕獲該故障,在影子頁表中建立線性地址到物理地址的對應(yīng)關(guān)系,并將客戶頁表中相應(yīng)項的A位置1。對于D位,VMM在影子頁表中建立線性地址到物理地址間的映射之初,可以將頁置為只讀,這樣當(dāng)VM對該頁進(jìn)行寫操作時,將導(dǎo)致頁面故障,使VMM獲得控制,進(jìn)而有機會確保影子頁表項和VM頁表項在D位上的一致。上面提到,VMM必須能夠滿足以上各種處理器模式下的內(nèi)存虛擬化要求,但由于VMX模式要求處理器必須工作在分頁保護模式下,因此VMM不可能允許客戶軟件將處理器切換到實模式或非分頁保護模式,而只能在分頁保護模式下為客戶軟件模擬出類似實模式或非分頁保護模式的環(huán)境??刹捎靡粋€v86任務(wù)來模擬客戶機所需的實模式環(huán)境。我們知道,v86軟件在執(zhí)行時,其邏輯地址經(jīng)16位分段機制轉(zhuǎn)換為20位線性地址,其后再經(jīng)過分頁機制轉(zhuǎn)換為物理地址。因此,在客戶機引導(dǎo)之初,VMM可以另客戶操作系統(tǒng)的實模式代碼執(zhí)行于一個v86任務(wù)中,并為其構(gòu)造執(zhí)行所需的頁表結(jié)構(gòu),從而接管客戶軟件對物理內(nèi)存訪問??蛻舻姆欠猪摫Wo模式代碼實際上是執(zhí)行在分頁保護模式之下,只不過通過影子CR0等機制使客戶察覺不到而已??蛻暨壿嫷刂方?jīng)32位分段機制轉(zhuǎn)換后為32位線性地址,而后經(jīng)VMM構(gòu)造的頁表轉(zhuǎn)換為物理地址,從而避免了客戶軟件對物理內(nèi)存的直接控制。. 基于EPT的內(nèi)存虛擬化基于VTLB進(jìn)行內(nèi)存虛擬化時,因為客戶在讀寫CR執(zhí)行INVLPG指令或客戶頁表不完整等情況下均會導(dǎo)致VM exit,這導(dǎo)致了內(nèi)存虛擬化效率很低。較新的Intel處理器中引入了EPT(Extended Page Table)技術(shù),用于提高內(nèi)存虛擬化的效率。EPT引入了額外的一套頁表結(jié)構(gòu),后者定義了客戶物理地址到主機物理地址之間的映射關(guān)系,所有的客戶物理地址(如CR3給出的頁目錄基址、PDE給出的頁表基址、PTE給出的頁基址等)須經(jīng)由EPT頁表結(jié)構(gòu)轉(zhuǎn)換后用于訪存。EPT由VMM控制,并且僅在處理器工作于非根模式時才參與地址轉(zhuǎn)換。采用EPT后,客戶在讀寫CR3和執(zhí)行INVLPG指令時不會導(dǎo)致VM exit,并且由于客戶頁表結(jié)構(gòu)自身導(dǎo)致的頁故障也不會導(dǎo)致VM exit,因此極大地提高了內(nèi)存虛擬化的效率,簡化了內(nèi)存虛擬化的實現(xiàn)。. VPID. KVM實現(xiàn). 客戶物理內(nèi)存管理每個虛擬機都需要擁有一定數(shù)量的物理內(nèi)存。物理內(nèi)存是寶貴的資源,為了提高物理內(nèi)存的利用率,也為了在一臺計算機上運行盡可能多的虛擬機,不能將一塊物理內(nèi)存固定劃分給某個虛擬機使用,而應(yīng)該采用按需分配的方式。下面簡述KVM的內(nèi)存管理原理。PC機的物理內(nèi)存通常是不連續(xù)的,例如地址0xA0000至0xFFFFF、0xE0000000至0xFFFFFFFF等通常留給BIOS ROM和MMIO而不是物理內(nèi)存。設(shè)虛擬機包括n塊物理內(nèi)存,分別記做P1, P2, …, Pn,每塊物理內(nèi)存的起始地址分別記做PB1, PB2, …, PBn,每塊物理內(nèi)存的大小分別為PS1, PS2, …, PSn。在虛擬機創(chuàng)建之初,Qemu使用malloc()從其進(jìn)程地址空間中申請了一塊與虛擬機的物理內(nèi)存大小相等的區(qū)域,設(shè)該區(qū)域的基地址為B。接下來,Qemu根據(jù)虛擬機的物理內(nèi)存布局,將該區(qū)域劃分
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1