三種頁面置換演算法

2021-09-20 12:58:55 字數 1534 閱讀 6499

1、為什麼要有頁面置換演算法

程式執行過程中,有時要訪問的頁面不在記憶體中,而需要將其調入記憶體。但是記憶體已經無空閒空間儲存頁面,為保證程式正常執行,系統必須從記憶體中調出一頁程式或資料送到磁碟對換區,此時需要一定的演算法來決定到低需要調出那個頁面。通常將這種演算法稱為「頁面置換演算法」。

2.頁面置換演算法的分類

2.1 最佳置換演算法(opt)

(1)實現原理:每次選擇未來長時間不被訪問的或者以後永不使用的頁面進行淘汰。

(2)舉例:假定系統為某程序分配了三塊物理塊,並有以下頁面:

7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

程式執行時,先將7,0,1三個頁面裝入記憶體。

之後,當程序要訪問頁面2的時候,將會產生缺頁中斷。此時根據最佳置換演算法,因為頁面7要在第18次才能訪問,頁面0在第5次訪問,頁面1在第14次訪問,頁面7最久不被使用,所以將頁面7淘汰;

當程序0要訪問時,因為它已存在在記憶體所以不必產生缺頁中斷;

當頁面3要訪問時,又引起缺頁中斷淘汰1;

依次類推直到最後乙個頁面訪問完。下圖為採用最佳置換演算法的置換圖。由圖可得,採用最佳置換演算法發生了6次缺頁中斷。

(3)特點

缺點:最佳置換演算法是一種理想化演算法,具有較好的效能,但是實際上無法實現(無法預知乙個程序中的若干頁面哪乙個最長時間不被訪問);

優點:最佳置換演算法可以保證獲得最低的缺頁率

2.2 先進先出頁面置換演算法(fifo)

(1)實現原理:淘汰最先進入記憶體的頁面,即選擇在頁面待的時間最長的頁面淘汰。

(2)舉例

依舊是上乙個演算法的例子

程式執行時,先將7,0,1三個頁面裝入記憶體。

之後,當程序要訪問頁面2的時候,將會產生缺頁中斷。此時根據先進先出置換演算法,因為頁面7是最先進入記憶體的,所以將頁面7換出;

當程序0要訪問時,因為它已存在在記憶體所以不必產生缺頁中斷;

在程序要訪問頁面3的時候,因為頁面0是最早進入記憶體的,所以將頁面0換出;

依次類推直到最後乙個頁面訪問完。下圖為採用先進先出置換演算法的置換圖。由圖可得,採用最佳置換演算法發生了12次缺頁中斷。先進先出的頁面置換比最佳置換演算法的頁面置換正好多了一倍;

(3)特點

優點:先進先出演算法實現簡單,是最直觀的乙個演算法

缺點:先進先出的效能最差,因為與通常頁面的使用規則不符合,所以實際應用少

2.3 最近最久未使用置換演算法(lru)

(1)實現原理:選擇最近且最久未被使用的頁面進行淘汰

(2)舉例:

依舊是上乙個演算法的例子

程式執行時,先將7,0,1三個頁面裝入記憶體。

之後,當程序要訪問頁面2的時候,將會產生缺頁中斷。此時根據最近最久未使用置換演算法,因為頁面7是最近最久未被使用的的,所以將頁面7淘汰;

當程序0要訪問時,因為它已存在在記憶體所以不必產生缺頁中斷;

在程序要訪問頁面3的時候,因為頁面1是最近最久未被使用的,所以將頁面1淘汰;

依次類推直到最後乙個頁面訪問完。下圖為採用最近最久未使用的置換演算法的置換圖。由圖可得,採用最近最久未使用置換演算法發生了9次缺頁中斷。

(3)特點

三種頁面置換演算法

1 為什麼要有頁面置換演算法 程式執行過程中,有時要訪問的頁面不在記憶體中,而需要將其調入記憶體。但是記憶體已經無空閒空間儲存頁面,為保證程式正常執行,系統必須從記憶體中調出一頁程式或資料送到磁碟對換區,此時需要一定的演算法來決定到低需要調出那個頁面。通常將這種演算法稱為 頁面置換演算法 2.頁面置...

三種頁面置換演算法(詳解)

位址對映過程中,若在頁面中發現所要訪問的頁面不在記憶體中,則產生缺頁中斷。當發生缺頁中斷時,如果作業系統記憶體中沒有空閒頁面,則作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。一 先進先出 fifo 1 原理 把記憶體中駐留...

作業系統 三種頁面置換演算法

一 演算法描述 1.先進先出 fifo 置換演算法 1 描述 fifo演算法是最早出現的置換演算法。該演算法總是淘汰最先進入記憶體的頁面,即選擇在記憶體中駐留時間最久的頁面予以淘汰。2 優點 該演算法實現簡單,只需要把乙個程序已調入記憶體的頁面按先後次序鏈結成乙個佇列,並設定乙個指標,稱為替換指標,...