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 優點 該演算法實現簡單,只需要把乙個程序已調入記憶體的頁面按先後次序鏈結成乙個佇列,並設定乙個指標,稱為替換指標,...