關於緩衝調度演算法FIFO、LRU、OPT這三種置換演算法的缺頁次數

來源:互聯網
上載者:User

這三個置換演算法,或者說緩衝調度演算法,其實來源於作業系統。作業系統的頁置換演算法。
FIFO:即 First In, First Out 先進先出演算法。
LRU: Least recently used,最近最少使用演算法。即是將最近最少使用的對象踢出記憶體。
OPT: Optimal,最優替換,也就是上帝模式。它是考慮當前記憶體中的對象,以及將來要放進記憶體的對象,然後,將在最遠的將來才被訪問的頁面踢出記憶體。所以,這個演算法在轉換時,需要把將來即將放進記憶體的對象考慮進去,才能找到要踢出記憶體的對象。

看下面的詳細例子,瞭解演算法的具體策略。

考慮下述頁面走向:

          1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6

     當記憶體塊數量分別為3時,試問FIFO、LRU、OPT這三種置換演算法的缺頁次數各是多少?

   答:缺頁定義為所有記憶體塊最初都是空的,所以第一次用到的頁面都產生一次缺頁。

       當記憶體塊數量為3時:

   

 

  發生缺頁中斷的次數為16。

  在FIFO演算法中,先進入記憶體的頁面被先換出。當頁6要調入時,記憶體的狀態為4、1、5,考查頁6之前調入的頁面,分別為5、1、2、4,可見4為最先進入記憶體的,本次應換出,然後把頁6調入記憶體。

      

 

  發生缺頁中斷的次數為15。

  在LRU演算法中,最近最少使用的頁面被先換出。當頁6要調入時,記憶體的狀態為5、2、1,考查頁6之前調入的頁面,分別為5、1、2,可見2為最近一段時間內使用最少的,本次應換出,然後把頁6調入記憶體。

    

 

  發生缺頁中斷的次數為11。     在 OPT 演算法中,在最遠的將來才被訪問的頁面被先換出。當頁 6 要調入時,記憶體的狀態為 1 、 2 、 5 ,考查頁 6 後面要調入的頁面,分別為 2 、 1 、 2 、 … ,可見 5 為最近一段時間內使用最少的,本次應換出,然後把頁 6 調入記憶體。

via:  http://yinzhezq.blog.163.com/blog/static/1648628902010112961039187/


另外:
還有演算法:
LFU: Least Frequently Used,最不經常使用演算法。 它是根據在一段時間裡頁面被使用的次數選擇出最少使用的頁 。注意它與LRU的區別。

另外,OPT演算法通常是用來評價其他替換演算法的好壞的標準。本身無法實現。
via:  http://wenda.tianya.cn/question/7885ae7b7cc29697

一些參考資料:
在Java中, 基於LinkedHashMap實現LRU緩衝調度演算法原理及應用  。搜下,有一堆文章:
如: http://www.cnblogs.com/-OYK/archive/2012/12/04/2801799.html

基於LRU改進的演算法也有很多:如:
http://www.cnblogs.com/cyjb/archive/2012/11/16/LruCache.html


緩衝的命中率

另一方面,當你自己去著手寫一個緩衝演算法,或者去使用一個的時候,或者去評價比較的時候,
我們要關注的就是緩衝的命中率問題。

如果你自己寫一個的話,那麼最好是類比一些資料,測試一下大概的命中率能有多大,再與其他演算法的命中率進行比較。


轉載:http://chen.junchang.blog.163.com/blog/static/6

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.