基本分頁儲存管理方式
連續分配儲存管理方式產生的問題
在分割槽儲存管理中,要求把程序放在一個連續的儲存區中,因而會產生許多碎片。
碎片問題的解決方法
(1)拼接/緊湊技術----代價較高。
(2)離散分配方式---允許將作業/程序離散放到多個不相鄰接的分割槽中,就可以避免拼接。
離散分配方式
分頁式儲存管理:離散分配的基本單位是頁
分段式儲存管理:離散分配的基本單位是段
段頁式儲存管理:離散分配的基本單位是段、頁
什麼是頁
將一個使用者程序的地址空間(邏輯)劃分成若干個大小相等的區域,稱為頁或頁面,頁面大小由地址結構(邏輯)決定 ,併為各頁從0開始編號。
什麼是塊
記憶體空間也分成若干個與頁大小相等的區域,稱為(儲存、物理)
記憶體分配
在為程序分配記憶體時,以塊為單位,將程序中若干頁裝入到多個不相鄰的塊中,最後一頁常裝不滿一塊而出現頁內碎片。
頁表的出現
在分頁系統中,允許將程序的各個頁離散地儲存在記憶體的任一物理塊中,為保證程序仍然能夠正確地執行,即能在記憶體中找到每個頁面所對應的物理塊,系統又為每個程序建立了一張頁面映像表,簡稱頁表。一個頁表中包含若干個表目,1.表目的自然序號對應於使用者程式中的頁號。2.表目中的塊號是該頁對應的物理塊號。
記憶體地址的獲取
以頁號查頁表,得到對應頁裝入記憶體的塊號。即可求出:記憶體地址=物理塊號×頁大小+頁內地址。
例:在採用頁式儲存管理的系統中,某作業J的邏輯地址空間為4頁(每頁2048位元組),且已知該作業的頁面映像表如下:
頁號 | 塊號 |
0 | 2 |
1 | 4 |
2 | 6 |
3 | 8 |
試藉助地址變換圖求出有效邏輯地址4865所對應的實體地址.
解:頁號 4865/2048=2 頁內位移 4865%2048=769,過程如下:
從上面我們可以看出:CPU要想獲取一個數據時,必須兩次訪問記憶體:
1、從記憶體中的頁表中,尋找對應的物理塊號,將物理塊號與頁內地址組合成實體地址。
2、根據組合成的實體地址,來獲取資料。
為了提高效率呢,就引進了塊表,什麼是快表呢?
在地址變換機構中,增設一個具有並行查尋能力的特殊高速緩衝暫存器,稱為“聯想儲存器”或“快表”。
在引入快表的分頁儲存管理方式中,通過快表查詢,可以直接得到邏輯頁所對應的物理塊號,由此拼接形成實際實體地址,減少了一次記憶體訪問,縮短了程序訪問記憶體的有效時間。但是,由於快表的容量限制,不可能將一個程序的整個頁表全部裝入快表,所以在快表中查詢到所需表項存在著命中率的問題,。總體上來說,還是減少了訪問記憶體的時間。