1. 程式人生 > >分頁儲存管理方式介紹及例題

分頁儲存管理方式介紹及例題

一、引入

  在儲存器管理中連續分配方式會形成許多“碎片”,雖然可以通過“緊湊”方法將許多碎片拼接成可用的大塊空間,但須為之付出很大的開銷,如果一個程序能夠直接分散地裝入到許多不相鄰接的分割槽中,便可充分的利用空間,無需再進行緊湊。基於這一思想便產生了離散分配方式,根據在離散分配時所分配地址空間的基本單位不同,又可將離散分配方式分為以下三種:(1)分頁儲存管理方式(2)分段儲存管理方式(3)段頁式儲存管理方式,今天主要介紹分頁儲存管理方式

二、分頁儲存管理的基本方法

1.頁:分頁儲存管理將程序的邏輯地址空間分成若干個頁,並對各頁加以編號,從0開始,如第0頁,第1頁等

2.物理塊(頁框):記憶體實體地址空間按2n

等分成頁框,並從0開始連續編號:0,1,2等

3.地址結構:

 分頁地址中的地址結構如下:

它包含兩部分內容:第一部分為頁號P,後一部分為偏移量d,即頁內地址。對某特定機器,其地址結構是一定的。若給定一個邏輯地址空間中地址為A,頁面大小為L,則頁號和頁內地址d可按照下式求得:

    

其中INT是整除函式,括號表示向下取整,MOD是取餘函式由此,作業的邏輯結構可以表示為:V=(P,d),

4.頁表(PMT/Page Mapping Table):在分頁系統中,允許程序的各個頁離散地儲存在記憶體地任一物理塊中,為保證程序仍然能夠正確地執行,即能在記憶體中找到各個頁面所對應地物理塊,系統又為每個程序建立了一張頁面印象表,簡稱頁表,它地作用是實現從頁號到物理塊號的地址對映

 

5.頁表地址暫存器:儲存當前執行程序頁表的起始地址和頁表的長度

6.分頁儲存管理方式示例

三、地址變換機構

1.基本地址變換(直接地址映像):藉助頁表、頁表暫存器完成作業邏輯地址(虛地址)到記憶體實體地址的變換

問題:從虛地址轉換為實體地址,然後再完成地址訪問,共訪問幾次主存,效率是多少?  答:共訪問兩次主存,效率為50%

2.具有快表的地址變換:增設若干具有並行查詢能力的特殊高速緩衝暫存器(聯想暫存器\快表),儲存當前執行程序的部分\全部頁表表目,

具體流程為:查快表,找到則訪問記憶體直接得實體地址,沒找到則先訪問記憶體查頁表再訪問記憶體查到實體地址

3.分頁基本地址變換示例:

4.具有快表的地址變換示例:

四、例題

答:因為邏輯地址包括頁地址+偏移量,所以邏輯地址的大小為頁的數量×頁的大小,所以此題應為256×210 = 218

 

答:(1)邏輯地址為1023,則它所在的頁號為1023/1K = 0,它的偏移量為1023 MOD 1K = 1023,所以它對應的主存塊為2號塊,實體地址為2×1K+1023 = 3071

  (2)邏輯地址為2500,則它所在的頁號為2500/1K = 2,它的偏移量為2500 MOD 1K = 452,所以它對應的主存塊為6號塊,實體地址為6×1K+452 = 6596

  (3)邏輯地址為3500,則它所在的頁號為3500/1K = 3,它的偏移量為3500 MOD 1K = 428,所以它對應的主存塊為7號塊,實體地址為7×1K+428 = 7596

  (4)邏輯地址為4500,則它所在的頁號為4500/1K = 4,不存在此頁號。所以是越界中斷,4500這個邏輯地址有誤,超過了此程序的最大頁

 

答:有效訪問時間為 t = 20% ×(20 + 100 × 2)+ 80% × ( 20 + 100) = 140ns,是這樣的,如果能夠在聯想暫存器中查到我們要的表,那麼只需要一次訪問聯想暫存器的時間和一次記憶體訪問即可直接找到對應的物理塊號,如果在聯想暫存器中找不到我們要的表,那麼需要先查頁表(相當於訪問一次記憶體),再根據頁表查詢其對應的物理塊號(再訪問一次記憶體),所有有效訪問時間即為兩者的加權之和

 

答:設命中率為p,則由題意可得方程 p × (100+180) +(1-p)×(100 + 2×180)= 325,解方程得 p = 75%