




已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章32位CPU及Windows基礎(chǔ) 9 1保護(hù)模式基礎(chǔ)9 2內(nèi)存管理9 3Windows環(huán)境 9 1保護(hù)模式基礎(chǔ) 在保護(hù)模式下 尋址高達(dá)4GB的物理地址空間支持存儲(chǔ)器分段管理機(jī)制和分頁(yè)管理機(jī)制支持多任務(wù)支持4個(gè)特權(quán)級(jí)和配套的特權(quán)檢查機(jī)制區(qū)分不同級(jí)別的代碼 9 1 132位CPU內(nèi)部結(jié)構(gòu) 1 總線(xiàn)單元 總線(xiàn)單元是CPU與存儲(chǔ)器和I O的接口總線(xiàn)接口對(duì)外提供 32位 或64位 數(shù)據(jù)總線(xiàn) 32位 或36位 地址總線(xiàn)以及控制總線(xiàn)總線(xiàn)單元負(fù)責(zé)完成所有外部總線(xiàn)操作 能夠產(chǎn)生控制地址鎖存器和數(shù)據(jù)總線(xiàn)收發(fā)器工作的控制信號(hào) 2 指令預(yù)取單元 指令預(yù)取單元實(shí)現(xiàn)指令流隊(duì)列的機(jī)制CPU可以預(yù)取16字節(jié)的指令代碼預(yù)取進(jìn)來(lái)的指令要保存在FIFO隊(duì)列中 3 指令譯碼單元 指令譯碼單元接收FIFO隊(duì)列的輸出指令譯碼單元將接收到的機(jī)器代碼指令譯碼為微代碼指令 并供執(zhí)行單元使用 4 執(zhí)行單元 執(zhí)行單元取出譯碼后的指令并執(zhí)行該操作 包括 算術(shù)邏輯單元ALU寄存器組專(zhuān)用乘法器移位器控存 ROM 5 分段和分頁(yè)單元 分段和分頁(yè)單元負(fù)責(zé)地址產(chǎn)生 地址轉(zhuǎn)換和對(duì)總線(xiàn)接口單元的段檢查 CPU存儲(chǔ)器管理的分段單元用硬件進(jìn)行高速地址計(jì)算 完成邏輯地址到線(xiàn)性地址的轉(zhuǎn)換和保護(hù)性檢查 分頁(yè)單元實(shí)現(xiàn)保護(hù)模式下的分頁(yè)機(jī)制 它可以將線(xiàn)性地址轉(zhuǎn)換成物理地址 并由總線(xiàn)單元輸出 6 浮點(diǎn)運(yùn)算單元 浮點(diǎn)運(yùn)算單元集成在80486及以上的CPU中對(duì)于80386 需要另外一個(gè)數(shù)學(xué)運(yùn)算協(xié)處理器80387來(lái)執(zhí)行浮點(diǎn)運(yùn)算 7 高速緩存單元 高速緩存單元將最近被訪(fǎng)問(wèn)的內(nèi)存單元的內(nèi)容保存在CPU內(nèi)部的Cache中 下次訪(fǎng)問(wèn)這些內(nèi)存單元時(shí) CPU直接訪(fǎng)問(wèn)Cache就可以存取這些單元的內(nèi)容 由于Cache的訪(fǎng)問(wèn)速度比內(nèi)存快 高速緩存單元能夠顯著提高程序的運(yùn)行速度 1 全局描述符表寄存器GDTR 全局描述符表GDT是用來(lái)定義全局存儲(chǔ)器空間的一種機(jī)制 它用段描述符說(shuō)明一個(gè)全局存儲(chǔ)器中的段 每個(gè)GDT最多含有8192個(gè)描述符 8192 8 64KB 用全局描述符表寄存器GDTR指出GDT的位置和大小 9 1 2程序不可見(jiàn)寄存器 GDTR是48位的寄存器 其最低16位是限長(zhǎng) 給出GDT的字節(jié)大小 其高32位是基址 指出GDT在物理存儲(chǔ)器中存放的基地址 例如 GDTR 0E003F0003FFH 則說(shuō)明GDT的地址為0E003F000H 長(zhǎng)度為3FFH 1 400H 其中可容納400H 8 80H個(gè)段描述符 2 中斷描述符表寄存器IDTR 中斷描述符表IDT中保存著中斷門(mén)描述符 IDT最多包含256個(gè)門(mén)描述符 CPU最多支持256個(gè)中斷 中斷描述符表寄存器IDTR是48位的寄存器 其最低16位是限長(zhǎng) 給出IDT的字節(jié)大小 其高32位是基址 指出IDT在物理存儲(chǔ)器中存放的基地址 例如 IDTR 0E003F40007FFH 則說(shuō)明IDT的地址為0E003F400H 長(zhǎng)度為7FFH 1 800H 其中可容納800H 8 100H個(gè)中斷門(mén)描述符 3 局部描述符表寄存器LDTR 局部描述符表LDT含有與系統(tǒng)中某一個(gè)任務(wù)相關(guān)的各個(gè)段的描述符 局部描述符表寄存器LDTR并不直接指出LDT的位置和大小 而是指向一個(gè)LDT描述符 由LDT描述符指出LDT的位置和大小 4 任務(wù)寄存器TR 任務(wù)寄存器TR在保護(hù)模式的任務(wù)切換機(jī)制中使用 TR是16位的選擇符 其內(nèi)容為索引值 它選中的是TSS描述符 任務(wù)狀態(tài)段TSS中包含啟動(dòng)任務(wù)所必需的信息 它在存儲(chǔ)器的基地址和限長(zhǎng) 大小 由TSS描述符指出 TSS描述符放在全局描述符表GDT中 而TR內(nèi)容指出了TSS描述符在GDT中的順序號(hào) 5 控制寄存器 存在著4個(gè)系統(tǒng)控制寄存器CR0 CR3 CR0的低5位是系統(tǒng)控制標(biāo)志 被稱(chēng)為機(jī)器狀態(tài)字MSW MSW中各位的含意 PE 保護(hù)模式允許標(biāo)志等于0為實(shí)模 等于1為保護(hù)模式MP 運(yùn)算協(xié)處理器存在位等于1表示系統(tǒng)中有運(yùn)算協(xié)處理器 6 調(diào)試寄存器DR 調(diào)試寄存器提供高級(jí)的調(diào)試功能例如 可以設(shè)置一個(gè)數(shù)據(jù)斷點(diǎn) 在程序訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)時(shí)激活調(diào)試程序 程序要訪(fǎng)問(wèn)的內(nèi)容不在內(nèi)存中 CPU會(huì)產(chǎn)生一個(gè)異常 由操作系統(tǒng)的存儲(chǔ)器管理程序來(lái)處理 將所需的內(nèi)容裝入內(nèi)存中 這就是所謂的虛擬存儲(chǔ)器 它并不完全是真正的內(nèi)存空間 也稱(chēng)做虛擬內(nèi)存 9 2內(nèi)存管理 1 段寄存器CS DS ES SS FS GS 在實(shí)模式下 它們的用法和16位CPU相同 在保護(hù)模式下 段寄存器不直接存放段基址 而是存放一個(gè)索引 由索引從GDT或LDT中找到段描述符 從而確定關(guān)于這個(gè)段的全部描述信息 這個(gè)索引被稱(chēng)為段選擇符 9 2 1分段內(nèi)存管理 選擇符的格式如下RPL 請(qǐng)求特權(quán)級(jí) 2位二進(jìn)制數(shù)字 求特權(quán)級(jí)是將要訪(fǎng)問(wèn)的段的特權(quán)級(jí) TI 表指示符 為0時(shí) 從GDT中選擇描述符 為1時(shí) 從LDT中選擇描述符 Index 索引 指出要訪(fǎng)問(wèn)描述符在段描述符表中的順序號(hào) 2 段描述符 段描述符用于描述代碼段 數(shù)據(jù)段和堆棧段 段描述符的格式如圖 段描述符位于GDT或LDT中 占64位 由以下幾個(gè)部分組成 段基址 32位 限長(zhǎng) 20位 訪(fǎng)問(wèn)權(quán)限 8位 屬性 4位 訪(fǎng)問(wèn)權(quán)限字節(jié) 訪(fǎng)問(wèn)權(quán)限字節(jié)定義如下 P 存在位等于1時(shí)表示該段己裝入內(nèi)存 等于0時(shí)表示該段沒(méi)有在內(nèi)存中 訪(fǎng)問(wèn)這個(gè)段會(huì)產(chǎn)生段異常 DPL 描述符特權(quán)級(jí) 說(shuō)明這個(gè)段的特權(quán)級(jí) S 描述符類(lèi)型位為1時(shí) 這個(gè)段為代碼段 數(shù)據(jù)段或堆棧段 為0時(shí) 為系統(tǒng)段描述符 E 可執(zhí)行位 區(qū)分代碼段和數(shù)據(jù)段S 0且E 1時(shí) 這是一個(gè)代碼段 可執(zhí)行 S 0且E 0時(shí) 這是一個(gè)數(shù)據(jù)段或堆棧段 不可執(zhí)行 E 0時(shí) 后面的兩位為ED和W 若E 1時(shí) 后面的兩位為C和R ED 擴(kuò)展方向位為0時(shí) 段從低地址向高地址擴(kuò)展 偏移量小于等于限長(zhǎng) 為1時(shí) 段從高地址向低地址擴(kuò)展 偏移量必須大于限長(zhǎng) W 寫(xiě)允許位為0時(shí) 不允許對(duì)這個(gè)數(shù)據(jù)段寫(xiě)入 為1時(shí) 允許對(duì)這個(gè)數(shù)據(jù)段寫(xiě)入 C 一致位為0時(shí) 這個(gè)段不是一致代碼段為1時(shí) 這個(gè)段是一致代碼段R 讀允許位為0時(shí) 不允許讀這個(gè)段的內(nèi)容為1時(shí) 允許讀這個(gè)段的內(nèi)容A 訪(fǎng)問(wèn)位為1表示段已被訪(fǎng)問(wèn)過(guò)為0表示段未被訪(fǎng)問(wèn)過(guò) 屬性位 屬性位包括G D AVL等G 粒度位 G 1時(shí) 限長(zhǎng)以頁(yè)為單位 G 0時(shí) 限長(zhǎng)以字節(jié)為單位 D 默認(rèn)操作數(shù)寬度 D 1時(shí) 為32位數(shù)據(jù)操作段 D 1時(shí) 為16位數(shù)據(jù)操作段 AVL 可用位 這一位保留給操作系統(tǒng)或應(yīng)用程序來(lái)使用 段描述符高速緩存 在指令執(zhí)行過(guò)程中 只有段寄存器的值發(fā)生改變時(shí) 才需要到GDT或LDT中裝入段描述符 如果段寄存器的值不改變 高速緩存中的段描述符可以被直接引用 這樣就避免了到主存中頻繁讀取段描述符 提高了CPU的效率 3 段描述符的實(shí)際例子 略 見(jiàn)書(shū)本p293 4 段的屬性 DS段的線(xiàn)性地址范圍為 0000000016 FFFFFFFF16 與CS段完全相同 9 2 2頁(yè)式內(nèi)存管理 使用分頁(yè)機(jī)制的好處 可以把每個(gè)活動(dòng)任務(wù)當(dāng)前所必需的少量頁(yè)面放在內(nèi)存中 而不必將整個(gè)段調(diào)入內(nèi)存 從而提高了內(nèi)存的使用效率 1 分頁(yè) 頁(yè)的長(zhǎng)度固定為4KB頁(yè)與頁(yè)之間沒(méi)有重疊頁(yè)式內(nèi)存簡(jiǎn)化了存儲(chǔ)器管理不能充分地利用內(nèi)存 會(huì)產(chǎn)生碎片 2 線(xiàn)性地址到物理地址的映射 線(xiàn)性地址按頁(yè)為單位映射到物理地址每一個(gè)線(xiàn)性頁(yè)面只能映射到一個(gè)物理頁(yè)面上多個(gè)線(xiàn)性頁(yè)面可以映射到同一個(gè)物理頁(yè)面上 3 線(xiàn)性地址轉(zhuǎn)換為物理地址的過(guò)程 32位線(xiàn)性地址被劃分為3個(gè)部分 頁(yè)目錄索引 10位 對(duì)頁(yè)目錄的索引頁(yè)表索引 10位 對(duì)頁(yè)表的索引字節(jié)索引 12位 線(xiàn)性地址在頁(yè)面內(nèi)的偏移 3 線(xiàn)性地址轉(zhuǎn)換為物理地址的過(guò)程 續(xù) 線(xiàn)性地址轉(zhuǎn)換為物理地址的過(guò)程 1 以PDBR的值作為頁(yè)目錄的基地址 定位到頁(yè)目錄 2 用線(xiàn)性地址中的頁(yè)目錄索引 10位 在頁(yè)目錄表中找到一個(gè)頁(yè)表描述符 3 頁(yè)表描述符的高20位給出了頁(yè)表的基地址 4 線(xiàn)性地址中的頁(yè)表索引 10位 指示了被訪(fǎng)問(wèn)的頁(yè)在頁(yè)表中的序號(hào) 5 頁(yè)描述符的高20位給出了物理頁(yè)面的基地址 6 物理頁(yè)面的基地址再加上線(xiàn)性地址中的12位字節(jié)索引 便得到32位線(xiàn)性地址對(duì)應(yīng)的32位物理地址 4 頁(yè)表項(xiàng) 頁(yè)表項(xiàng)就是在分頁(yè)轉(zhuǎn)換時(shí)用到的頁(yè)表描述符和頁(yè)描述符 它們都是32位的 其格式 頁(yè)表項(xiàng)的低12位提供保護(hù)功能和統(tǒng)計(jì)信息 U S位 R W位 P位實(shí)現(xiàn)頁(yè)保護(hù)機(jī)制 而D位和A位提供統(tǒng)計(jì)信息 U S 用戶(hù) 管理員位U S 0時(shí) 只有操作系統(tǒng)程序可以訪(fǎng)問(wèn)該頁(yè) 而不允許用戶(hù)程序訪(fǎng)問(wèn)U S 1時(shí) 允許用戶(hù)程序訪(fǎng)問(wèn)該頁(yè)R W 讀寫(xiě)位R W 0 用戶(hù)程序?qū)?yè)面只有讀權(quán)限 不能寫(xiě)入 R W 1時(shí) 可讀 寫(xiě) P 存在位 P 1 頁(yè)表或頁(yè)存在于物理內(nèi)存中 P 0 頁(yè)表或頁(yè)沒(méi)有在物理內(nèi)存中 A 訪(fǎng)問(wèn)標(biāo)志 如果對(duì)某頁(yè)表或頁(yè)訪(fǎng)問(wèn)過(guò) CPU設(shè)置頁(yè)表項(xiàng)中的A位為1 D 寫(xiě)入位 D 1時(shí)表示對(duì)該頁(yè)進(jìn)行過(guò)寫(xiě)操作 D 0時(shí)表示對(duì)該頁(yè)還沒(méi)有進(jìn)行過(guò)寫(xiě)操作 AVL占3位 可以由操作系統(tǒng)使用 9 2 3尋址方式的增強(qiáng) 1 8種尋址方式見(jiàn)表9 3 表9 38種尋址方式中的有效地址 2 基址變址比例相對(duì)尋址 操作數(shù)的地址是由基址寄存器 變址寄存器乘以一個(gè)比例數(shù)和相對(duì)量這3個(gè)部分相加得到的結(jié)果 比例數(shù)只能有1 2 4 8 這4種取值 舉例 MOVESI 0040200AHMOVEBX 4MOVEDI ESI EBX 2 4 9 3Windows環(huán)境 9 3 1Windows程序的執(zhí)行環(huán)境1 虛擬內(nèi)存2 平坦 內(nèi)存模式3 段寄存器4 內(nèi)存布局 9 3 2Windows的保護(hù)機(jī)制 80386設(shè)置了4個(gè)特權(quán)級(jí) 編號(hào)為0 3 最高的是特權(quán)級(jí)0 其次是1 2 3 Windows只使用了特權(quán)級(jí)0和特權(quán)級(jí)3 特權(quán)級(jí)0中運(yùn)行的是操作系統(tǒng)內(nèi)核和各種硬件驅(qū)動(dòng)程序 特權(quán)級(jí)3中運(yùn)行的是各種應(yīng)用程序 CS段寄存器的最低2位表示當(dāng)前運(yùn)行程序的特權(quán)級(jí) 操作系統(tǒng)內(nèi)核使用特權(quán)級(jí)0 CS設(shè)置為0008H 應(yīng)用程序使用特權(quán)級(jí)3 CS設(shè)置為0023H Windows采用保護(hù)機(jī)制主要為了檢查和防止應(yīng)用程序的越權(quán)操作 保護(hù)機(jī)制主要由下列幾方面組成 1 段的類(lèi)型檢查 2 頁(yè)的類(lèi)型檢查 3 段的特權(quán)級(jí) 4 控制轉(zhuǎn)移的檢查 5 對(duì)I O地址的保護(hù) 6 對(duì)系統(tǒng)資源的保護(hù) 如果違反了上述6條保護(hù)規(guī)則 則會(huì)引發(fā)保護(hù)異常 處理器將會(huì)進(jìn)入到對(duì)應(yīng)的異常處理程序中去 應(yīng)用程序不能直接對(duì)系統(tǒng)地址空間進(jìn)行讀寫(xiě) 它只能使用屬于它自己的2GB用戶(hù)地址空間 為了滿(mǎn)足某些應(yīng)用程序?qū)?nèi)存空間的更高需求 Windows允許設(shè)置為3GB用戶(hù)地址空間和1GB系統(tǒng)地址空間 堆棧具有 先進(jìn)后出 的特點(diǎn) CPU提供了專(zhuān)門(mén)的指令 PUSH和POP 用于對(duì)堆棧棧頂單元的存取 9 3 332位堆棧 1 堆棧空間 與堆棧相關(guān)的3個(gè)寄存器是 SS ESP EBP 在Windows用戶(hù)模式下 SS段寄存器的內(nèi)容通常和DS ES段寄存器的相同 段的范圍是從00000000H 0FFFFFFFFH的所有4GB邏輯地址空間 程序的代碼 數(shù)據(jù) 堆棧都被安排在這個(gè)空間范圍內(nèi) ESP extendedstackpointer 寄存器中的內(nèi)容作為堆棧的當(dāng)前指針 PUSH POP CALL RET等指令都與堆棧有關(guān) 使用由SS ESP指向的堆棧單元 EBP extendedbasepointer 寄存器中的內(nèi)容作為堆棧的 基準(zhǔn) 指針 SS EBP指向的地址作為基準(zhǔn)地址 在函數(shù) 即子程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州外語(yǔ)職業(yè)學(xué)院《勞動(dòng)教育I》2023-2024學(xué)年第二學(xué)期期末試卷
- 高考英語(yǔ)作文-句子美化+課件
- 湖南工程職業(yè)技術(shù)學(xué)院《音樂(lè)欣賞2》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北民族師范學(xué)院《計(jì)量經(jīng)濟(jì)學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧師范大學(xué)海華學(xué)院《能源與動(dòng)力工程學(xué)科發(fā)展前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西農(nóng)業(yè)大學(xué)《數(shù)字媒體技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津外國(guó)語(yǔ)大學(xué)濱海外事學(xué)院《專(zhuān)業(yè)日語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津師范大學(xué)津沽學(xué)院《基礎(chǔ)韓國(guó)語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇城鄉(xiāng)建設(shè)職業(yè)學(xué)院《自然保護(hù)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西農(nóng)業(yè)工程職業(yè)學(xué)院《智慧園藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 利用學(xué)習(xí)畫(huà)像實(shí)現(xiàn)個(gè)性化學(xué)習(xí)路徑設(shè)計(jì)與優(yōu)化策略研究
- 2025年人工智能應(yīng)用技術(shù)職業(yè)資格考試試卷及答案
- 網(wǎng)絡(luò)微短劇的內(nèi)容創(chuàng)新策略及其傳播效果
- 2025年一級(jí)建造師《市政實(shí)務(wù)》考點(diǎn)精粹
- 融資專(zhuān)員測(cè)試題及答案
- 河北秦皇島事業(yè)單位招聘中小學(xué)教師類(lèi)D類(lèi)考試模擬題帶答案2024年
- 2024年青海格爾木公開(kāi)招聘社區(qū)工作者考試試題答案解析
- 2025屆高考語(yǔ)文專(zhuān)題復(fù)習(xí):散文內(nèi)容要點(diǎn)概括分析散文形象 課件
- 硅橡膠模具合同(2篇)
- 農(nóng)村三資管理課件
- 超星爾雅學(xué)習(xí)通《形勢(shì)與政策(2025春)》章節(jié)測(cè)試及答案(真題匯編)
評(píng)論
0/150
提交評(píng)論