操作系統作業有一題不怎麼會,當時沒有認真聽講,老師又說期末考試的題目來源於作業,這下我開始慌了,於是就各種查資料,按照網上的講解 就有了這個博客。
FIFO和LRU
1,FIFO 先進先出
思想: 置換最先調入內存的頁面,即置換在內存中駐留時間最久的頁面。按照進入內存的先後次序排列成隊列, 從隊尾 進入,從隊首刪除。但是該算法會淘汰經常訪問的頁面,不適應進程實際運行的規律,目前已經很 少使用。
2,LRU 最近最久未使用
思想:置換最近一段時間以來最長時間未訪問過的頁面。根據程序局部性原理,剛被訪問的頁面,可能馬上又要被 訪問;而較長時間內沒有被訪問的頁面,可能最近不會被訪問。
LRU算法普偏地適用於各種類型的程序,但是系統要時時刻刻對各頁的訪問歷史情況加以記錄和更新,開銷太 大,因此LRU算法必須要有硬件的支持。
下面就作業中的一題進行例子講解
題目:對於請求分頁系統,假設有下列的頁面引用序列 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 假設分配4個物理頁,試分別計算採用FIFO,LRU頁面置換算法的缺頁中斷率。
由於數據太多 我就手寫的,看不懂的可以給我留言,,,,那個如果我計算錯了 歡迎指正謝謝~
更正 到考試時才發現我理解錯了 附上正解
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
頁面1 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
頁面2 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3
頁面3 1,2,3,4,2,1,5,6,6,1,2,3,7,6,3,3,1,2
頁面4 1,1,3,4,2,1,5,5,6,1,2,2,7,6,6,6,1
1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,0,0
缺頁中斷率:10/20×100%=50%