離散分配方式——基本頁式存儲管理方式

在前面的博客中提到了連續分配方式。 本文主要是描述離散分配方式中的基本分頁式存儲管理。

爲什麼引入?

在連續分配方式中,內存分配之後會產生大量的“碎片”,雖然在可重定位分區分配方式中引入了“緊湊”的思想,但是會花費很多開銷。 如果可以將一個進程離散的裝入到許多不同的分區中,就沒有那些麻煩了,於是離散分配方式的思想就產生了。

如果離散分配方式的基本單位是頁,就稱爲分頁存儲管理方式;還有一種基本單位是段,稱爲分段式存儲管理方式,這裏先不介紹。

1.頁面與頁表

1) 頁面和物理塊

  分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱爲頁面或,把內存空間分成與頁面相同大小的若干個存儲塊,稱爲(物理)或頁框(frame),也同樣爲它們加以編號。在爲進程分配存儲空間的時候,以塊爲單位將進程中的若干頁放入可不相鄰接的物理塊中。由於進程的最後一頁經常裝不滿一塊而形成了不可利用的碎片,稱之爲頁內碎片

2) 頁面大小

  在分頁系統中的頁面其大小應適中,且頁面的大小應該是2的冪,通常爲512B-8KB。每個頁面的大小是固定的,由系統決定。

2. 地址結構

它含有兩部分:前一部分爲頁號 P,後一部分爲位移量 W(或稱爲頁內地址)。  地址空間最多允許有1M頁。

邏輯地址到頁號和頁內偏移量的轉換:

頁號=[ 邏輯地址 / 頁面大小 ]

頁內偏移量=[ 邏輯地址 MOD 頁面大小 ]

3.頁表

頁表的作用是實現從頁號到物理塊號的地址映射。

頁表中的每一個頁表項包含兩個字段,一個是頁號,另一個是塊號。

4.地址變換機構

 

邏輯地址到物理地址映射過程:

首先用頁表長度和頁號大小進行比較,如果頁號大於或等於頁表長度,則出現地址越界錯誤;

若沒有出現越界錯誤,則先用頁表始止頁號和頁表項長度的乘積相加,可以得到該頁表項在頁表中的位置然後在從頁表項中讀取到物理塊號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章