fifo算法模拟_[源码和文档分享]基于C++的请求分页虚拟页面替换算法
生活随笔
收集整理的這篇文章主要介紹了
fifo算法模拟_[源码和文档分享]基于C++的请求分页虚拟页面替换算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、需求分析
實現OPT、FIFO、LRU、Clock等頁面替換算法。接收用戶輸入參數,包括程序長度(頁面數)、頁框個數及頁面大小,輸出結果采用不同顏色區分命中、替換及直接加入空閑塊。
- OPT(最佳置換算法):其所選擇的被淘汰頁面將是以后永不使用的,或許是在最長(未來)時間內不再被訪問的頁面,但是由于無法預知一個進程在內存中的若干個頁面中,哪一個頁面是未來最長時間內不被訪問的,因而該算法無法實現
- FIFO(先進先出頁面是換算法):該算法總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面予以淘汰
- LRU(最近最久未使用置換算法):只能利用“最近的過去”作為“最近的將來”的近似,因此,LRU置換算法是選擇最近最久未使用的頁面予以淘汰
- Clock:使用的較多的一種LRU近似算法
二、概要設計
- FIFO算法:在該模擬系統中,使用隊列來存儲頁面并且按照其到達隊列的先后順序進行排序,因此,每次需要進行頁面替換時,便選擇隊首或者標識符指示其駐留時間最長的頁面進行替換
- LRU算法:同樣使用數組隊列來模擬,數組下標指示位置,而數組值則作為標識符來計算該頁面自最后一次被訪問到現在為止經歷了多長時間,當選擇被置換的頁面時,則掃描該數組隊列,找到標識符最大的頁面進行替換
- Clock算法:同樣使用數組隊列來模擬,數組下標指示內存位置,而數組值則作為標識符在替換過程中發揮作用。當選擇被替換的頁面時,則掃描該數組隊列,檢查數組值,若值為0,則進行替換;若數組值為1,則將數組值置為1,繼續掃描下一個數組值。若掃描完畢沒有合適的頁面進行替換時,則對數組進行第二次掃描
?
參考文檔和完整的文檔和源碼下載地址:
https://www.write-bug.com/article/1361.html
總結
以上是生活随笔為你收集整理的fifo算法模拟_[源码和文档分享]基于C++的请求分页虚拟页面替换算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gson解析天气json_几种常用JSO
- 下一篇: python做平面设计有前途吗_现在学平