微型計算機原理第5章存儲器管理_第1頁
微型計算機原理第5章存儲器管理_第2頁
微型計算機原理第5章存儲器管理_第3頁
微型計算機原理第5章存儲器管理_第4頁
微型計算機原理第5章存儲器管理_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章卷儲器管理

第5章花儲器管理

5.1實方式存儲器管理

5.2保護方式存儲器管理

5.3保護及任務切換

5.4虛擬8086方式

第5章卷儲器管理

5.1實方式存儲器管理

5.1.1存儲器的分段結構

微處理器運行在實方式時,程序對存儲器的訪問采用分段地

址。分段地址由一個段值和一個有效的地址偏移值組合而成,

其表示方式為:

段值:偏移量(均以省略后綴H的十六進制形式表示)

偏移量確定在

段中一個字節(jié)

偏移量從段字

^0^^則量

安置在10H(16)

段值地址處

圖5.1在分段尋址中名

M第5章卷儲器管理

5.1.2物理地址的形成

段:1BA4:204E

1930

-------?16^^段值00001BA40H

1530

16位偏移值4—+204EH

190

1DA8EH

20彳立物理地址

圖5.2實方式下物理地址的產(chǎn)成

犬第5章卷儲器管理

5.2保護方式存儲器管理

5.2.1存儲器的分段管理

1.段選擇器

153210

I-I~~I~~I~~I~~I~~I~~I~~I~~I~~I~~~~~~~~F

士匚1TIRPL

索引

請求者特權級

00b二最高特權

11b二最低特權

表中的索引

J表指示器

。二全局描述符表(GDT)

1二局部描述符表(LDT)

圖5.3保護方式段選擇器格式

第5章卷儲器管理

2.段描述符表

153210

局部描述全局描述

符表符表

圖5.4段選擇器和描述符表

第5章卷儲器管理

3.段描述符

r段描述符

I門

圖5.5描述符的分類

第5章卷儲器管理

1514131211109876543210

在80286上,這一字

段限量

基地址(24?31)GD0_必須置為0,以便向上

(16?19)兼容

6

PDPL類型Base基地址(16?23)

4

基地址(0-15)

2

段限量(0?15)

0

域描述

G粒度

D缺省

AVL可用

P出現(xiàn)

DPL描述符特權級

DT描述符類型圖5.6段描述符格式

第5章卷儲器管理

①段基地址。該域用來確定段在存儲器的起始地址。對

80286來說,段基地址24位寬,段可在4MB線性地址空間的任何

字節(jié)處起始;對80386和80486來說,段基地址32位寬,分成兩

部分,由處理器將它們結合在一起,32位段基地址決定了段可

在4GB線性地址空間中的任何字節(jié)處起始。可以看出,保護方

式下段基地址的設置與實方式下段基地址僅限于被10H整除的

地址處是大不相同的,使用起來靈活得多。

第5章卷儲器管理

②段限量。該域用來確定段的尺寸。對80286,段限量為16

位無符號數(shù),表示段的最大尺寸為64KBo對80386和80486,段

限量由兩部分組成20位的無符號數(shù)。但僅就20位的段限量還不能

確定出段的尺寸,還需要根據(jù)段描述符中粒度D的設置來共同確

定。若粒度位設置成字節(jié)粒狀,則限量以字節(jié)為單位,得段的

尺寸為1B?1MBo若粒度位設置成頁粒狀,則限量以頁為單位,

一頁為4KB,故段的尺寸為4KB?4GB。當采用頁粒狀時,有效

地址偏移量的最低12位不必檢查。若粒度設置為頁,段限量設置

為00000H,則該段的有效地址偏移量為0?FFFH(4095)。

犬第5章卷儲器管理

③類型。

ST位的設置決定

ST了如何^壟釋其他域

數(shù)據(jù)段

訪問(1=yes)訪問(l=yes)

可讀(1=yes)可寫(l=yes)

一致性(1=yes)向下擴展(1二yes)

0寸于正^?段£=0)

圖5.7段描述符類型域的定義

第5章卷儲器管理

④DT位。這是描述符類型位,用來區(qū)分兩種類型的段描

述符。DT=1,表示為段描述符;DT=O,表示為一個特殊的

描述符(或稱系統(tǒng)段描述符)或門描述符。

⑤DPL。該域為描述符特權級域,用來實現(xiàn)保護而不用

于地址生成。

第5章卷儲器管理

⑥PoP位為存在位,用來表示描述符存在于存儲器中(P=l)

或不存在于存儲器中(P=0),它用于地址生成。如果一個描述符

所描述的段已移至硬盤上,表明不在內(nèi)存中,這時P=0。若這種

情況下試圖將該描述符的段選擇器裝入段寄存器,處理器便會

產(chǎn)生一個段不存在異常(以P=o為標志),并且操作系統(tǒng)中的異常

處理程序會把該段重新裝入存儲器。因而該位的設置使操作系

統(tǒng)能夠對應用程序實現(xiàn)虛擬存儲器的功能。

X第5章卷儲器管理它

⑦AVLoAVL為可用位,只在80386、80486中使用。該位

用來確定是否允許系統(tǒng)程序員擴充處理器的保護機制,即是否

允許對存儲器映象的I/O口實現(xiàn)保護。當AVL=1時,表示該描述

符(用來描述存儲器映象的I/O段)可被系統(tǒng)軟件使用。當AVL=0

時,表示該描述符對應的段選擇器不能重新裝入和使用。

第5章卷儲器管理E

⑧DoD位為缺省操作尺寸位,不用于地址生成,只在

80386及80486的代碼段描述符中被識別。當D=0時,表示操作數(shù)

和有效地址的缺省值是16位;當D=1時,表示操作數(shù)和有效地址

的缺省值為32位。當一條單指令具有超越前綴時,可以超越該

位設置。

⑨GoG位為粒度位,在80386、80486中,它用來指定段限

量的單位。G=0,表明段限量以字節(jié)為單位;G=l,表明段限

量以頁為單位,每頁4KBo

X(2)特殊的段描述符及門描述符。

表5.1系統(tǒng)段類型域定義

類型域值位設置描述符

00000保留

10001可用的16位TSS

20010LDT

3001116位TSS忙

4010016位調(diào)用門

5010116位任務門

6011016位中斷門

7011116位陷阱門

81000保留

91001可用的32位TSS

AH1010保留

BH101132位TSS忙

CH110032位調(diào)用門

DH1101保留

EH111032位中斷門

FH111132位任務門

第5章卷儲器管理

4.描述符表寄存器

全局描述符表寄存器(GDTR)

基地址限量

_______________________________________A_________

80286-24位16位

80386/80486-32位

局部描述符表寄存器(LDTR)

選擇器基地址限量

16位80286-24位知位

80386/80486-32位

圖5.8描述符表寄存器

第5章卷儲器管理

第5章卷儲器管理

X第5章卷儲器管理

而看露—?一一

可見部分不可見部分

III

6350494847403916150

可寫

向下擴展

:幾關口

第5章卷儲器管理

分不5]^部分

10390898887646332310

圖5.1280386和80486段寄存器格式

■^15.2.2存儲器的分頁管理

1,頁目錄和頁表

分頁管理機制在將線性化地址空間的頁轉換到物理地址空間的

頁時,由于每個頁面的整個4KB是作為一個單位進行映射的,且

每個頁面都對齊在4KB的邊界,因而線性地址的低12位在分頁轉

換過程中將直接作為物理地址的低12位使用。分頁管理機制中的

重定位函數(shù)(或稱轉換函數(shù))實際上是把線性地址的高20位轉換成對

應物理地址的高20位,并且,這個轉換函數(shù)是通過對常駐內(nèi)存的

頁表查詢來完成的。對頁表的查詢分兩步進行,即查詢一個兩級

表來完成。第一級表稱為頁目錄表,它的長度也總是恰好為一頁(4

KB),且起始于能被1000H整除的物理存儲器地址上。因而頁目錄

表的起始地址為20位(80386sx中為12位),頁目錄表可在微處理器

4GB(80386sx為16MB)地址空間內(nèi)任意安置,只要它對齊在4KB

第5章卷儲器管理

頁目錄的4KB數(shù)據(jù)結構共存放了1024個項(稱為頁目錄項)。

每項4B,32位,是一個指針,它指向另一個相似的數(shù)據(jù)結構。

這個相似的數(shù)據(jù)結構即是稱為頁表的第二級表。它也總是4KB

長,并對齊在4KB的邊界處。頁表的4KB數(shù)據(jù)結構又存放了1

024個頁表項,每項同樣4B,32位長,且作為物理存儲器中頁

的指針。頁目錄項和頁表項的格式都一樣,表示在圖5.13中。

其中高20位稱為頁幀地址,低12位定義如下:

第5章卷儲器管理

3112119876543210

UR

頁基地址

AVL00DA00//P

32---12

SW

圖5.13頁目錄表/頁表的表項格式

第5章卷儲器管理

(1)P位。該位為存在位。P=1表示該項里的頁地址映射到物

理存儲器中的一個頁。P=0,表示該項里的頁地址沒有映射到物

理存儲器中,或說該項所指頁不在物理存儲器中。這時,若欲

用該項進行地址轉換將產(chǎn)生一個頁出錯異常,并且操作系統(tǒng)中

的頁出錯處理程序將把該項重新裝入存儲器。如果頁目錄中,

某項的P位清零,則表示對應的頁表已被移出存儲器??梢哉f操

作系統(tǒng)利用P位提供的信息實現(xiàn)了請求分頁的虛擬存儲器的能力。

(2)R/W位。R/W位為讀/寫位,用于實現(xiàn)頁級保護,它不

涉及到地址轉換。

第5章卷儲器管理

(3)U/S位。U/S位為用戶/監(jiān)控程序位,用于實現(xiàn)頁級保護,

不涉及地址轉換。

(4)A位。A位為訪問位,用來表明該項指出的頁是否已被讀

或寫。若目錄項中A=l,則表示該項所指出的頁表已被訪問過。

若頁表項中A=l,則表示該頁表項所指出存儲器中的頁已被訪

問過??傊?,A位的置位由處理器完成,A位的狀態(tài)可供操作系

統(tǒng)軟件測試,以便計算不同頁的使用頻度。

X第5章卷儲器管理?

(5)D位。該位為頁面重寫標志位,只在頁表項中設置,而

不在頁目錄項中設置。當頁表項中D=1時,表明該項所指出的存

儲器中的頁已被寫。D位的狀態(tài)可被操作系統(tǒng)軟件測試,以便操

作系統(tǒng)判斷存儲器的某頁在它最后一次被復制到磁盤后是否被

修改過。

(6)AVL域。該域為可用域,共3位,供系統(tǒng)軟件設計人員

使用。可將與頁使用有關的信息放在該域中,幫助分析判斷應

把哪些頁移出存儲器。

第5章卷儲器管理

2.線性地址到物理地址的轉換

313029282726252423222120191817161514131211109876543210

目錄索引域表索引域偏移量

(10位)(10位)(12位)

圖5.14線性地址格式

第5章卷儲器管理

31222112110

第5章卷儲器管理

31222112110

00100101011001110100100010010000

<—目錄索弓]——弓I——偏移量

(1(M立)(10位)(12位)

圖5.16線性地址25674890H的分解

L第5章卷儲器管理Hr

J^CR3=28345XXXH,而左后錄基地址=28345000H。%

性地址中目錄索引地址為0010010101B,故得頁目錄表中所尋址

項的物理地址=目錄表基地址+偏移地址(目錄索引地址乘

4)=28345000H+254H=28345254H。

設目錄表中尋址項(從28345254H開始的4個字節(jié))的內(nèi)容為

00200021H,這表明尋址項對應頁表的基地址為00200000H,P位

(位0)及A位(位5)為1,該被尋址頁表在存儲器中,且對應目錄項

已被訪問過。線性地址中的頁表索引地址為loonioiooB,故得

頁表中所尋址項的物理地址二頁表基地址+頁表索引地址

X4=00200000H+9D0H=002009D0Ho

又設頁表中所尋址項(從002009D0H開始的4個字節(jié))的內(nèi)容為

34567021H,則頁幀基地址=34567000H,要尋址的存儲單元最終

物理地址二頁幀基地址+線性地址中的12位偏移量

=34567000H+890H=34567890Ho

第5章卷儲器管理

4,頁轉換高速緩沖存儲器

31151412110

386DX=20位WEO

386sx=12位

圖5.17386DX/386sx轉換監(jiān)視緩沖器(TLB)結構

第5章卷儲器管理

3.小結

段機制分頁機制

(分頁被禁用)

圖5.18虛擬一物理地址轉換

第5章卷儲器管理

5.3保護及任務切換

5.3.1不同任務間的保護

不同任務間的保護首先開始于把每個任務放置在不同的虛擬

地址空間,然后,再在每個任務中定義一組獨立的映射表,完成

相互間各不相同的虛擬-物理地址轉換。這樣,一個任務中的虛

擬地址空間映射到物理存儲器的一部分;另一個任務的虛擬地址

空間映射到物理存儲器的另外區(qū)域。在各任務中定義各自獨立的

一組映射表時,一般不應使它們所映射的物理存儲空間重疊,因

而,各任務之間是彼此隔離的。

第5章卷儲器管理

為了將操作系統(tǒng)與各應用程序隔離,且為各應用程序所共享,

常把操作系統(tǒng)存儲在一個單獨的任務中,并把操作系統(tǒng)存儲在虛

擬存儲空間的一個公共區(qū)域中。然后,再對每個任務按此公共區(qū)

域分配一個同樣的虛擬地址空間及定義同樣的虛擬-物理地址轉

換函數(shù)。這樣,既可使每個任務能對操作系統(tǒng)進行訪問,又可

保證操作系統(tǒng)不被各應用程序破壞。通常,稱各任務公用的這

部分虛擬地址空間為全局地址空間,而稱僅被一個任務獨占不被

其它任務共享的虛擬地址空間為局部地址空間。

M第5章卷儲器管理

5.3.2段級別保護

1514131211109876543210

GD0i(皆9)■0286上,

基地址(24?31)_為向上

6此字必?幡為0

PDPLDT基地址:(16?23)

4

基地址(0-15)

2

段限量(0~15)

0

域描述

G顆位性

D

AVL可用

P^4

DPL描述符特權級別

DT描述符類型圖5.19段描述符格式

犬第5章卷儲器管理

1.類型檢查

ST位的設置決定

STII?如^可解釋其他域

代碼段數(shù)據(jù)段

可訪問的(1=yes)可訪問的(l=yes)

可讀的(1二yes)可寫的(byes)

一致的(1二yes)向下擴展(1二yes)

第5章存儲器管理

表5.2存儲段描述符類型

類型說明類型說明

0只讀8只執(zhí)行

只讀、已訪問9只執(zhí)行、已訪問

讀/寫10執(zhí)行/讀

1,讀/寫、已訪問y執(zhí)行/讀、已訪問

重只讀、向下擴展12;只執(zhí)行、一致碼段

1只讀、向下擴展、已訪問只執(zhí)行、一致碼段、已訪問

6,讀/寫、向下擴展11執(zhí)行/讀、一致碼段

7讀/寫、向下擴展、已訪問15執(zhí)行/讀、一契碼段、已訪問

第5章存儲器管理

表5.3相容的段寄存器和段類型

段類型

;段寄存器’

只讀讀寫只執(zhí)行執(zhí)行/讀

DS、ES、FS、GS是是否是

'是E否

SS否?否

CS否否是是

第5章卷儲器管理

2.限度檢查

實方式下,段的限度固定為64KB。保護方式下,段的限度

由段描述符的限度域指出,是不固定的。對80286來說,限度以

字節(jié)為單位,16位限度域表明一個段最大尺寸為64KBo對

80386/80486來說,限度域為20位,當描述符中G=0時,限度以字

節(jié)為單位,一個段最大尺寸為1MB;當G=1時,限度以頁為單位,

一頁為4KB,限度=限度域值*4096+4095。因此,若限度域值為

0,則該段的最大尺寸為4KB,程序可訪問段內(nèi)從0到4095的字節(jié)。

第5章卷儲器管理

除了向下擴充的段以外,所有段的段描述符的限度(化為字

節(jié)數(shù))都表示從段起始處開始的最大偏移量。當訪問存儲器操作

數(shù)時,只要被訪問操作數(shù)的一部分超出限度,處理器就會發(fā)出

一般保護異常信號。例如,訪問一個雙字操作數(shù),其地址在限

度減2處,便會發(fā)生異常。

當段描述符中E=1時,為向下擴充段,它常用于堆棧段。

對向下擴充的段來說,限度表示一個段的最小偏移量。向下擴

充堆棧段的合法偏移量范圍是從限度的字節(jié)數(shù)+1直到22。-1(對16

位段)或232-1(對32位段)。當限度=o時,向下擴充段具有最大的

尺寸。

第5章卷儲器管理

向上擴展的段向下擴展的段

EIX立二0量EIX立二1量

FFFFHFFFFH

吃卜段內(nèi)

段的有

PSS+1W偏移量^?£圍<P助夏+1w偏移量

WFFFFHCFFFFH

據(jù)+1IW+1

IW

段內(nèi)彭卜

段的有

效范圍OOOOHW偏移量0000HW偏移量

WB阪W限度

0000H0000H

*向下擴展的段通常用作堆棧

跖卦痂捉田的坐刑

第5章卷儲器管理

3.襁板標

(用戶級別)

擴展

系統(tǒng)服務

硼J3核

(最(氐級另狙級另打級別。

級W(最高特權

'第5章商儲器管理Br1

5.3.3數(shù)據(jù)訪問

每當一個程序試圖訪問一個數(shù)據(jù)段時,便將程序的當前特權

級CPL與要訪問段的特權級DPL進行比較,只要DPL的特權級別等

于或低于CPL(或RPL)的特權級,對該數(shù)據(jù)段的訪問便是允許的。

否則便不允許,并產(chǎn)生一個一般保護異常,向操作系統(tǒng)報告該訪

問操作違反了特權規(guī)則。因而,在數(shù)據(jù)訪問時,被訪問的數(shù)據(jù)段

的特權級DPL規(guī)定了允許訪問該段的最外層特權級。由于數(shù)據(jù)訪

問的這一特權級規(guī)則使得上節(jié)所述特權級的典型用法中,0級的操

作系統(tǒng)核心,有權訪問任務中的所有數(shù)據(jù)存儲段;1級的操作系統(tǒng)

其余部分有權訪問2級和3級的所有數(shù)據(jù)存儲段;3級的應用程序只

能訪問本身的處于3級的數(shù)據(jù)存儲段。反過來,0級操作系統(tǒng)核心

的數(shù)據(jù)存儲段卻得以保護,不能被操作系統(tǒng)除核心外的其余部分

及應用程序訪問。同時,整個操作系統(tǒng)也得到了保護,它的數(shù)據(jù)

存儲段不允許任何2級和3級的應用程序訪問。

第5章卷儲器管理

5.3.4控制轉移

在同一任務中實現(xiàn)控制轉移有3種方式:段內(nèi)轉移,直接轉

移到另一代碼段的段間轉移和通過調(diào)用門的段間轉移。

1.段內(nèi)轉移

段內(nèi)轉移通過近程跳轉指令JMP或近程調(diào)用指令CALL及返

回指令RET(包括直接給出段內(nèi)偏移量和間接給出段內(nèi)偏移量)執(zhí)

行。它不會引起特權級的變化,也不需再加載CS段寄存器,只

需作限度檢查,即檢查是否會轉移到段外。同時為加速保護檢查,

限度值已預先裝入到段描述符高速緩存器中。

X第5章卷儲器管理

直接的段間轉移是最簡單的段間轉移,它使用具有遠程標號

的跳轉指令或調(diào)用及返回指令執(zhí)行。這時,遠程標號直接給出

一個48位的遠指針:16位選擇子和32位偏移量。該16位選擇子

作為新的選擇器值裝入CS寄存器時,便將所指向的段描述符裝

入CS段寄存器對應的段描述符高速緩存器中。接下來應進行保

護檢查,只有當遠指針所指目標段的描述符特權級DPL與當前特

權級CPL(當前正執(zhí)行程序段的特權級)相等,且目標段是一個存

在的可執(zhí)行的代碼段,或目標段描述符特權級DPL高于等于當前

特權級CPL,且目標段是一個存在的,一致的可執(zhí)行代碼段時,

這種控制轉移方能實現(xiàn)。即目標段轉移地址的基地址由遠指針

所指段描述符提供,轉移地址的偏移量由跳轉或調(diào)用指令提供。

第5章卷儲器管理石]

這里所謂一藪的可而亍代碼段是一種特別的存儲段,以段描

述符類型域中ST=1及C=1來標志。一致的可執(zhí)行代碼段用來存放

多個特權級程序共享的例程。例如,存放數(shù)值庫例程。這樣,

不同特權級執(zhí)行的程序可以使用段間調(diào)用指令調(diào)用庫中被共享的

例程,并可在調(diào)用程序(主程序)具有的特權級(等于或低于一致可

執(zhí)行代碼段的特權級)執(zhí)行該例程,而不要求改變特權級。因此,

可以說直接的段間轉移實現(xiàn)的是同一特權級同一任務的轉移。

控制轉移到一致的代碼段,將在調(diào)用程序(主程序)具有的特

權級執(zhí)行一致代碼段中的共享例程,而不在一致的代碼段由其

DPL表示的特權級上執(zhí)行共享例程。因而,這種情況下,一致代

碼段中的DPL用來規(guī)定可以轉移到該一致代碼段的最內(nèi)層特權級。

DPL的這種解釋正好與數(shù)據(jù)訪問時相反。

第5章花儲器管理

3.通過調(diào)用門的段間轉移

表5.4系統(tǒng)段和門的類型字段的編碼

類型編碼定義類型編碼定義

0未定義8-未定義

1可用286Tss,9可用386Tss

2LDT10未定義

3忙的286TSS11忙的386Tss.

4286調(diào)用門12386調(diào)用門?

5任務門113未定義

6286中斷門14386中斷門

7286陷阱門15386陷阱門

第5章卷儲器管理

調(diào)用門

偏移量(高)*

PDPL0類型000計數(shù)

代碼段選擇器

偏移量(低)

*對80286,大多數(shù)二0

域描述

P存在

DPL描述符特權級別

類型指定門類型

計數(shù)要拷貝至目標棧的字數(shù)(16位門)n

雙字數(shù)(32位門)

圖5.23調(diào)用門描述符格式

第5章卷儲器管理

1決定誰可以訪問門

2決定誰可以訪問過程

允話弼綏至不一致代碼段,如果:

較d特權(CPL、RPL)W門

DPL、

允許調(diào)用期碼段,如果:

較寺權(CPL、RPL)W門

DPL、

B^DPL<CPL

圖5.24通過調(diào)用門的轉移

第5章卷儲器管理

圖5.25特權級和門及其間的調(diào)用

第5章卷儲器管理

CALL指令通過調(diào)用門向內(nèi)層程序轉移時,不僅切換特權級,

而且也需要切換棧。為使微機系統(tǒng)安全運行,操作系統(tǒng)應使每個

任務為每個特權級別保持一個獨立的棧。因而,當通過調(diào)用門向

內(nèi)層轉移時,必須從主調(diào)用程序的外層棧切換到目標的內(nèi)層棧。

內(nèi)層棧的特權級別由目標代碼段描述符的DPL決定。內(nèi)層棧的棧

段寄存器SS及棧指針ESP由任務狀態(tài)段TSS中適當(與目標代碼段

相同特權級)的指針進行初始化。TSS由操作系統(tǒng)為每個任務所建,

它包含有由操作系統(tǒng)初始化,且為只讀的指向0級、1級和2級的

48位棧指針:棧段選擇器(SS)和偏移量(ESP)o通常TSS中的ESP

指針設置成新棧段的高端限定值,因而在新的特權區(qū)總是建立起

第5章卷儲器管理

向內(nèi)調(diào)用

向外返回

返回后的

內(nèi)層棧

圖5.26切換到內(nèi)層棧

第5章卷儲器管理

5.向外層返回

CALL指令通過調(diào)用門把外層的程序轉移到內(nèi)層的過程(子程

序)后,當內(nèi)層的子程序執(zhí)行完時,需執(zhí)行一條段間返回指令RET,

把程序再從內(nèi)層轉向外層,并將堆棧從內(nèi)層切向外層。仍以圖5

26為例說明返回過程。首先,從內(nèi)層棧中彈出返回地址指針到

CS寄存器和EIP寄存器中,并且可以調(diào)整內(nèi)層棧的ESP值(如圖

5.26中ESP+16,該調(diào)整數(shù)16為RET16的操作數(shù)),使其跳過CALL

指令執(zhí)行時從外層??截惾雰?nèi)層棧的4個雙字參數(shù),指向外層棧

指針ESP的壓入處。返回地址指針的選擇子部分指向要返回的外

層棧。選擇子的RPL字段確定返回后的特權級。

第5章卷儲器管理

5.3.5頁級別保護

圖5.27頁表及頁目錄項目格式

第5章存儲器管理

表5.5頁級保護屬性

U/SiR/W用戶訪問權限系統(tǒng)訪問權限

00/讀/寫/執(zhí)行

醺[1,產(chǎn),讀/寫/執(zhí)行

1tft;:讀/執(zhí)行1讀/寫/執(zhí)行:

11讀/寫/執(zhí)行讀/寫/執(zhí)行

第5章卷儲器管理

表5.6頁目錄和頁表的保護組合

頁目錄項目頁表項目有效保護

特權訪問特權訪問特權訪問

監(jiān)督者R或R/W監(jiān)督者或用戶R或R/W監(jiān)督者R/W

用戶:

R或R/W監(jiān)督者R或R/W監(jiān)督者R/W

用戶R用戶R或R/W用戶R

用戶R/W用戶R用戶R

用戶R/W用戶R/W用戶R/W

第5章卷儲器管理31161510

I/O映射基址000000000000000T64H

任務切換0000000000000000任務的LOT選群60H

5.3.60000000000000000GS5CH

0000000000000000FS58H

0000000000000000DS54H

1.任務狀態(tài)段0000000000000000SS50H

0000000000000000cs4CH

0000000000000000ES48H

EDI44H

ESI40H

EBP3CH

ESP38H

EBX34H

EDX30H

ECX2CH

EAX28H

EFLAGS24H

EIP20H

保留1CH

0000000000000000CPL2演S18H

CPIN的ESP14H

0000000000000000CPL1的SS10H

CPL1的ESPCH

0000000000000000CPLO的SS8

CPLO的ESP4

圖52832位任務狀態(tài)段注:累添髏普落"變在初始化后不改變。其它區(qū)

第5章卷儲器管理

1)鏈接字段

任務A任務B任務CEFLAGS

圖5.29任務狀態(tài)段的鏈接鏈

第5章卷儲器管理

》兩層布措釬

任務狀態(tài)段中有3個內(nèi)層棧指針,均為48位全指針,依次存

放在TSS中偏移量為4、12及20開始的區(qū)域中,分別指向0級、1級

及2級堆棧的棧頂。當發(fā)生向內(nèi)層轉移時,便把相應的內(nèi)層棧指

針裝入到SS及ESP寄存器,以便切換到內(nèi)層堆棧,且把外層棧指

針壓入內(nèi)層棧中,以便當內(nèi)層向外層返回時恢復外層棧用。TSS

段的內(nèi)層棧指針沒有指向3級的棧指針(因為3級是最外層的特權

級)。如果任務在3級被掛起,由于沒有發(fā)生特權級轉移,堆棧不

用切換,且被掛起任務的指針保存在TSS的SS及ESP寄存器映象

中。

TSS段中的內(nèi)層棧指針只能讀出不能寫入,因而,向內(nèi)層棧

切換時總是將內(nèi)層棧初始化為同樣的棧指針。這是因為不可能發(fā)

第5章卷儲器管理

不方親前畫弱的筋薦露

這里所謂有關地址映射的基寄存器是指局部描述符表寄存器

LDTR和控制寄存器CR3。LDTR包含當前任務的LDT描述符的選

擇子。CR3包含頁轉換機制中頁目錄表的基地址(起始地址)。

任務切換時,處理器用新任務TSS段中偏移量為60H中的內(nèi)容(任

務的LDT描述符選擇子)裝入LDTR寄存器。這樣,便將局部描述

符表LDT變成新任務的LDT,從而也就改變了虛擬地址到線性地

址的轉換函數(shù)。同樣,在任務切換時,處理器用新任務TSS段中

偏移量為1CH處的內(nèi)容裝入CR3寄存器。這樣,就將頁目錄表變

成新任務的頁目錄表,從而改變了線性地址到物理地址的轉換函

數(shù)。這種在任務之間改變轉換函數(shù)的能力,也是保護機制的一部

分,使任務之間得到相互隔離。

第5章卷儲器管理

4)寄存器保存區(qū)域

TSS的寄存器保存區(qū)位于偏移量為20H?5FH的區(qū)域,用來保

存通用寄存器、處理器控制寄存器及段寄存器的內(nèi)容。其中各

段寄存器內(nèi)容都保存在一個32位的雙字中,雙字的低16位存放

16位選擇子,雙字的高16位為全零。當TSS對應的任務正在執(zhí)行

時,保存區(qū)域是未定義的。當前任務被切換時,通用寄存器、

處理器控制寄存器及段寄存器的當前值便存入當前任務的保存

區(qū)域中。這樣,當再次發(fā)生任務切換,并切換回原任務時,各

寄存器的值可由保存區(qū)域讀出,恢復成該任務切換前的狀態(tài),

以使原任務能恢復執(zhí)行。

第5章卷儲器管理

5)其它字段

TSS中偏移量從66H開始的區(qū)域存放I/O許可位圖,它定義了

可由TSS對應任務尋址的I/O端口地址。I/O許可位圖屬于TSS中

的附加字段。

TSS中偏移量為64H處的字是為任務提供的特別的屬性。

80386中只定義了一個調(diào)試陷阱屬性位T(位于64H處字的最低位),

字的其它位為全零。當發(fā)生任務切換時,進入任務的T位為1,

則在任務切換后,新任務的第一條指令執(zhí)行之前產(chǎn)生調(diào)試陷阱。

調(diào)試陷阱可使軟件在任務之間根據(jù)需要有效地共享調(diào)試寄存器。

第5章卷儲器管理

溫馨提示

  • 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

提交評論