操作系统Clock算法
Clock算法
Clock算法的簡介
由于LRU算法對于硬件要求很高,它的近似算法通常是更好的選擇,Clock算法就是用的比較多的一種LRU近似算法。
Clock算法的理解
話不多說,直接進入正題!
簡單Clock置換算法
例題:頁面流 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 在3個物理塊下的置換過程。
相比起其他算法,Clock算法需要一個指針,簡單理解就是指針指向哪里頁面就優先插入哪里。
比如在初始狀態時指針指向第一個物理塊,頁面7便插入第一個物理塊,同時指針下移,那么什么時候指針要下移呢?很簡單,當插入成功后指針移到插入位置的下一位。
除了指針還需要給每個在物理塊中的頁面標個號(0或1),剛插入的或者已經在物理塊中又被訪問的頁面標為1。這個標號有什么用呢,你可以理解為一個一次性的“免換金牌”,當被指針指著要被換出的時候,如果標號是1,就改為0,然后按順序判斷下一個位置,直到循環下去找到一個0,把標號0的頁面換出去,同時指針移到換出位置的下一位。
例題的流程便是這樣的(這里我用*表示標號為1,沒有則為0):
改進Clock置換算法
由于在實際系統使用中頁面不僅會被訪問還會被修改,所以改進型Clock算法就是把頁面分成四種情況:
1.最近既沒修改也沒訪問
2.最近沒訪問但修改了
3.最近訪問了但沒修改
4.最近即訪問又修改了
按照類似簡單Clock算法(使用兩個標號)來依次判斷有沒有情況1的頁面,如果有就換出,如果沒有就判斷有沒有情況2的頁面,注意,當判斷完后還是沒有并不是去判斷情況3和4,而是把所有訪問標號都重置為0,再依次判斷1和2,這樣就能找到最適合換出的頁面。
總結
Clock算法相較于其他頁面置換算法比較復雜,但是只要掌握原理,用例題練幾遍就能很熟練啦~
總結
以上是生活随笔為你收集整理的操作系统Clock算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】9×9数独计算器
- 下一篇: CentOS7系统中:安装tree命令的