頁面置換算法及例題

一、頁面置換算法

不適當的算法可能會導致進程發生“抖動”:即剛被換出的頁很快又要被訪問,需要將他重新調入,此時又需要再選一頁調出。而此剛被調出的頁面很快又被訪問,又需將它調入,如此頻繁地更換頁面,以致一個進程在運行中把大部分時間都花費在頁面置換工作上,我們稱該進程發生了“抖動”。

一個好的頁面置換算法應該具有較低地頁面更換頻率。從理論上講,應將哪些以后不再會訪問地頁面換出,或把那些在較長時間內不會再訪問的頁面調出。目前已有多種置換算法,他們都試圖更接近于理論上的目標。下面介紹幾種常用的置換算法。

二、常用的頁面置換算法

1.最佳(Optimal)置換算法

其所選擇的被淘汰頁面將是以后永不使用的,或者是在最長時間內不再被訪問的頁面,是理想化的算法(因為我們很難預知未來要訪問哪些頁面),可以用來評測其他實際應用算法的好壞。

2.先進先出(FIFO)置換算法

總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面給予淘汰(由于與頁面的使用規律不符,可能是性能最差的算法)。

3.最近最久未使用LRU(Least Recently Used)置換算法

選擇最近最久未使用的頁面予以淘汰。

4.最少使用LFU(Least Frequently Used)置換算法

選擇在最近時期使用最少的頁面作為淘汰頁(當使用次數相同時,誰最先來淘汰誰)。

5.Clocks置換算法

(1)簡單的Clocks置換算法(最近未使用NRU(Not Recently Used)算法)

為每一頁設置一個訪問位,再將內存中所有頁面通過指針鏈接成一個循環隊列。當某頁被訪問時,其訪問位置1。在選擇某一頁淘汰時,只需檢查頁的訪問位。如果是0,就選擇該頁換出,若為1,則重新將他置0,暫不換出,給予該頁第二次駐留內存的機會,再檢查下一個頁面。當檢查到隊列中最后一個頁面時,若訪問位仍為1,則再返回隊首去檢查第一個頁面。

圖為簡單Clocks算法的流程示意圖

(2)改進型Clocks置換算法

在簡單型的基礎上再增加一個修改位M,組合成四類頁面:

①(A=0,M=0):表明該頁最近既未被訪問,又未被修改,是最佳淘汰頁

②(A=0,M=1):表明該頁最近未被訪問,但已被修改,并不是很好的淘汰頁

③(A=1,M=0):表明該頁最近已被訪問,但未被修改,該頁有可能再被訪問

④(A=1,M=1):表明該頁最近已被訪問且被修改,該頁可能再被訪問

算法執行過程可以總結如下:

<1>指針從當前位置開始,掃描循環隊列,尋找A=0且M=0的第一類頁面,將遇到的第一個頁面作為所選中的淘汰頁。在第一次掃描期間不改變訪問位A

<2>第一步失敗,則進行第二輪掃描,尋找A=0且M=1的第二頁頁面,將所遇到的第一個這類頁面作為淘汰頁,在第二輪掃描期間,將所有掃描過的頁面的訪問位都置0

<3>第二步失敗,則指針返回開始位置,并將所有訪問位復0,重復第一步,若仍失敗,再重復第二步,一定能找到被淘汰的頁

三、頁面置換算法舉例

1.最佳分配置換算法

插入順序

1

2

3

4

1

2

5

1

2

3

4

5

內存

1

1

1

1

1

1

1

1

1

3

3

3

?

2

2

2

2

2

2

2

2

2

4

4

?

?

3

4

4

4

5

5

5

5

5

5

是否缺頁

+

+

+

+

?

?

+

?

?

+

+

?

?

?

?

?

?

?

?

?

?

?

?

理想條件下缺頁次數為7次,缺頁率為7/12

2.先進先出置換算法

插入順序

1

2

3

4

1

2

5

1

2

3

4

5

內存

1

1

1

4

4

4

5

5

5

5

5

5

?

2

2

2

1

1

1

1

1

3

3

3

?

?

3

3

3

2

2

2

2

2

4

4

是否缺頁

+

+

+

+

+

+

+

?

?

+

+

?

?

?

?

?

?

?

?

?

?

?

?

缺頁次數為9次,缺頁率為3/4

3.最久未使用置換算法

插入順序

1

2

3

4

1

2

5

1

2

3

4

5

內存

1

1

1

4

4

4

5

5

5

3

3

3

?

2

2

2

1

1

1

1

1

1

4

4

?

?

3

3

3

2

2

2

2

2

2

5

是否缺頁

+

+

+

+

+

+

+

?

?

+

+

+

?

?

?

?

?

?

?

?

?

?

?

缺頁率次數為10次,缺頁率為5/6

4.簡單Clocks置換算法

插入順序

1

2

3

4

1

2

5

1

2

3

4

5

內存

1

A=0

1

A=0

1

A=0

4

A=0

4

A=0

4

A=0

5

A=0

5

A=0

5

A=0

3

A=0

4

A=0

4

A=1

?

A=0

2

A=0

2

A=0

2

A=0

1

A=0

1

A=0

1

A=0

1

A=1

1

A=1

1

A=1

1

A=0

5

A=0

?

A=0

?

A=0

3

A=0

3

A=0

3

A=0

2

A=0

2

A=0

2

A=0

2

A=1

2

A=1

2

A=0

2

A=0

是否缺頁

+

+

+

+

+

+

+

?

?

+

+

+

?

?

?

?

?

?

?

?

?

?

?

?

?

?

缺頁次數為10次,缺頁率為5/6

轉載于:https://www.cnblogs.com/RB26DETT/p/10035804.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278817.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278817.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vista磁盤使用100%_如何在Windows 7或Vista中創建和使用密碼重置磁盤

vista磁盤使用100%Forgetting your password can be an extremely frustrating situation, and we’ve already shared how to reset your password with the Ultimate Boot CD as well as the System Rescue CD, but you can prevent the situation entirely by creating a pa…

Nginx服務狀態的監控

一、安裝Nginx 使用源碼編譯安裝&#xff0c;包括具體的編譯參數信息。 正式開始前&#xff0c;編譯環境gcc g 開發庫之類的需要提前裝好。 安裝make&#xff1a; yum -y install gcc automake autoconf libtool make 安裝g: yum install gcc gcc-c 一般我們都需要先裝pcre, zl…

計算機二級高級應用這么難,計算機二級考試越來越難的實錘!真實數據告訴你到底難在哪里?...

今年3月考試成績暫時未公布(預計在5月中旬發布)&#xff0c;通過率暫時無法得知。但是根據考后后臺反饋情況&#xff0c;今年通過率可能再創新低。不管你是不是有感知&#xff0c;計算機二級通過率的確在逐年降低。近3年難度越來越大每次考試結束后后臺評論最多的就是“今年的考…

windows 系統監視器_使用Windows 7中的可靠性監視器對計算機問題進行故障排除

windows 系統監視器Windows Vista introduced us to the Reliability and Performance Monitor utility to help keep track of hardware and software crashes. It’s now a stand alone utility in Windows 7 and we will take a look at how to access and use it. Windows …

4-8 string

1、常用的string模塊 1 import string2 3 # 26個小寫字母4 print(string.ascii_lowercase) 5 # abcdefghijklmnopqrstuvwxyz6 7 # 26個大寫字母8 print(string.ascii_uppercase) 9 # ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 11 # 10個數字 12 print(string.digits) # 0123456789 1…

powerpoint預覽_如何安排PowerPoint幻燈片的時間以進行更有效的演示

powerpoint預覽Delivering a presentation is not just about giving good slides, it is also about making sure that our presentation finishes by the time our audience wants to have their tea break—so practicing how long to speak for each slide is essential fo…

【小程序踩坑系列5】小程序內多重調用原生promise,無返回,無報錯,代碼卡住...

作者: 蔣歡 問題&#xff1a; 在部分IOS機型上&#xff0c;小程序內使用原生promise實現異步&#xff0c;在嵌套四層后&#xff0c;Promise的resolve和reject均無返回。 環境&#xff1a; 用戶機型&#xff1a;iPhone 7 系統版本&#xff1a;IOS 10.3.3 微信版本&#xff1a;6.…

計算機仿真技術的大學,大學計算機仿真技術結課論文

計算機仿真技術是電子與信息專業中重要的專業學科。下面是學習啦小編為大家整理的大學計算機仿真技術結課論文&#xff0c;供大家參考。大學計算機仿真技術結課論文篇一《 復雜系統計算機仿真研究 》現代社會發展中&#xff0c;復雜系統所涉及的領域包括軍事、醫療、政治、工程…

統計nginx日志里訪問次數最多的前十個IP

awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -nr -k1 | head -n 10 轉載于:https://www.cnblogs.com/new-journey/p/10038056.html

thread線程棧size及局部變量最大可分配size【轉】

轉自&#xff1a;http://blog.csdn.net/sunny04/article/details/46805261 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 進程是操作系統的最小資源管理單元&#xff0c; 線程是操作系統最小的執行單元。 一個進程可以有多個線程&#xff0c; 也…

在Windows XP中對系統文件(頁面文件和注冊表)進行碎片整理

In the pursuit for performance, making sure your drive isn’t fragmented is a regular task. The problem is that Windows XP doesn’t allow certain system files to be defragmented without commercial software. What about free solutions? 在追求性能時&#xff…

計算機存有多少游戲,8G和16G的計算機內存之間有很大區別嗎?玩游戲需要多少內存?...

大家好&#xff0c;我是Compatible Computer Home的小牛.計算機內存是除CPU外最重要的組件之一. 運行大型軟件和多任務處理時&#xff0c;計算機內存量直接影響計算機的流暢性. 許多玩家不知道什么時候第一次購買計算機. 小牛會在今天與您討論要購買多少內存來購買計算機.首先&…

ubuntu 配置mycat

https://blog.csdn.net/leisure_life/article/details/78611594 這篇博主寫的非常好&#xff0c;我找了很久 都解決不了&#xff0c;最后按照他的步驟解決了問題。 其中有幾個問題&#xff0c; 運行mycat的時候總是失敗&#xff0c;ps不到在運行&#xff0c; 使用sudo ./mycat…

計算機程序設計vb課后題,《VB程序設計》課后題答案

《VB程序設計》課后題答案第二章一、問答題1.敘述建立一個完整的應用程序的過程。答&#xff1a;界面設計編寫事件過程代碼 運行、調試 保存文件2.當建立好一個簡單的應用程序后&#xff0c;假定該工程僅有一個窗體模塊。問該工程涉及到幾個文件要保存&#xff1f;若要保存該工…

用SmarterFox替換Internet Explorer的“加速器”

If you’ve had to use Internet Explorer 8, you’ll have noticed a couple of things. It’s getting much easier to use due to its growing number of similarities to Firefox, and it uses a clever feature called the “Accelerator” to try and give it a leg up o…

Win7下搭建外網環境的SVN服務器

最近想跟一幫朋友做點東西&#xff0c;由于幾個朋友都身處異地&#xff0c;要想實現版本控制&#xff0c;只能自己搭建一個小的服務器&#xff0c;通過互聯網環境來實現版本控制了。本來也在網上找了好多資料&#xff0c;但是總是缺少一些必要的信息&#xff0c;導致最后連接不…

如何在VMware Player中設置和安裝Windows Home Server“ Vail”

The new Windows Home Server Beta is available to the public for testing, and you might not have an extra machine to install it on. Here we take a look at using the free VMware Player to install it so you can test it out. 新的Windows Home Server Beta可供公眾…

第四章作業

1. 貪心算法&#xff1a; 理解&#xff1a;所謂“貪心”&#xff0c;即在每一步的求解中求得問題的最優解&#xff0c;成為當前局部問題的最優解。但與動態規劃問題不同的地方在于&#xff0c;動態規劃會根據整體最優解的情況與之前的解作比較&#xff0c;并選取整體最優解&…

三年級計算機擊鍵要領教案,閩教版信息技術三上《下行鍵操作》教案

閩教版信息技術三上《下行鍵操作》教案教學目標[知識目標]&#xff1a;了解和掌握下行鍵的鍵位分布。[技能目標]&#xff1a;正確掌握下行鍵擊鍵的姿勢和指法。[情感目標]&#xff1a;培養學生養成正確的鍵盤操作習慣。[重點和難點]重點&#xff1a;了解下行鍵的手指分工 。難點…

tabnavigator_使用TabNavigator在Firefox中享受桌面Alt-Tab樣式導航

tabnavigatorDo you use Alt-Tab window switching for your Windows desktop and find yourself wishing for that same functionality in Firefox? Now you can enjoy all that switching goodness in your browser with TabNavigator. 您是否在Windows桌面上使用Alt-Tab窗口…