1. 程式人生 > >【作業系統】請求分頁儲存管理方式

【作業系統】請求分頁儲存管理方式

請求頁表機制

圖示

  • 狀態位 P:指示該頁是否已調入記憶體。 供程式訪問時參考
  • 訪問欄位 A:記錄本頁在一段時間內被訪問的次數或最近未被訪問的時間。 供選擇頁面換出時參考
  • 修改位 M:表示該頁在調入記憶體後是否被修改過。若修改過,則置換該頁時需重寫該頁至外存。 供置換頁面時參考
  • 外存地址:指出該頁在外存上的地址。供調入該頁時參考

缺頁中斷機構

在請求分頁系統中,當訪問的頁不在記憶體,便產生一個缺頁中斷。

缺頁中斷與一般中斷的區別:

  • 缺頁中斷是在指令執行期間產生和處理中斷訊號(要訪問的指令或資料不在記憶體) 。
  • 一條指令在執行期間,可能產生多次缺頁中斷。

地址變換機構

圖示

圖示

請求分頁儲存管理

例:一個採用請求分頁儲存管理的計算機系統,其記憶體(實存)容量為 256M 位元組,虛擬記憶體容量(給使用者的最大地址空間)為 4G 位元組,頁面大小為 4K 位元組,試問:

  1. 實存實體地址應設為多少位?
    256M = 2^28,所以為28位

  2. 實存中有多少物理塊?
    256M/4K = 64K

  3. 實存中最大塊號是多少?
    64K-1

  4. 虛存地址應設多少位?
    4G = 2^32,所以為32位

  5. 虛擬地址空間最多可以有多少頁?
    4G/4K = 1M

  6. 頁內最大偏移量是多少?
    4k-1 = 4*1024-1 = 4095

請求分頁中的記憶體分配

最小物理塊數的確定

最小物理塊數指能保證程序正常執行所需的最小的物理塊數,最小物理塊數與計算機的硬體結構有關,取決於指令的格式、功能和定址方式。

採用直接定址方式,所需的最少物理塊數為 2。一塊是用於存放指令,另一塊用於存放資料。

間接定址時,至少要求有三個物理塊。 (間接定址中一些物理塊放的是其它物理塊的塊號)

物理塊的分配策略

固定分配區域性置換

為每個程序分配固定數目 n 的物理塊,在整個執行中都不改變。如出現缺頁則從該程序的頁面中置換一頁。

每個程序分配多少個物理塊難以確定.

若太少,會頻繁地出現缺頁中斷,降低了系統的吞吐量。

若太多,記憶體中駐留的程序數目減少,可能造成 CPU空閒或其它資源空閒的情況。

可變分配全域性置換

為每個程序分配一定數目的物理塊,但 OS 自留一空閒塊佇列,若發現缺頁,則從空閒塊佇列中分配一空閒塊與該程序,並調入缺頁於其中。當空閒塊佇列用完時,OS 才從記憶體中任選擇一頁置換。

可變分配區域性置換

為每個程序分配一定數目的物理塊,若發現缺頁,則從該程序的頁面中置換一頁,不會影響其它程序的執行。根據程序缺頁率高低,則可增加或減少分配給該程序的物理塊。

物理塊分配演算法

在採用固定分配策略時,可採用以下幾種演算法:

平均分配演算法:平均分配給各個程序。未考慮程序大小,小程序浪費物理塊,大程序嚴重缺頁。

按比例分配演算法:根據程序的大小按比例分配給各個程序。如果共有 n 個程序,每程序頁面數 S i ,系統可用物理塊總數為 m,則每程序分到的物理塊數 b i :

圖示

考慮優先權的分配演算法:將系統提供的物理塊一部分根據程序大小先按比例分配給各個程序,另一部分再根據各程序的優先權分配物理塊數。

頁面調入策略

何時調入頁面

預調頁策略

預調頁:將預計在不久之後便會被訪問的頁面預先調入記憶體。

程序的頁一般存放在外存的一個連續區域中。一次調入若干個相鄰的頁會比一次調入一頁更高效。

但如果調入的一批頁面中的大多數都未被訪問,則浪費了記憶體。

請求調頁策略

當程序在執行中發生缺頁時,就立即提出請求,由系統將缺頁調入記憶體。但這種策略每次僅調入一頁,須花費較大的系統開銷,增加了啟動磁碟 I/O 的頻率。

從何處調入頁面

在請求分頁系統中,外存分成了按離散分配方式存放檔案的檔案區和按連續分配方式存放對換頁的對換區。程序發出缺頁請求時,從何處將缺頁調入記憶體呢?

對換區:如果系統有足夠的對換區空間,執行前可將與程序相關的檔案從檔案區複製至對換區,以後缺頁時全部從對換區調頁。

檔案區:如果系統沒有足夠的對換區空間,凡是不會被修改的檔案,直接從檔案區調頁,不必回寫(換出) 。對可能會修改的檔案第一次直接從檔案區調頁,換出時換至對換區,以後從對換區調頁。

UNIX 方式:凡未執行過的頁面均從檔案區調頁,執行過的頁面和換出的頁面均從對換區調頁。

頁面調入過程

圖示

缺頁率

如果一個程序的邏輯空間為 n 頁,分配到的物理塊為 m(m

缺頁中斷處理時間

頁面置換時還需要考慮置換代價。

沒有被修改過的頁面可以直接放棄,而修改過的頁面必須進行儲存。

如果被置換頁面被修改過的概率是 β,其缺頁中斷處理時間為 T a ,被置換頁面沒有被修改過的缺頁中斷處理時間為 T b ,顯然 T a > T b 。則缺頁中斷處理時間 T:
公式