請求頁式管理中的置換算法(FIFO、LRU、OPT),求缺頁率例題


置換算法在內存中沒有空閑頁面時被調用,它的目的是選出一個被淘汰的頁面。
如果內存中有足夠的空閑頁面存放所調入的頁,則不必使用置換算法。把內存和外存統一管理的真正目的是把那些被訪問概率非常高的頁存放在內存中。因此,置換算法應該置換那些被訪問概率最低的頁,將它們移出內存。比較常用的置換算法有以下幾種:

一、先進先出(First In First Out,FIFO)算法

FIFO算法總是選擇在內存駐留時間最長的一頁將其淘汰。Belady現象是指:采用 FIFO算法時,如果對—個進程未分配它所要求的全部頁面,有時就會出現分配的頁面數增多但缺頁率反而提高的異常現象,原因在於它根本沒有考慮程序執行的動態特征

二、最近最久未使用(Least Recently Used,LRU)算法

該算法的基本思想是:當需要淘汰某一頁時,選擇離當前時間最近的一段時間內最久沒有使用過的頁先淘汰。該算法的主要出發點是,如果某頁被訪問了,則它可能馬上還要被訪問。或者反過來說,如果某頁很長時間未被訪問,則它在最近一段時間也不會被訪問。

三、理想型淘汰算法(Optimal Replacement Algorithm,OPT)

該算法淘汰在訪問串中將來再也不出現的或是在離當前最遠的位置上出現的頁。這樣,淘汰掉該頁將不會造成因需要訪問該頁又立即把它調入的現象。但是,這種算法無法實現,因為它要求必須預先知道每一個進程的訪問串。

缺頁率指的是訪問頁面失敗次數除以進程頁面訪問總次數。訪問頁面失敗次數即下題中除全空列以外的個數。

四、例題

(一)在頁式虛擬存儲管理的計算機系統中,作業在主存中分配到3塊主存空間,作業執行時訪問頁的順序為2,3,2,1,5,2,4,5,3,2,5,3,請問用OPT, FIFO 和LRU 替換算法時,它們的缺頁中斷率分別是多少。(要求圖示出內存頁面變化情況)
在這里插入圖片描述
在這里插入圖片描述
(二)在一個請求分頁虛擬存儲管理系統中,一個程序運行的頁面走向是:1,2,3,1,4,5,1,2,1,4,5,3,4,5,對於分配給程序4個頁框的情況,分別用FIFO和LRU算法,求出缺頁中斷次數,並給出缺頁率。
在這里插入圖片描述
(三)對於如下的頁面訪問序列:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5。當內存塊數量為3時,試問:使用FIFO、LRU置換算法產生的缺頁中斷是多少?寫出依次產生缺頁中斷后應淘汰的頁,並計算出個算法的缺頁率?

在這里插入圖片描述
1)使用FIFO算法時,缺頁率:9/12×100%=75%
2)使用LRU算法時,缺頁率:10/12×100%=83%

(四)在頁式虛擬存儲管理的計算機系統中,運行一個共有8頁的作業,且作業在主存中分配到4塊主存空間,作業執行時訪問頁的順序為6,0,1,2,0,4,3,1,2,6,7,4,2,5,6,請問用FIFO和LRU替換算法時,它們的缺頁中斷率分別是多少。(要求圖示出內存頁面變化情況)
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM