複製鏈接
請複製以下鏈接發送給好友

先進先出算法

鎖定
先進先出算法是最簡單的分頁替換算法,是指每次有新的分頁需要調入時,會選擇調入內存時間最久的分頁換出。它簡單,容易實現,但這種絕對的公平方式容易導致效率的降低。
中文名
先進先出算法
外文名
First In First Out Algorithm
地    位
最簡單的分頁替換算法
優    點
簡單易實現
缺    點
容易導致效率的降低
實現工具
鏈表

目錄

先進先出算法定義

先進先出(First In First Out,FIFO)算法的核心是更換最早進入內存的頁面。先進先出是任何人都能直觀想到的辦法,因為它是人類的天性。 [1] 
最簡單的分頁替換算法就是先進先出算法,當每次有新的分頁需要調入時,會選擇調入內存時間最久的分頁換出。有兩種實現的方法:第一種是記錄每個分頁被調入到頁框的時間,當每次需要換出分頁時,會找到調入時間最早的一頁,也就是在主存儲器中存在最久的分頁。另外一種方式就是利用FIFO隊列來實現,當要進行分頁替換時,就把隊列最前端的分頁換出,再把要調入的分頁放到隊列的末端。 [2] 

先進先出算法實現機制

使用鏈表將所有在內存的頁面按照進入時間的早晚鏈接起來,然後每次置換鏈表頭上的頁面就行了。新加進來的頁面則掛在鏈表的末端。 [1] 

先進先出算法特點

先進先出算法優點

簡單,且容易實現。 [1] 

先進先出算法缺點

這種絕對的公平方式容易導致效率的降低。例如,如果最先加載進來的頁面是經常被訪問的頁面,這樣做很可能造成常被訪問的頁面替換到磁盤上,導致很快就需要再次發生缺頁中斷,從而降低效率。 [1] 
參考資料
  • 1.    鄒恆明著.計算機的心智:操作系統之哲學原理.北京:機械工業出版社,2009:170-171
  • 2.    薛智文編著.操作系統.北京:中國鐵道出版社,2003:165-166