日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

操作系统:几种页面置换算法

發(fā)布時間:2025/3/21 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统:几种页面置换算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1)最優(yōu)置換算法(OPT)(理想置換算法)

最佳置換法(OPT):選擇將來不再使用或在最遠(yuǎn)的將來才被訪問的頁調(diào)換出去(不便于實現(xiàn))

  這是一種理想情況下的頁面置換算法,但實際上是不可能實現(xiàn)的。該算法的基本思想是:發(fā)生缺頁時,有些頁面在內(nèi)存中,其中有一頁將很快被訪問(也包含緊接著的下一條指令的那頁),而其他頁面則可能要到10、100或者1000條指令后才會被訪問,每個頁面都可以用在該頁面首次被訪問前所要執(zhí)行的指令數(shù)進行標(biāo)記。最佳頁面置換算法只是簡單地規(guī)定:標(biāo)記最大的頁應(yīng)該被置換。這個算法唯一的一個問題就是它無法實現(xiàn)。當(dāng)缺頁發(fā)生時,操作系統(tǒng)無法知道各個頁面下一次是在什么時候被訪問。雖然這個算法不可能實現(xiàn),但是最佳頁面置換算法可以用于對可實現(xiàn)算法的性能進行衡量比較。
2)先進先出置換算法(FIFO)
  最簡單的頁面置換算法是先入先出(FIFO)法。這種算法的實質(zhì)是,總是選擇在主存中停留時間最長(即最老)的一頁置換,即先進入內(nèi)存的頁,先退出內(nèi)存。理由是:最早調(diào)入內(nèi)存的頁,其不再被使用的可能性比剛調(diào)入內(nèi)存的可能性大。建立一個FIFO隊列,收容所有在內(nèi)存中的頁。被置換頁面總是在隊列頭上進行。當(dāng)一個頁面被放入內(nèi)存時,就把它插在隊尾上。
這種算法只是在按線性順序訪問地址空間時才是理想的,否則效率不高。因為那些常被訪問的頁,往往在主存中也停留得最久,結(jié)果它們因變“老”而不得不被置換出去。
FIFO的另一個缺點是,它有一種異常現(xiàn)象,即在增加存儲塊的情況下,反而使缺頁中斷率增加了。當(dāng)然,導(dǎo)致這種異常現(xiàn)象的頁面走向?qū)嶋H上是很少見的。
3)最近最少使用(LRU)算法(時間)
  FIFO算法和OPT算法之間的主要差別是,FIFO算法利用頁面進入內(nèi)存后的時間長短作為置換依據(jù),而OPT算法的依據(jù)是將來使用頁面的時間。如果以最近的過去作為不久將來的近似,那么就可以把過去最長一段時間里不曾被使用的頁面置換掉。它的實質(zhì)是,當(dāng)需要置換一頁時,選擇在最近一段時間里最久沒有使用過的頁面予以置換。這種算法就稱為最久未使用算法(LeastRecentlyUsed,LRU)。LRU算法是與每個頁面最后使用的時間有關(guān)的。當(dāng)必須置換一個頁面時,LRU算法選擇過去一段時間里最久未被使用的頁面。

實現(xiàn):(2種方法)

1)維護一個鏈表,最近剛剛使用的頁面移到鏈表表頭節(jié)點,那么任意時刻,鏈表表尾節(jié)點就都是最少使用的、

2)維護一個棧,將最近訪問的頁面放到棧頂,同時考察是否有相同的頁面在棧內(nèi),有的話抽出,因此棧頂是最近使用的,棧底都是最少使用的。

4)最不常用(LFU)置換算法 (頻率,計數(shù)器)

在采用最少使用置換算法時,應(yīng)為在內(nèi)存中的每個頁面設(shè)置一個移位寄存器,用來記錄該頁面被訪問的頻率。該置換算法選擇在之前時期使用最少的頁面作為淘汰頁。由于存儲器具有較高的訪問速度,例如100 ns,在1 ms時間內(nèi)可能對某頁面連續(xù)訪問成千上萬次,因此,通常不能直接利用計數(shù)器來記錄某頁被訪問的次數(shù),而是采用移位寄存器方式。每次訪問某頁時,便將該移位寄存器的最高位置1,再每隔一定時間(例如100 ns)右移一次。這樣,在最近一段時間使用最少的頁面將是最小的頁。

LFU置換算法的頁面訪問圖與LRU置換算法的訪問圖完全相同;或者說,利用這樣一套硬件既可實現(xiàn)LRU算法,又可實現(xiàn)LFU算法。應(yīng)該指出,LFU算法并不能真正反映出頁面的使用情況,因為在每一時間間隔內(nèi),只是用寄存器的一位來記錄頁的使用情況,因此,訪問一次和訪問10 000次是等效的。

5)時鐘頁面置換算法(時間)? ? ? ?是對LRU的近似,對FIFO的改進

需要使用到訪問位。把各個頁面組織成環(huán)形鏈表(類似于時鐘面)。把指針指向最老的頁面。

當(dāng)發(fā)生一個缺頁中斷的時候。若它的訪問位為0,則淘汰,指針下移,頁面插入;若訪問位為1,則把該位置0,指針下移,繼續(xù)尋找,直到找到被淘汰的頁面。

Clock算法和LRU算法缺頁中斷次數(shù)是相近的!Clock使用一個比特位來表示最近一段時間的訪問情況。

當(dāng)所有的訪問位都為1的時候,Clock算法就退化為FIFO算法!!!

?

6)二次機會算法(時間)

利用頁表項中的訪問位和臟位是對Clock算法的改進,用于減少將頁面寫回磁盤的IO次數(shù)。

既被訪問,又被寫的位具有兩次機會!其他的情況下只有一次機會!

used? dirty? ? ? ? ? --------? ? ? ?used? ? ?dirty

0? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?置換

0? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? 0

1? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ?0

1? ? ? ??1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ?1? ? ? ? ? ? 此時兩次機會


頁面置換算法

總結(jié)

以上是生活随笔為你收集整理的操作系统:几种页面置换算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。