




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第十四章 保護(hù)模式及其編程保護(hù)虛擬地址模式(簡稱保護(hù)模式)32位的寄存器可用、可尋址4GB的物理地址空間邏輯物理地址轉(zhuǎn)換過程包含兩級:先分段再分頁。(注:分頁過程是可選的)為實現(xiàn)虛擬存儲器提供了硬件支持支持多任務(wù),能夠快速地進(jìn)行任務(wù)切換和保護(hù)任務(wù)環(huán)境4個特權(quán)級和完善的特權(quán)檢查機(jī)制,對所有的內(nèi)存和I/O訪問操作都進(jìn)行嚴(yán)格檢查,能夠屏蔽普通程序?qū)ο到y(tǒng)、硬件和中斷等資源的直接訪問。不同的特權(quán)級下有不同的指令系統(tǒng)設(shè)置CR0的PE位為1可使系統(tǒng)進(jìn)入保護(hù)模式114.1保護(hù)模式下的的存貯管理設(shè)置CR0的PG位可以開啟(1)和關(guān)閉(1) 分頁機(jī)制保護(hù)模式中的邏輯地址(虛擬地址)由16位的選擇子和32位的偏移量
2、兩部分組成。選擇子放在段地址寄存器中,用來指定一個段描述符選擇子偏移量分段機(jī)制線性地址物理地址分頁機(jī)制虛擬地址15 031 02分段機(jī)制實現(xiàn)了虛擬地址到線性地址的轉(zhuǎn)換程序員在編寫程序時,會定義數(shù)據(jù)段、代碼段等多個邏輯段,分段管理機(jī)制就是用于管理這些段,并將二維的虛擬地址轉(zhuǎn)化成一維的線性地址。段由 段描述符 來定義,其中存放了關(guān)于段的三個參數(shù):(1)段基址 (Base, 32位) (2)段界限(Limit, 20位) (3)段的屬性(讀/寫/執(zhí)行,特權(quán)級等)(12位)段描述符存放在描述符表中,選擇子就是用來指定某個特定描述符的關(guān)于描述符表的索引14.1.1分段管理3段選擇子與存儲段描述符索引值(
3、13位)TI(1)RPL(2)選擇子的格式:(一般放在段寄存器中)76543210Base(3124AttributeBase(230)Limit(150)7654321076543210GD0AVLLimit(1916)PDPLDTTYPE描述符的格式:A4描述符表描述符可用于描述多種對象:存儲段、任務(wù)狀態(tài)段、調(diào)用門、任務(wù)門、中斷門、陷阱門和LDT。為了便于組織管理,80386把描述符組織成線性表。由描述符組成的線性表稱為描述符表。每個描述符表本身形成一個特殊的內(nèi)存數(shù)據(jù)段。這樣的特殊數(shù)據(jù)段最多包含8192個描述符。該段由操作系統(tǒng)維護(hù)、并由處理器中的存儲管理單元硬件(MMU)訪問。在80386
4、中有三種類型的描述符表:全局描述符表GDT、局部描述符表LDT 和 中斷描述符表IDT。在整個系統(tǒng)中,全局描述符表GDT和中斷描述符表IDT只有一張,局部描述符表可以有若干張,每個任務(wù)有一張。 5GDT和LDTGDT含有每一個任務(wù)都可能訪問的描述符,通常包含操作系統(tǒng)所使用的代碼段、數(shù)據(jù)段和堆棧段的描述符,也包含多種特殊描述符,如LDT描述符。在任務(wù)切換時,并不切換GDT。通過GDT可以使各任務(wù)都需要的段能夠被共享。每個任務(wù)的局部描述符表LDT含有該任務(wù)自己的代碼段、數(shù)據(jù)段和堆棧段的描述符,也包含該任務(wù)所使用的一些門描述符,如任務(wù)門和調(diào)用門描述符等。隨著任務(wù)的切換,系統(tǒng)當(dāng)前的局部描述符表LDT也
5、隨之切換。通過LDT可以使各個任務(wù)私有的各個段與其它任務(wù)相隔離,從而達(dá)到受保護(hù)的目的。選擇子的TI位為0表示它所訪問的描述符在GDT中,為1表示描述符在LDT中。6GDT和LDT7GDTR、LDTRGDT和IDT的基地址分別存放在GDTR和IDTR中,而各個LDT的基地址存放在GDT的LDT描述符中。LDTR是當(dāng)前所使用的LDT描述符的選擇子。GDTR和IDTR長48位,高32位為基地址,低16位為界限。LDTR類似于段寄存器,存儲的是當(dāng)前所使用的LDT表的LDT描述符的選擇子。任務(wù)狀態(tài)段寄存器TR包含指示描述當(dāng)前任務(wù)的任務(wù)狀態(tài)段的描述符選擇子,從而規(guī)定了當(dāng)前任務(wù)的狀態(tài)段。8虛擬線性地址轉(zhuǎn)換過
6、程基本過程:通過虛擬地址中的選擇子在描述符表中找到相應(yīng)的段描述符,取出其中的32位段基地址,該基地址加上虛擬地址中偏移量就形成了線性地址。當(dāng)然,在相加之前要根據(jù)描述符中的Limit字段判斷一下該偏移量是否越界。選擇子偏移地址段基址段界限段屬性+虛擬地址從GDT或LDT中得到的段描述符線性地址9例:MOV EAX, DS : EDX設(shè)描述符表的基地址存放在GDTR中,則轉(zhuǎn)換結(jié)果為: (GDTRDS8).Base + EDX注:A表示取A所指向的內(nèi)存單元的內(nèi)容10分頁機(jī)制在分段機(jī)制之后進(jìn)行操作,以完成線性地址到物理地址的轉(zhuǎn)換過程。保護(hù)模式下,CR0中的PG位控制分頁管理機(jī)制是否生效。分頁機(jī)制把線性
7、地址空間和物理地址空間分別劃分為大小相同的塊。這樣的塊稱之為頁。通過在線性地址空間的頁與物理地址空間的頁之間建立的映射,分頁機(jī)制實現(xiàn)線性地址到物理地址的轉(zhuǎn)換。在80386中,頁的大小固定為4K字節(jié),每一頁的邊界地址必須是4K的倍數(shù)。因此,4G大小的地址空間被劃分為1M個頁,每個頁的起始地址用20位記錄。線性地址的低12位經(jīng)過分頁機(jī)制直接作為物理地址的低12位使用。頁映射函數(shù)可看成是把線性地址的高20位轉(zhuǎn)換為對應(yīng)物理地址高20位的轉(zhuǎn)換函數(shù)。14.1.2 分頁管理11兩級頁表結(jié)構(gòu)頁映射表的第一級稱為頁目錄表,存儲在一個4K字節(jié)的物理頁中。頁目錄表共有1K個表項,其中,每個表項為4字節(jié)長,包含對應(yīng)第
8、二級表所在物理地址空間頁的基地址。頁映射表的第二級稱為頁表,每張頁表也安排在一個4K字節(jié)的頁中。每張頁表都有1K個表項,每個表項為4字節(jié)長,包含對應(yīng)物理地址空間頁的基地址。由于頁目錄表和頁表均由1K個表項組成,所以使用10位的索引就能指定具體表項,即用10位的索引值乘以4加基地址就得到了某個表項的物理地址。任務(wù)切換時,頁目錄表和頁表也要相應(yīng)進(jìn)行切換,使得不同任務(wù)的線性地址空間被映射到不同的物理地址空間中。當(dāng)前頁目錄表的物理基地址存放在CR3寄存器中。12兩級頁表結(jié)構(gòu)13表項格式P位表示該表項是否有效。P=1表項有效;P=0表項無效。在通過頁目錄表和頁表進(jìn)行地址轉(zhuǎn)換過程中,無論在頁目錄表還是在頁
9、表中遇到無效表項,都會引起缺頁異常。處理器在訪問過某個表項之后總是將其A位置1。一般由操作系統(tǒng)將其周期性的刷新為0。處理器在對某個物理頁進(jìn)行過寫操作之后,總是將其所對應(yīng)的頁表中表項的D位置1。U/S和R/W位用于對頁進(jìn)行保護(hù)。14線性地址到物理地址的轉(zhuǎn)換1514.1.2 虛擬存貯器虛擬存儲器是一項硬件和軟件結(jié)合的技術(shù)。存儲管理部件把物理存儲器和輔存儲器看作是一個 整體,即虛擬存貯器。 虛擬存貯器容量可達(dá)64T32位處理器的分段、分頁存貯管理機(jī)制從硬件上 很好地支持了虛擬存貯器的實現(xiàn)。 1614.1.3 保護(hù)機(jī)制為了支持多任務(wù),從80286開始,處理器就具備了保護(hù)機(jī)制。不同任務(wù)之間的保護(hù)和共享
10、通過把每個任務(wù)放置在不同的虛擬地址空間的方法,來達(dá)到應(yīng)用程序之間保護(hù)的目的。 2同一任務(wù)內(nèi)的段級保護(hù) 在段級保護(hù)中使用了三種形式的特權(quán)管理: 當(dāng)前特權(quán)級(CPL) 描述符特權(quán)級(DPL) 請求特權(quán)級(RPL)。3同一任務(wù)內(nèi)的頁級保護(hù) 頁目錄表和頁表的表項中的保護(hù)屬性位R/W和U/S就是用于對頁進(jìn)行保護(hù)。1714.2 保護(hù)模式下的程序調(diào)用和轉(zhuǎn)移保護(hù)模式下的調(diào)用和轉(zhuǎn)移可分為兩大類:同一任務(wù)內(nèi)的調(diào)用和轉(zhuǎn)移任務(wù)間的調(diào)用和轉(zhuǎn)移(任務(wù)切換)。同一任務(wù)內(nèi)的調(diào)用和轉(zhuǎn)移又可分為:段內(nèi)調(diào)用和轉(zhuǎn)移、段間調(diào)用和轉(zhuǎn)移。 14.2.1 系統(tǒng)段描述符、門描述符和任務(wù)狀態(tài)段每個任務(wù)都有自己的局部描述符表LDT。另外每個任務(wù)還
11、有一個任務(wù)狀態(tài)段TSS,用于保存任務(wù)的有關(guān)信息。LDT和TSS作為系統(tǒng)的一個特殊段,由系統(tǒng)段描述符描述,描述符存放在GDT中。18段界限(位70)段界限(位158)段基址(位70)段基址(位158)段基址(位2316)段屬性段屬性段界限(位1916)段基址(位3124)0123456707系統(tǒng)段描述符的格式位7PDPLDT=0TYPE位6位5位4位3位2位1第5字節(jié)位0位7GAVL段界限(位1916)位6位5位4位3位2位1第6字節(jié)位00 系統(tǒng)段描述符的屬性 系統(tǒng)段描述符19偏移地址(位70)偏移地址(位158)選擇子(位70)選擇子(位158)門屬性門屬性 偏移地址(位2316)雙字計數(shù)偏移
12、地址(位3124)0123456707門描述符的格式第4字節(jié)位7PDPLDT=0TYPE位6位5位4位3位2位1位0位70雙字計數(shù)位6位5位4位3位2位1第5字節(jié)位0 門描述符的屬性00 門描述符20 門描述符并不描述某種內(nèi)存段,而是描述控制轉(zhuǎn)移的入口點。通過這種門,可實現(xiàn)任務(wù)內(nèi)特權(quán)級的變換和任務(wù)間的切換。 門描述符又可分為:任務(wù)門、調(diào)用門、中斷門和陷阱門。調(diào)用門 描述某個子程序的入口,通過調(diào)用門可實現(xiàn)任務(wù)內(nèi)從低特權(quán)級變換到高特權(quán)級。任務(wù)門指示任務(wù) 通過任務(wù)門可實現(xiàn)任務(wù)間切換。中斷門和陷阱門 描述中斷/異常處理程序的入口點。21 任務(wù)狀態(tài)段任務(wù)狀態(tài)段(Task State Segment)是保
13、存一個任務(wù)重要信息的特殊段。當(dāng)前任務(wù)的任務(wù)狀態(tài)段可由任務(wù)狀態(tài)段寄存器TR尋址。TSS在任務(wù)切換過程中起著重要作用,通過它實現(xiàn)任務(wù)的掛起和恢復(fù)。任務(wù)切換是指,掛起當(dāng)前正在執(zhí)行的任務(wù),恢復(fù)或啟動另一任務(wù)的執(zhí)行。TSS的基本格式由104字節(jié)組成,分為鏈接字段、內(nèi)層堆棧指針、地址映射寄存器、寄存器保存和其它字段等五個區(qū)域。 2214.2.2 任務(wù)內(nèi)的段間轉(zhuǎn)移1 任務(wù)內(nèi)無特權(quán)級變換的轉(zhuǎn)移JMP和CALL分為段間直接轉(zhuǎn)移和段間間接轉(zhuǎn)移兩類。段間直接轉(zhuǎn)移:指令JMP和CALL在指令中直接含有目標(biāo)地址指針。例:JMP XX:YY、 CALL XX:YY其中XX是16位代碼段選擇子,YY是偏移地址。利用段間直接
14、轉(zhuǎn)移指令JMP或調(diào)用指令CALL只能進(jìn)行任務(wù)內(nèi)無特權(quán)級變換的轉(zhuǎn)移。 23 任務(wù)內(nèi)無特權(quán)級變換的轉(zhuǎn)移(1)處理器在執(zhí)行段間直接轉(zhuǎn)移指令時,首先通過段選擇子從全局描述符表或局部描述符表中取得目標(biāo)代碼段描述符,裝載到CS高速緩沖寄存器;(2)然后將段選擇子裝入CS段寄存器,偏移地址裝入指令指針寄存器EIP,CPL存入CS內(nèi)選擇子的RPL字段;(3)如果是執(zhí)行CALL指令,還需將返回地址指針壓棧,從而完成向目標(biāo)代碼段的轉(zhuǎn)移。242任務(wù)內(nèi)特權(quán)級變換的轉(zhuǎn)移段間間接轉(zhuǎn)移:指令JMP和CALL在指令中含有指向包含目標(biāo)地址指針的門描述符或TSS描述符的指針。例 JMP XX:YY、CALL XX:YY其中XX不
15、再是16位代碼段選擇子,而是一個門選擇子;偏移地址YY沒有使用。在同一任務(wù)內(nèi),實現(xiàn)特權(quán)級從低到高變換的方法是利用CALL指令,通過調(diào)用門進(jìn)行轉(zhuǎn)移。實現(xiàn)特權(quán)級從高到低變換的方法是利用RET指令。JMP指令只能實現(xiàn)無特權(quán)級變換的轉(zhuǎn)移,不能實現(xiàn)任務(wù)內(nèi)不同特權(quán)級的變換。25CALL 選擇子:偏移地址調(diào)用門選擇子:偏移地址目標(biāo)代碼段描述符段基址子程序RET目標(biāo)代碼段GDT/LDT使用調(diào)用門的轉(zhuǎn)移過程2614.2.3 任務(wù)間的轉(zhuǎn)移利用段間轉(zhuǎn)移指令JMP或者段間調(diào)用指令CALL,通過任務(wù)門或直接通過任務(wù)狀態(tài)段,可以進(jìn)行任務(wù)間的轉(zhuǎn)移,即任務(wù)切換。在中斷/異?;蛘邎?zhí)行IRET指令時也可能發(fā)生任務(wù)切換。因為RET
16、指令的目標(biāo)地址只能使用代碼段描述符,所以,不能通過RET指令實現(xiàn)任務(wù)切換。2780386把外部中斷稱為“中斷”,把內(nèi)部中斷稱為“異?!?。中斷又可分為可屏蔽中斷和不可屏蔽中斷, 異常又分為故障、陷阱和中止。向量是通過中斷門或者陷阱門給出的,中斷門或者陷阱門位于中斷描述符表IDT中,中斷描述表地址是由IDTR(中斷描述表寄存器)給出。14.3 保護(hù)模式下的的中斷與異常28 中斷描述表IDT整個系統(tǒng)只有一個中斷描述符表IDT,最大長度是2K。中斷描述符表寄存器IDTR指示IDT在內(nèi)存中的位置,IDTR是48位的寄存器,其中高32位為基址,低16位為界限。中斷描述符表IDT所含的描述符只能是中斷門、陷
17、阱門和任務(wù)門。在保護(hù)模式下,CPU只有通過中斷門、陷阱門或任務(wù)門才能轉(zhuǎn)移到對應(yīng)的中斷或異常處理程序。門描述符是8個字節(jié)長,因此中斷或異常產(chǎn)生時,CPU以中斷號乘8從IDT中取得對應(yīng)的門描述符,分解出選擇子、偏移量和描述符屬性類型,并進(jìn)行有關(guān)檢查。最后,根據(jù)門描述符類型是中斷門、陷阱門還是任務(wù)門,分情況轉(zhuǎn)入中斷或異常處理程序。2914.4 保護(hù)模式下的的輸入/輸出保護(hù)80386采用I/O特權(quán)級IPOL和I/O許可位圖的方法來控制輸入/輸出,實現(xiàn)輸入/輸出保護(hù)。 IOPL存放在標(biāo)志寄存器EFLAG中,它規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問I/O空間中所有地址的最低特權(quán)級。只有當(dāng)CPL IOP
18、L時,如果該指令所訪問的I/O地址所對應(yīng)的當(dāng)前任務(wù)的I/O許可位為0,則80386允許該I/O操作,如果I/O許可位為1,則禁止該I/O操作。IOPL的設(shè)置和I/O許可位圖的創(chuàng)建只能由操作系統(tǒng)進(jìn)行。3014.5 操作系統(tǒng)類指令14.5.1 實模式和任何特權(quán)級下可執(zhí)行的指令(1)存儲全局描述符表寄存器指令格式:SGDT QWORD PTR 目標(biāo)操作數(shù)說明:目標(biāo)操作數(shù)是48位(6字節(jié))的存儲器操作數(shù)。功能: 把全局描述符表寄存器GDTR的內(nèi)容存儲到目標(biāo)操作數(shù)。 (2)存儲中斷描述符表寄存器指令格式:SIDT QWORD PTR目標(biāo)操作數(shù)說明:目標(biāo)操作數(shù)是48位(6字節(jié))的存儲器操作數(shù)。功能: 把中斷描述符表寄存器IDTR的內(nèi)容存儲到目標(biāo)操作數(shù)。 3114.5.2 實模式和在特權(quán)級0下可執(zhí)行的指令(1)裝載全局描述符表寄存器指令格式:LGDT QWORD PTR 源操作數(shù)說明:源操作數(shù)是48位(6字節(jié))的內(nèi)存操作數(shù)。功能:把源操作數(shù)裝入到全局描述符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑材料采購合同模板
- 2025年租賃合同主體變更的具體規(guī)定
- 2025電視臺廣告合作合同模板
- 2025深圳室內(nèi)裝修合同
- 2025沒有合同被辭退應(yīng)該如何計算補(bǔ)償
- 關(guān)于房屋買賣合同
- 2025年簽訂“租賃合同”應(yīng)注意哪些事項綜合指南
- 藥材買賣合同范文買賣
- 會議場所租賃合同樣本2025
- 技能培訓(xùn)專題飛機(jī)場案例分析2
- GB/T 26354-2025旅游信息咨詢服務(wù)
- 2025年國家國防科技工業(yè)局軍工項目審核中心招聘筆試參考題庫附帶答案詳解
- 靜療完整課件
- 全套課件公共部門人力資源管理
- 科學(xué)素養(yǎng)大賽題庫及答案(500題)
- 2023年綏濱縣社區(qū)工作者招聘考試筆試題庫及答案解析
- 雙心治療課件
- 廣東省肇慶市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 緩和醫(yī)療精品課件
- 兒童功能性獨立評定量表(WeeFIM)
- 工程(產(chǎn)品)交付后顧客滿意度調(diào)查表
評論
0/150
提交評論