計算機作業系統儲存管理 分段與分頁

2021-06-25 12:10:27 字數 4323 閱讀 8263

. 分頁儲存管理

1.基本思想

使用者程式的位址空間被劃分成若干固定大小的區域,稱為「頁」,相應地,記憶體空間分成若干個物理塊,頁和塊的大小相等。可將使用者程式的任一頁放在記憶體的任一塊中,實現了離散分配。

2. 分頁儲存管理的位址機構

15          12         11                  0

頁號p                 

頁內位移量w頁號

4位,每個作業最多2的

4次方=16頁,表示頁號從

0000~1111

(24-1

),頁內位移量的位數表示頁的大小,若頁內位移量

12位,則2的

12次方

=4k,頁的大小為

4k,頁內位址從

000000000000~111111111111

若給定乙個邏輯位址為

a,頁面大小為l,則

頁號p=int[a/l]

,頁內位址

w=a  mod  l

3. 頁表

分頁系統中,允許將程序的每一頁離散地儲存在記憶體的任一物理塊中,為了能在記憶體中找到每個頁面對應的物理塊,系統為每個程序建立一張頁面對映表,簡稱頁表。頁表的作用是實現從頁號到物理塊號的位址對映。

頁表:頁號物理塊號

訪問控制

0        2    

1       15(f

)2       14(e

)3       1  

4. 位址變換 (

1)程式執行時,從

pcb中取出頁表始址和頁表長度(

4),裝入頁表暫存器

ptr。 (

2)由分頁位址變換機構將邏輯位址自動分成頁號和頁內位址。 例:

11406d=0010|110010001110b=2c8eh

頁號為2,

位移量為

c8eh=3214d

或11406  div  4096=2

11406  mod  4096=3214(3

)將頁號與頁表長度進行比較

(2<4)

,若頁號大於或等於頁表長度,則表示本次訪問的位址已超越程序的位址空間,產生越界中斷。 (

4)將頁表始址與頁號和頁表項長度的乘積相加,便得到該頁表項在頁表中的位置。 (

5)取出頁描述子得到該頁的物理塊號。

2       14(e

) (6

)對該頁的訪問控制進行檢查。 (

7)將物理塊號送入實體地址暫存器中,再將有效位址暫存器中的頁內位址直接送入實體地址暫存器的塊內位址欄位中,拼接得到實際的實體地址。 例:

0010|110010001101b

1110|110010001101b=ec8eh=60558d

或14*4096+3214=60558d

5. 具有快表的位址變換機構

分頁系統中,

cpu每次要訪問乙個資料,都要兩次訪問記憶體(訪問頁表、訪問實際實體地址)。為提高位址變換速度,增設乙個具有並行查詢能力的特殊高速緩衝儲存器,稱為「聯想儲存器」或「快表」,存放當前訪問的頁表項。

二.分段儲存管理

1.基本思想

將使用者程式位址空間分成若干個大小不等的段,每段可以定義一組相對完整的邏輯資訊。儲存分配時,以段為單位,段與段在記憶體中可以不相鄰接,也實現了離散分配。

2. 分段儲存方式的引入

方便程式設計

分段共享

分段保護

動態鏈結

動態增長

3. 分段位址結構

作業的位址空間被劃分為若干個段,每個段定義了一組邏輯資訊。例程式段、資料段等。每個段都從

0開始編址,並採用一段連續的位址空間。

段的長度由相應的邏輯資訊組的長度決定,因而各段長度不等。整個作業的位址空間是二維的。

15           12   11                  0

段號段內位移量 段號

4位,每個作業最多

24=16

段,表示段號從

0000~1111

(24-1

);段內位移量

12位,

212=4k

,表示每段的段內位址最大為

4k(各段長度不同),從

000000000000~111111111111

4. 段表 段號

段長起始位址

訪問控制

0     1k     4096    

1     4k     17500    

2     2k     8192  

5. 位址變換

(1). 

程式執行時,從

pcb中取出段表始址和段表長度(

3),裝入段表暫存器。

(2). 

由分段位址變換機構將邏輯位址自動分成段號和段內位址。 例:

7310d=0001|110010001110b=1c8eh

段號為1,

位移量為

c8eh=3214d

(3). 

將段號與段表長度進行比較

(1<3)

,若段號大於或等於段表長度,則表示本次訪問的位址已超越程序的位址空間,產生越界中斷。

(4). 

將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。

(5). 

取出段描述子得到該段的起始實體地址。

1         4k             17500

(6). 

檢查段內位移量是否超出該段的段長

(3214<4k)

,若超過,產生越界中斷。

(7). 

對該段的訪問控制進行檢查。

(8). 

將該段基址和段內位址相加,得到實際的實體地址。 例:

0001|110010001101b

起始位址

17500d+

段內位址

3214d=20714d

三.分頁與分段的主要區別

分頁和分段有許多相似之處

,比如兩者都不要求作業連續存放

.但在概念上兩者完全不同

,主要表現在以下幾個方面

:(1)

頁是資訊的物理單位

,分頁是為了實現非連續分配

,以便解決記憶體碎片問題

,或者說分頁是由於系統管理的需要

.段是資訊的邏輯單位

,它含有一組意義相對完整的資訊

,分段的目的是為了更好地實現共享

,滿足使用者的需要

.(2)

頁的大小固定

,由系統確定

,將邏輯位址劃分為頁號和頁內位址是由機器硬體實現的

.而段的長度卻不固定

,決定於使用者所編寫的程式

,通常由編譯程式在對源程式進行編譯時根據資訊的性質來劃分

.(3)

分頁的作業位址空間是一維的

.分段的位址空間是二維的

.四.段頁式儲存管理

1.基本思想:

分頁系統能有效地提高記憶體的利用率,而分段系統能反映程式的邏輯結構,便於段的共享與保護,將分頁與分段兩種儲存方式結合起來,就形成了段頁式儲存管理方式。

在段頁式儲存管理系統中,作業的位址空間首先被分成若干個邏輯分段,每段都有自己的段號,然後再將每段分成若干個大小相等的頁。對於主存空間也分成大小相等的頁,主存的分配以頁為單位。

段頁式系統中,作業的位址結構包含三部分的內容:段號

頁號頁內位移量

程式設計師按照分段系統的位址結構將位址分為段號與段內位移量,位址變換機構將段內位移量分解為頁號和頁內位移量。

為實現段頁式儲存管理,系統應為每個程序設定乙個段表,包括每段的段號,該段的頁表始址和頁表長度。每個段有自己的頁表,記錄段中的每一頁的頁號和存放在主存中的物理塊號。 2

(1)程式執行時,從

pcb中取出段表始址和段表長度,裝入段表暫存器。 (

2)由位址變換機構將邏輯位址自動分成段號、頁號和頁內位址。 (

3)將段號與段表長度進行比較,若段號大於或等於段表長度,則表示本次訪問的位址已超越程序的位址空間,產生越界中斷。 (

4)將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。 (

5)取出段描述子得到該段的頁表始址和頁表長度。 (

6)將頁號與頁表長度進行比較,若頁號大於或等於頁表長度,則表示本次訪問的位址已超越程序的位址空間,產生越界中斷。 (

7)將頁表始址與頁號和頁表項長度的乘積相加,便得到該頁表項在頁表中的位置。 (

8)取出頁描述子得到該頁的物理塊號。 (

9)對該頁的訪問控制進行檢查。 (

10)將物理塊號送入實體地址暫存器中,再將有效位址暫存器中的頁內位址直接送入實體地址暫存器的塊內位址欄位中,拼接得到實際的實體地址。

分段分頁儲存 (計算機作業系統)

一 各種儲存器 1 主儲存器 簡稱記憶體 主存 可執行儲存器 主要部件,儲存程序執行時的程式和資料,若干兆位元組 中等速度 中等 主儲存器的訪問速度遠低於cpu執行指令的速度,為緩和這一矛盾,在計算機系統中引入了暫存器和快取記憶體。2 暫存器 速度最快,昂貴,容量小。以字 word 為單位。暫存器用...

計算機作業系統之儲存管理

儲存管理 就是對記憶體的管理。記憶體管理提高儲存器的利用率以及從邏輯上擴充儲存器。儲存管理功能 記憶體的 與分配,位址變換 程式中的邏輯位址與記憶體中的實體地址之間的轉換 記憶體擴充 借助虛擬技術或覆蓋技術從邏輯上擴充記憶體容量 記憶體保護 保證進入記憶體的各道作業都在自己的儲存空間執行,互不干擾 ...

計算機作業系統 儲存器管理

1.1 單一連續分配 1.2 固定分割槽分配 1.2.1 分割槽大小相等 1.2.2 分割槽大小不相等 1.3 動態分割槽分配 1.3.1 資料結構 1.3.2 動態分配分割槽演算法 1.3.2.1 基於順序搜尋的動態分割槽分配演算法 1.3.2.1.1 首次適應演算法 first fit 1.3....