基本介紹
- 中文名:最近未使用調度算法
- 外文名:Not Recently Used
基本原理,舉例,
基本原理
當一存儲塊中的頁面訪問時,其相應的“頁面訪問”位由硬體自動置“1”,而由頁面管理體制軟體周期性地(設周期為T,其值通常為幾百毫秒),把所有的頁面訪問位重新置為“0”。這樣,在時間T內,某些被訪問的頁面,其對應的訪問位為“1”而未訪問的頁面,其對應的訪問位為“0”。查尋頁面訪問位為“0”的頁面。在查找過程中,那些被訪問的頁所對應的訪問位被重新置為“0”。由此可見,實際上這種近似LRU算法,已經退化成一種“最近不用”的算法NRU(Not Recently Used)。
舉例
某系統為用戶進程分配的駐留集為3(記憶體中只為用戶進程分配3個頁框)。
在時間T1開始時,用戶進程的頁表如下:
頁號 | 狀態位 | 訪問位 |
1 | 1 | 1 |
2 | 0 | 0 |
3 | 1 | 1 |
4 | 0 | 0 |
隨後,在時間T1中用戶進程訪問了頁2和頁3,時間T結束時用戶進程的頁表變為:
頁號 | 狀態位 | 訪問位 |
1 | 1 | 0 |
2 | 1 | 1 |
3 | 1 | 1 |
4 | 0 | 0 |
頁1的訪問位由1變為0是因為在時間T內系統沒有訪問頁0,而頁2恰好相反。
若用戶進程在下一個時間T2要求訪問頁4,由於進程無空閒頁框,便產生缺頁中斷。系統調用NRU頁面置換算法,發現頁1在記憶體中但是訪問位為0,即上一個時間T中未被訪問。於是系統將頁1調出,騰出的頁框分配給頁4,將其調入記憶體。T2用戶進程的頁表變為:
頁號 | 狀態位 | 訪問位 |
1 | 0 | 0 |
2 | 1 | 0 |
3 | 1 | 0 |
4 | 1 | 1 |