




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第11章操作模式 主講:董毅 11.1 實模式綜述(回顧) n實模式下的存儲器地址由16位的段寄存器與16位 的偏移量寄存器配對組成,兩者結(jié)合起來構(gòu)成邏 輯地址。 q【問題】段寄存器的最大值與偏移量寄存器的最大值都 可為0FFFFH,此時的物理地址為(0FFFFH16) 0FFFFH=10FFEFH100001111111111101111B, 使 得第21條地址線A20為1,但8086只有20位地址,說明 已經(jīng)超出了8086的可尋址空間范圍。 【解決辦法】 n在8086中就存在著所謂地址環(huán)繞的問題,超出20位 地址的進位“1”將被忽略,因此10FFEFH實際的物理 地址將被定位到存儲器的0F
2、FEFH處。 n80286的地址線有24位,80386/80486/奔騰系列等微 處理器的地址線至少有32位,因此地址100000H及其 隨后的大量空間都是實際存在的,不會環(huán)繞到 00000H處,但它超出了1MB的空間限制,進入了擴 展存儲器的空間。為了嚴格兼容8086實模式, 80286/80386/ 80486/奔騰系列都采取了一種附加閘 門控制的辦法,通過專門的電路設計對A20地址線進 行控制,稱為“A20 gate”。當閘門電路保持A20線為 0電平時,系統(tǒng)就能仿真8086的地址環(huán)繞。 MS DOS的內(nèi)存管理 n可使用1MB空間,分成兩段: q00000H9FFFFH為基本內(nèi)存或稱常規(guī)
3、內(nèi)存,容量640KB, DOS與用戶程序只能存放在這個區(qū)段。 q0A0000H0FFFFFH為保留內(nèi)存區(qū),共384KB,保留給基本 輸入輸出系統(tǒng)(BIOS)與系統(tǒng)總線功能擴展接口卡上的存儲器 使用,例如顯示卡上的視頻BIOS、顯示緩沖區(qū)以及系統(tǒng)啟動 網(wǎng)卡上的啟動ROM等。 n1MB以外的區(qū)間是擴展內(nèi)存區(qū)XMS(Extended Memory Specification),屬保護模式存儲器尋址 (Protected Mode Memory Addressing) 的空間,MS DOS無法直接管理,僅可用作RAM一類的虛擬磁盤 等,這是實模式的致命缺陷。 MS DOS的內(nèi)存管理 n對于80286以
4、后的微型計算機,在擴展內(nèi)存管理程序 HIMEM.SYS的驅(qū)動控制下,當邏輯地址處在 0FFFF:0010H0FFFF:FFFFH范圍內(nèi),亦即物理地 址在1MB之外的100000H10FFEFH空間段時,MS DOS系統(tǒng)能真正訪問到擴展內(nèi)存的這個區(qū)間。于是原 來1MB的空間限制就被突破而增加了64KB。這個區(qū) 間就稱高端內(nèi)存區(qū)(High Memory Area,HMA) q它可以存放DOS的常駐程序,從而使基本內(nèi)存區(qū)中原駐這些 程序的空間釋放出來,用戶程序區(qū)就增加了幾十KB可貴的空 間。為了達到這一目的,MS DOS系統(tǒng)配置文件 CONFIG.SYS中必須有以下兩條語句: HMA配置 nDEVI
5、CE=C:DOSHIMEM.SYS 裝載擴展內(nèi)存驅(qū)動程序 nDOS=HIGH 讓DOS使用高端內(nèi)存區(qū) 圖11.1 80286/386/486/Pentium系列內(nèi)存配置示意圖 10FFF0 10FFEF 100000 FFFFF A0000 9FFFF 00000 0 擴 展 內(nèi) 存 高 端 內(nèi) 存 區(qū) 保 留 內(nèi) 存 常 規(guī) 內(nèi) 存 實 模 式 下 尋 址 的 存 儲 器 保 護 模 式 下 可 尋 址 的 存 儲 器 n例例11.1 A20地址線由92H端口的bit 1控制, 該位為0時A20地址線關(guān)閉而產(chǎn)生地址環(huán)繞, 系統(tǒng)操作于實模式為1時打開A20地址線可 訪問到1MB以上的空間,系統(tǒng)
6、操作于保護模式。 編寫打開與關(guān)閉A20地址線的宏指令。 1.打開A20地址線 2.EnableA20 MACRO 3. PUSH AX 4. IN AL,92H 5. OR AL,00000010B 6. OUT 92H,AL 7. POP AX 8. ENDM 9.關(guān)閉A20地址線 10.DisableA20 MACRO 11. PUSH AX 12. IN AL,92H 13. AND AL,11111101B 14. OUT 92H,AL 15. POP AX 16. ENDM 11.2 保護模式下的存儲器分段管理 n通俗地講,所謂“保護”就是在充分利用微處 理器資源的基礎(chǔ)上,保護各類程
7、序既高效率又 高可靠地運行。 q例如Windows操作系統(tǒng)就必須而且只能在保護模式 下運行。 微處理器的保護 1.存儲器的區(qū)域保護功能存儲器的區(qū)域保護功能 對存儲器實施分段管理,盡量禁止對存儲器進行非 法訪問,或者程序失控時產(chǎn)生異常中斷以便采取必 要的補救措施等。在多任務系統(tǒng)中,通過局部描述 符表LDT為各任務定義不同的虛擬空間,使任務之 間在區(qū)域上進行隔離,互不干擾,即使某一任務出 錯也不致于影響其他任務的執(zhí)行等。 2.特權(quán)級保護功能特權(quán)級保護功能 為各種類型的存儲器段附加一個訪問權(quán)級別,為程 序賦予不同的級別,例如定義操作系統(tǒng)的特權(quán)級別 最高,而用戶應用程序級別最低,使操作系統(tǒng)不會 轉(zhuǎn)移到
8、可靠性差的用戶程序模塊中去,而用戶程序 則絕對不能隨意修改操作系統(tǒng)的數(shù)據(jù),這樣就保障 了操作系統(tǒng)的安全。 11.2.1 控制寄存器與存儲器管理寄存器 nCR0CR4 共5個控制寄存器 1.CR0實際上在80286 CPU中就已經(jīng)開發(fā),但當時只使用了 它的低位部份作為機器狀態(tài)字MSW,在32位微處理器中它 有許多重要的新的定義。 2.CR1 由80386/80486定義,但至今一直未使用,這是為今 后開發(fā)更新的產(chǎn)品所保留的資源,這樣的設計考慮就為產(chǎn)品 的兼容性創(chuàng)造了條件。 3.CR2是頁故障線性地址寄存器,80386/80486即使用了該寄 存器。 4.CR3的高位字用作存儲器分頁管理時頁目錄基
9、地址寄存器, 低位字只使用了兩位,80386/80486即使用了該寄存器。 5.CR4則是奔騰新增加的控制寄存器。主要用于存儲器的分頁 管理與虛擬中斷等一些增強功能。 表11.1 CR0CR4控制寄存器中各位的定義 表11.1 CR0CR4控制寄存器中各位的定義 存儲器管理寄存器(Memory management registers) n全局描述表寄存器GDTR n中斷描述表寄存器IDTR n局部描述表寄存器LDTR n任務寄存器TR n【說明】 qGDTR與IDTR在系統(tǒng)中是唯一的,由CPU內(nèi)部寄存器來實現(xiàn), 它們分別用于存放全局描述符表和中斷描述符表的表格基地 址與段界即表格大小。 qL
10、DTR與TR在系統(tǒng)中同局部任務相匹配,不是唯一的,每個 任務有各自的LDTR和TR,因此由內(nèi)部高速緩沖存儲器來實 現(xiàn),用于存放各個任務的局部表格參數(shù)。 11.2.2 虛擬存儲器 n保護模式與實模式的尋址方法有實質(zhì)性的不同。 邏 輯 地 址 15 0 15 0 20 位基地址 虛 擬 地 址 15 0 31 0 32 位基地址 段基址 左移 4 位 偏移量 20 位物理地址 段選擇器 段管理部件 偏移量 32 位線性地址 虛擬存儲器 n虛擬存儲器是指磁盤等外部存儲體,“虛擬” 作為主存儲器使用。在保護模式下的虛擬地址 空間可以達到246=64TB。 q假設有以下傳送指令: MOV ES:ABC_
11、OFF, EAX 同實模式相比,該指令在保護模式下有以下明顯差 別 n偏移量ABC_OFF可以是16位/32位,依16位/32位指令而 定 n段寄存器ES中裝載的已不是段基地址,而是段選擇器。 11.2.3 描述符表的概念 n描述符描述符 在保護模式下,將虛擬存儲器分成許 多大小不等的存儲“段”,每個段都由一個8 字節(jié)長的描述符來描述,說明該段所處的基地 址位置,該段的大小,該段存放的內(nèi)容是數(shù)據(jù) 還是指令代碼?以及讀/寫等其他一些屬性。 n描述符表描述符表 系統(tǒng)再將這些段描述符有機地組織 成線性表,這種表就稱為描述符表。描述符表 分全局描述符表(Global Descriptor Table,
12、GDT) 與局部描述符表(Local Descriptor Table,LDT) 兩類。 描述符表的概念 n全局描述符表全局描述符表GDT 該表是面向系統(tǒng)全局的, 為系統(tǒng)中的各個任務共享,對應的存儲器空間 一般處理公共數(shù)據(jù)、公用過程調(diào)用與中斷過程 以及裝載操作系統(tǒng)等。此外,該描述符表還包 括對各個局部描述符表的描述。在一個系統(tǒng)中 只有唯一的1個全局描述符表,因此GDT只需 有表格基地址和表格的大小就能在主存儲器中 定位了。 描述符表的概念 n局部描述符表局部描述符表LDT 該表是面向具體任務的, 每個任務擁有一個獨立的局部描述符表。同該 表對應的存儲器空間存放著各自的代碼與數(shù)據(jù), 達到各個任務
13、在區(qū)域上實現(xiàn)隔離的目的。局部 描述符表不是唯一的,系統(tǒng)中有多少個任務就 有多少個局部描述符表,所以要完整地表征 LDT還要附加選擇器,用它來表示當前選擇的 是哪一個局部描述符表。 描述符表的概念 n描述符表寄存器描述符表寄存器 CPU內(nèi)部擁有全局描述符表 寄存器GDTR,用它存放全局描述符表的表格 首地址與段界限大小,使GDT定位,通常情況 下都不會再改變它的位置。 q由于局部描述符表寄存器LDTR依系統(tǒng)中的具體任 務而定,不是唯一的,任務改變時當前LDT隨之變 化,所以它們是通過段寄存器與描述符Cache寄存 器來實現(xiàn)的。段寄存器中存放當前LDT的選擇器, 描述符Cache寄存器中則存放它的
14、表格首地址、段 界限大小與屬性等。不過對于用戶而言一般不必擔 心這些差別,系統(tǒng)會自動配置。 11.2.4 特權(quán)級及其保護 n所謂特權(quán)級是給存儲器的每個段都附加了一個 訪問權(quán)限屬性,系統(tǒng)共分4個特權(quán)級,各個段 必須歸屬于這4個級別中的其中一個: q0級是訪問權(quán)最高的特權(quán)級 q3級是訪問權(quán)最低的特權(quán)級 q1級與2級的訪問權(quán)介于0級與3級之間。 圖11.3 奔騰系列的4級特權(quán) 應用程序 PL=3 OS 擴展 PL=2 驅(qū)動 PL=1 內(nèi)核 PL=0 閘 門 閘 門 閘 門 閘 門 閘 門 閘 門 特權(quán)級保護機制的原則性規(guī)定 1.特權(quán)級高的代碼段不能向特權(quán)級低的代碼段 轉(zhuǎn)移。 n例如,操作系統(tǒng)的代碼段
15、不能轉(zhuǎn)移到用戶應用程 序,因為用戶應用程序的安全性較操作系統(tǒng)差, 有可能導致系統(tǒng)崩潰。 2.特權(quán)級低的代碼段不能訪問特權(quán)高的數(shù)據(jù)段。 n例如不能讓用戶應用程序訪問操作系統(tǒng)的內(nèi)部數(shù) 據(jù),因為應用程序?qū)Σ僮飨到y(tǒng)數(shù)據(jù)的修改是極其 危險的。 特權(quán)級保護機制的原則性規(guī)定 3.特權(quán)級低的代碼段可以訪問特權(quán)高的代碼段, 但必須經(jīng)過閘門檢查。 n例如用戶程序可以調(diào)用操作系統(tǒng)內(nèi)部的過程。這里 要特別指出的是,應用程序與操作系統(tǒng)不能使用同 一個堆棧,否則有可能在堆棧剩余空間不多時調(diào)用 內(nèi)部過程而使堆棧溢出。因此它們都擁有各自的堆 棧段,而且堆棧段的特權(quán)級往往與執(zhí)行程序的代碼 段特權(quán)級相同,當代碼段的特權(quán)級發(fā)生變化
16、時,堆 棧段的特權(quán)級也隨之變化。 特權(quán)級保護機制的原則性規(guī)定 4.特權(quán)級高的程序代碼段應能訪問特權(quán)低的用 戶數(shù)據(jù)段,以便提供數(shù)據(jù)交流。 n例如操作系統(tǒng)應能訪問用戶程序中的數(shù)據(jù),由于 是用戶數(shù)據(jù)段而不是用戶程序段,因而對操作系 統(tǒng)的安全性不會造成嚴重的影響。 特權(quán)級保護機制的原則性規(guī)定 5.所有的應用程序都使用最低的特權(quán)級,它們 只使用計算機而不是控制計算機。 6.閘門又稱控制門,它是通過執(zhí)行轉(zhuǎn)移指令、 調(diào)用指令和中斷來實現(xiàn)的,從而產(chǎn)生了相應 的轉(zhuǎn)移門、調(diào)用門和中斷門等概念。執(zhí)行這 類指令時,系統(tǒng)會進行一系列的保護性檢查 與判斷,確保安全轉(zhuǎn)移。 11.2.5 段選擇器與段描述符的結(jié)構(gòu) n保護模式
17、下段寄存器是一個16位的段選擇器, 而不是一個段基地址。 qbit15bit3共13位作為在全局描述符表GDT或局部 描述符表LDT中搜索描述符的索引值。 qbit2是描述符表指示器TI,表示當前指向何種表格, 為0指向GDT,為1則指向LDT, (可見這高14位都具有存儲器地址屬性。) q最低的2位bit1bit0表征當前的請求特權(quán)級RPL。 15 3 2 1 0 Index TI RPL 段描述符 n定義存儲器段的基地址、段的大小以及段的屬 性,每個段描述符都是由8個字節(jié)共64位組成 。 全局描述表與局部描述符表中的描述符格式是 一致的 。 第 76 字節(jié) 第 54 字節(jié) 31 24 23
18、 22 21 20 19 16 15 14 13 12 11 8 7 0 基址 3124 G D res avl 段界 1916 P DPL DT Type 基址2316 第 32 字節(jié) 第 10 字節(jié) 31 16 15 0 基址 150 段界 150 段描述符說明 n段基址是被描述段的起始地址,由最高位字節(jié)、 第4字節(jié)、第3字節(jié)與第2字節(jié)組成32位起始地 址,尋址空間達4G字節(jié)。 n段界限表示該段存儲器空間的最大偏移量地址, 由第6字節(jié)的低半個字節(jié)與最低的兩個字節(jié)組 成,共20位,說明段界的最大值為1M。(但 它要與屬性中的粒度G結(jié)合才能準確描述該段 的存儲器空間容量。) 圖11.6 由段描
19、述符描述的存儲段位置和大小 段描述符 存儲器 Base+Limit 被描述的段 Limit Base Limit Base Base Base 段描述符說明 n段屬性控制對該段存儲區(qū)的訪問,系統(tǒng)對該段 的訪問操作要根據(jù)段屬性進行合法性檢查,當 訪問操作不符合段屬性的要求時就會發(fā)生系統(tǒng) 異常中斷。 q占第6的高半字節(jié)與第5字節(jié)共12位。段屬性各位的 意義見表11.2。 表11.2 段屬性的定義 特權(quán)級的進一步說明 nDPL(Descriptor Privilege Level)表示被描述段 的特權(quán)級。 n請求特權(quán)級RPL(Requested Privilege Level),它是要求對該段進行修
20、改的特權(quán)級 值。 n當前特權(quán)級CPL(Current Privilege Level)的概 念,它是當前正在執(zhí)行的代碼段的特權(quán)級,也 就是CS寄存器中段選擇器的最低2位bit1與bit0 之值。 q在多數(shù)情況下,CPL都等于RPL。 特權(quán)級的進一步說明 n在修改數(shù)據(jù)段寄存器時應該滿足條件 DPLCPL。這就是說,被訪問的數(shù)據(jù)段的特 權(quán)級必須低于(包括等于)當前代碼段的特權(quán)級。 q例如當前代碼段的特權(quán)級CPL1,那么此時只能 訪問DPL1,2或3的數(shù)據(jù)段,而不能訪問DPL0 的數(shù)據(jù)段。 段界限的進一步說明 n段界限(Limit)并不能完整地反映被描述段空 間的實際大小,它必須與粒度G結(jié)合才能表征 一個段的實際空間。 q當粒度G=1選頁時,一個段的最大空間可達1 M(最 大段界限)4096(頁尺寸)=4 GB; q如果粒度G=0選字節(jié),則一個段的最大空間僅為1 MB。 n可見僅從存儲器管理的原理上講,段的最小空 間可以是1個字節(jié),只是沒有多少實用意義而 已。 段界限的進一步說明 n當段界限以4K字節(jié)為單位時,實際的段界限 LIMIT可通過下面的公式從20 位段界限Limit計 算出來: LIMIT=limit*4K+0FFFH=(Limit SHL 12)+0FFFH 例例11.2 設段基地址為10000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶口清理整頓培訓
- 人物傳記知識
- 2025至2030年中國門窗導軌行業(yè)發(fā)展研究報告001
- 揭秘精神控制課件
- 2025至2030年中國金屬包墊片行業(yè)發(fā)展研究報告
- 2024秋四年級語文上冊 第二單元 8 蝴蝶的家教學設計 新人教版
- 2024年春八年級生物下冊 第8單元 第2章 用藥與急救教學設計 (新版)新人教版
- 旅游景區(qū)滿意度
- 2024年四年級英語下冊 Unit 2 There are forty students in our class Lesson 12教學設計 人教精通版(三起)
- n個底物酶促反應動力學方程
- 2024年廣東省五年一貫制學校招生考試數(shù)學試卷
- 2024年河南鄭州黃河文化旅游發(fā)展有限公司招聘筆試真題
- 學校德育工作與心理健康教育的融合研究
- 數(shù)學-廣東省廣州市2025屆高三一模試題和解析
- 2024年關(guān)于突發(fā)事件應急預案(34篇)
- 高中入團考試試題及答案
- 2025-2030中國供熱行業(yè)發(fā)展前景及發(fā)展策略與投資風險研究報告
- 2025年天津公安警官職業(yè)學院單招職業(yè)技能測試題庫匯編
- 浙江省精誠聯(lián)盟2024-2025學年高二下學期3月月考英語試題(原卷版+解析版)
- 人教五四 六年級 下冊 語文 第五單元《中國有能力解決好吃飯問題 第一課時》課件
- 北京中考語文??贾R點(積累背誦)-2025年北京中考語文二輪復習
評論
0/150
提交評論