微型計算機技術與匯編語言程序設計:ch12-2保護模式存儲管理_第1頁
微型計算機技術與匯編語言程序設計:ch12-2保護模式存儲管理_第2頁
微型計算機技術與匯編語言程序設計:ch12-2保護模式存儲管理_第3頁
微型計算機技術與匯編語言程序設計:ch12-2保護模式存儲管理_第4頁
微型計算機技術與匯編語言程序設計:ch12-2保護模式存儲管理_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、HYPer 保護模式存儲管理HYPer目錄一、虛擬存儲器及工作原理二、分段存儲管理三、段選擇符四、段描述符五、保護模式相關表六、保護模式下訪問操作與保護機制七、向保護模式的轉(zhuǎn)換八、頁式存儲管理九、段頁式存儲管理十、虛擬8086模式HYPer虛存空間主存空間CacheRCPU分層的存儲器結(jié)構硬件實現(xiàn)分段部件分頁部件OS軟件一、 虛擬存儲器及工作原理HYPer邏輯地址線性地址分段部件分頁部件物理地址段式尋址頁式尋址虛存空間(編程空間)主存空間(虛地址)虛擬存儲器管理虛擬存儲器工作過程HYPerHYPer二、分段存儲管理HYPer虛擬地址和虛擬地址空間段選擇符(16位)偏移量(32位)虛存地址Ind

2、ex(13)TI(1)RPL(2)虛存空間:64T=213+1+32 =246 虛實地址變換(64T4G)段選擇符描述符表描述符(1)段基地址(32)(2)段界限(3)段屬性M(2)段界限(1)段基地址段選擇符(16位)偏移量(32位)虛存地址主存空間(物理空間)物理地址=段基地址(32)+偏移量(32)HYPer段選擇符段描述符程序不可見寄存器(保存段描述符) 選擇符(16位)選擇符(16位)選擇符(16位)選擇符(16位)選擇符(16位)選擇符(16位)基地址界限屬性選擇符(16位)選擇符(16位)基地址界限屬性基地址(32位)界限(20位)基地址(32位)界限(20位)高速緩存描述符CS

3、DSSSESFSGS段寄存器 TRLDTRGDTRIDTR程序不可見區(qū)域系統(tǒng)地址R(保護方式R)控制寄存器:CR0CR3調(diào)試寄存器:DR0DR7模型專用寄存器MSR浮點部件寄存器HYPer三、段選擇符段選擇符:CSDSESSSGFFSTRLDTR段選擇符段描述符HYPer四、段描述符HYPer描述符 和 描述符表HYPer程序段描述符(代碼、數(shù)據(jù)、堆棧)程序段描述符:HYPer系統(tǒng)段描述符(LDT,TSS)LDT、TSS描述符:HYPer系統(tǒng)段描述符(門描述符)門描述符:HYPer門描述符任務門描述符-任務門描述符中的選擇符指向GDT中一個TSS描述符,門中的偏移無意義。任務的入口點保存在TS

4、S中。利用段間轉(zhuǎn)移指令JMP和段間調(diào)用指令CALL,通過任務門可實現(xiàn)任務切換。 調(diào)用門描述符-調(diào)用門描述某個子程序的入口。JMP,CALL指令。中斷門描述符-描述ISR的入口。陷阱門描述符-中斷門和陷阱門描述中斷/異常處理程序的人口點。中斷門和陷阱門內(nèi)的選擇子必須指向代碼段描述符,門內(nèi)的偏移就是對應代碼段的人口點的偏移。中斷門和陷阱門只有在中斷描述符表IDT中才有效。 HYPer五、保護模式相關表GDT-全局描述符表LDT -局部描述符表IDT-中斷描述符表TSS-任務狀態(tài)段HYPer全局描述符表GDT簡圖HYPer局部描述符表LDT簡圖HYPer中斷描述符表IDT簡圖HYPer中斷過程保護模

5、式中斷過程簡圖HYPer任務狀態(tài)段TSS簡圖HYPer從TR到TSSTRTSS描述符TSS關系簡圖HYPer六、保護模式下訪問操作與保護機制3類保護機制:任務間存儲空間的保護;段屬性和界限的保護;特權級保護。3種形式特權管理:當前任務特權級CPL(CS中最低兩位);請求特權級RPL(請求操作的特權級);描述符特權級DPL(目標段的特權級)。保護機制:特權級為P段中的數(shù)據(jù),可以由特權級高于或等于P的段中運行的程序使用(簡:高級可訪問低級數(shù)據(jù));特權級為P代碼段,可以由特權級低于或等于P下的任務調(diào)用(用特殊的方式:CALL,INT) (簡:低級程序可調(diào)用高級程序) ;HYPer六、保護模式下訪問操

6、作與保護機制保護機制:特權級為P段中的數(shù)據(jù),可以由特權級高于或等于P的段中運行的程序使用(簡:高級可訪問低級數(shù)據(jù));特權級為P代碼段,可以由特權級低于或等于P下的任務調(diào)用(用特殊的方式:JMP,CALL,INT) (簡:低級程序可調(diào)用高級一致代碼段) ;數(shù)據(jù)訪問規(guī)則:高低 O(高級者必須能夠監(jiān)視低級者的運行)低高 X (低級者絕不允許窺探高級者的秘密) 代碼轉(zhuǎn)移規(guī)則:高低 X (高級者不應“發(fā)起”低級者的運行)低高 O(低級者可以使用高級者提供的服務,但能夠提供服務的高級者必須位于一致代碼段)HYPer1.數(shù)據(jù)段訪問-過程簡圖HYPer1.數(shù)據(jù)段訪問-合法檢查1.段是否存在(屬性中P位);2.

7、段界限是否正確;3.段選擇符引用的段是否正確(數(shù)據(jù)段或可讀代碼段);4.特權級檢查(高級代碼可訪問低級數(shù)據(jù)段):級別:級(CPL DPL) & (RPLDPL)值(CPL DPL) & (RPLDPL)即值max(CPL,RPL) DPL時可以訪問;以CPL和RPL較小的級進行訪問。*堆棧段規(guī)則:CPLRPLDPL高級代碼段可訪問低級數(shù)據(jù)段HYPer2.任務內(nèi)段間轉(zhuǎn)移1.轉(zhuǎn)移指令 JMP/CALL/INT/RET/IRET, Near類型段內(nèi)轉(zhuǎn)移,F(xiàn)ar類型段間轉(zhuǎn)移; 指令格式如下:JMP 選擇符:偏移CALL 選擇符:偏移INT n2.同一任務內(nèi)的段內(nèi)轉(zhuǎn)移,只檢查段限就行,不檢查特權級;3.

8、同一任務內(nèi)的段間轉(zhuǎn)移,要檢查段限,還要檢查特權級。4.任務內(nèi)段間轉(zhuǎn)移包括:段間直接轉(zhuǎn)移(選擇符代碼段描述符目標代碼段);段間間接轉(zhuǎn)移(選擇符門描述符代碼段描述符目標代碼段)。HYPer段間直接轉(zhuǎn)移段選擇符代碼段描述符目標代碼段HYPer段間直接轉(zhuǎn)移段選擇符代碼段描述符目標代碼段簡圖HYPer特權級檢查:(1)目標是一致代碼段(C=1,共享):級CPL DPL時,可轉(zhuǎn)移,否則異常;轉(zhuǎn)移后CPL不變。 RPL不檢查。用戶可使用內(nèi)核服務代碼。(2)目標是非一致代碼(C0,不共享):級(CPLDPL)&(RPL CPL)時,可轉(zhuǎn)移,否則異常。轉(zhuǎn)移后CPL不變。用戶不可使用內(nèi)核代碼,只是內(nèi)核內(nèi)部代碼間的

9、轉(zhuǎn)移。什么是一致代碼段和非一致代碼段? 段間直接轉(zhuǎn)移HYPer段間間接轉(zhuǎn)移選擇符門描述符代碼段描述符目標代碼段HYPer段間間接轉(zhuǎn)移選擇符門描述符代碼段描述符目標代碼段特權級檢查:(1)訪問調(diào)用門按訪問數(shù)據(jù)段規(guī)則檢查特權:級(CPL DPL1) & (RPL1 DPL1)時,可繼續(xù),否則異常;(2)RPL2清0,最高級;(3)訪問代碼段按代碼段規(guī)則檢查特權:目標是一致代碼(C=1,共享):級CPL DPL時,可轉(zhuǎn)移,否則異常;轉(zhuǎn)移后CPL不變。 RPL2不檢查。適用于JMP和CALL。用戶可使用內(nèi)核服務代碼。目標是非一致代碼(C=0,不共享):JMP指令:CPLDPL時,可轉(zhuǎn)移,否則異常。轉(zhuǎn)移

10、后CPL不變。CALL指令:級CPL DPL時,可轉(zhuǎn)移,否則異常;轉(zhuǎn)移后CPLDPL。*CALL指令,只有 級CPL DPL,非一致代碼時,CPL特權級變高了!。 HYPer堆棧同一任務內(nèi),特權級變化的轉(zhuǎn)移,會引起堆棧的變化;特權級0、1,2的堆棧指針在本任務的TSS中;用CALL指令發(fā)生轉(zhuǎn)移時,新堆棧指針從TSS中取出,原堆棧指針壓入新堆棧。RET指令只返回到小于等于級別CPL的代碼段;從堆棧中恢復斷點CS:EIP;返回后的代碼段選擇符的RPL就是當前CPL,若CPL變化了,則舊的堆棧指針從TSS中彈出。HYPer3.任務切換1.每個任務有一個TSS和LDT;2.TSS描述符在GDT中;3.

11、任務門是門的一種,用于定位TSS描述符;4.選擇不同的TSS描述符就可以實現(xiàn)任務的切換;5.可以用JMP/CALL/INT/IRET實現(xiàn)任務切換;6.任務的切換有兩種:直接任務切換;間接任務切換。任務切換:從執(zhí)行一個任務轉(zhuǎn)移到執(zhí)行另一個任務。HYPer直接任務切換過程:(1)保存當前任務1運行環(huán)境:當前任務1的所有R當前TSS1。(2) 切換:置TSS2描述符.type.D2=1(忙);CR0.D3=1(切換發(fā)生標志);Eflags.D14(NT)=1(嵌套任務內(nèi)層標志);TSS1選擇符保存于TSS2返回鏈中(CALL,INT指令時,JMP不用保存);IRET 彈出TSS1中返回鏈中的選擇符,

12、進行任務切換。(3)設置新任務2運行環(huán)境(4)特權檢查級(CPL DPL2) & (RPL DPL2)時,可切換,否則異常。(5)運行任務2代碼。HYPer間接任務切換(4)特權檢查級(CPL DPL) & (RPL DPL)時,可切換,否則異常。HYPer七.向保護模式的轉(zhuǎn)換過程HYPer八、頁式存儲管理 內(nèi)存分頁是80386微處理器開始引入的一種重要技術。CPU內(nèi)有分頁部件??梢灾徊捎枚问綄ぶ?,也可以只采用頁式尋址,也可以采用段頁式尋址。邏輯地址線性地址分段部件分頁部件物理地址段式尋址頁式尋址Linux中,邏輯地址=線性地址64TB4GBCR0.PE=1CR0.PG=1頁目錄(10)頁表(

13、10)偏移(12)頁目錄描述符頁目錄表頁描述符頁描述符頁描述符頁表0.x4x4存儲器4KB/頁頁表1頁表1023線性地址從線性地址到物理地址頁目錄表4kB(1K項,每項4字節(jié));每個頁表4kB(1K項,每項4字節(jié)),共有1k個頁表;每頁4KB;共1M頁CR3頁表基地址頁基地址頁目錄表基址R頁表基地址(20)AVL00DA00VWP32 0頁目錄描述符(4字節(jié))頁基地址(20)AVL00DA00VWP32 0頁描述符(4字節(jié))頁目錄描述符&頁描述符AVL=可使用位D=出錯/未出錯A=該頁(頁表) 已訪問/未訪問V=用戶/監(jiān)控 使用W=該頁(頁表) 允許/不允許寫 P=該頁(頁表) 存在/不存在HYPer九段頁式存儲管理邏輯地址線性地址分段部件分頁部件物理地址段式尋址頁式尋址既有段式尋址,也 有頁式尋址。80386以上CPU采用。HYPer頁目錄描述符(4)頁目錄表頁描述符(4)頁表n.頁目錄(10)頁表(10)偏移(12

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論