页面置换算法相关概念和计算(含例题详解)
注:本文只适用于做题,想更详细了解调度算法相关的知识可以参考这篇文章😄 👉操作系统学习笔记第四章存储管理
先来了解一下相关的基础概念🙈 :
随机页面置换算法(RPR):被淘汰的页面是随机的
先进先出页面置换算法(FIFO):被淘汰的页面是最先进入内存中的页面
最近最久未使用页面置换算法(LRU):被淘汰的页面是最近一段时间最久没被访问的页面
最近未使用页面置换算法(NUR):被淘汰的页面是上次访问页面中没被访问的页面中的随机的一个页面
最不经常使用页面置换算法(LFU):被淘汰的页面是当前为止访问次数最少的页面
最佳页面置换算法(OPT):被淘汰的页面是以后不再使用或很少使用的页面
缺 页 率 = 缺 页 中 断 次 数 / 访 问 的 页 面 总 数 ∗ 100 % 命 中 率 = 页 面 命 中 次 数 / 访 问 的 页 面 总 数 ∗ 100 % 缺 页 率 + 命 中 率 = 1 \begin{aligned} &缺页率=缺页中断次数/{访问的页面总数}~~*~~100\%\\ &命中率=页面命中次数/{访问的页面总数}*100\%\\ &缺页率+命中率=1 \end{aligned} 缺页率=缺页中断次数/访问的页面总数 ∗ 100%命中率=页面命中次数/访问的页面总数∗100%缺页率+命中率=1
🐳实战例题:
(1)采用FIFO算法置换页面:(红色代表页面被置换,绿色代表页面存入物理块)
置换须知:
- 只要发生页面存入物理块中 或 发生页面置换时就算作缺页中断
- 当所有物理块没有待访问页面时,需进行页面置换,反之无需置换
置换判断:当发现需要置换时,可以按照阶梯型轮流置换
命中判断:待访问的页面是已经存在的页面是,页面就算作命中(非缺页N就是命中)
待访问页面: | 1 | 2 | 1 | 0 | 4 | 1 | 3 | 4 | 2 | 1 | |
---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 0 | 0 | 0 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 4 |
物理块1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | |
物理块2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | ||
是否缺页: | Y | Y | N | N | Y | N | Y | N | N | Y |
由上表易知:缺页率=5/10*100% = 50%
命中率=5/10*100% = 50%
(2)采用LRU算法置换页面:
置换须知:上同
置换判断:当发现需要置换时,可以观察置换页面前n(n表示物理块个数)个页面,直接置换出最前面的页面。例如:4页面需要置换,观察前面3个页面2,1,0,2在最前面则置换2
待访问页面: | 1 | 2 | 1 | 0 | 4 | 1 | 3 | 4 | 2 | 1 | |
---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 3 | 3 | 1 |
物理块1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | |
物理块2 | 2 | 2 | 2 | 4 | 4 | 4 | 4 | 4 | 4 | ||
是否缺页: | Y | Y | N | N | Y | N | Y | N | Y | Y |
由上表易知:缺页率=6/10*100% = 60%
(3)采用OPT算法置换页面:
置换须知:上同
置换判断:当发现需要置换时,可以观察置换页面后若干个(通常要大于n个)页面,直接置换出最后面或者后面没有的页面。例如:4页面需要置换,观察后面3个页面1,3,4,2,没有发现页面0,则置换0
注意:当最后一个页面时判断是可以根据LRU算法置换规则置换,因为这比较符合最佳置换规则
待访问页面: | 1 | 2 | 1 | 0 | 4 | 1 | 3 | 4 | 2 | 1 | |
---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 0 | 0 | 0 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 1 |
物理块1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | 3 | 2 | |
物理块2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | ||
是否缺页: | Y | Y | N | N | Y | N | Y | N | N | Y |
由上表易知:缺页率=5/10*100% = 50%
(4)采用NUR算法置换页面:
置换须知:上同。此外,标记位(t)初始状态为0,一旦访问置1,一旦发生页面置换 或 所有标记置1则标记位全部置0
置换判断:置换的页是标记为0的页中的随机一个(一般可以按顺序淘汰)
待访问页面: | t | 1 | t | 2 | t | 1 | t | 0 | t | 4 | t | 1 | t | 3 | t | 4 | t | 2 | t | 1 | t | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 4 | 1 | 4 | 0 | 4 | 1 | 4 | 1 | 4 | 0 |
物理块1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 3 | 0 | 3 | 0 | 1 | 0 | ||
物理块2 | 2 | 1 | 2 | 1 | 2 | 0 | 2 | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 2 | 1 | 2 | 0 | ||||
是否缺页: | Y | Y | N | N | Y | N | Y | N | N | Y |
由上表易知:缺页率=5/10*100% = 50%
(1)采用FIFO算法置换页面:
页面走向 | 1 | 2 | 3 | 6 | 4 | 7 | 3 | 2 | 1 | 4 | 7 | 5 | 6 | 5 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 1 | 1 | 1 | 1 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 5 |
物理块1 | 2 | 2 | 2 | 2 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 6 | 6 | 6 | 6 | |
物理块2 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ||
物理块3 | 6 | 6 | 6 | 6 | 6 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||
缺页否 | Y | Y | Y | Y | Y | Y | N | Y | Y | N | N | Y | Y | N | N | N |
由上表易知:缺页率=10/16*100% = 62.5%
(2)采用LRU算法置换页面:
页面走向 | 1 | 2 | 3 | 6 | 4 | 7 | 3 | 2 | 1 | 4 | 7 | 5 | 6 | 5 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 1 | 1 | 1 | 1 | 4 | 4 | 4 | 4 | 1 | 1 | 1 | 1 | 6 | 6 | 6 | 6 |
物理块1 | 2 | 2 | 2 | 2 | 7 | 7 | 7 | 7 | 4 | 4 | 4 | 4 | 4 | 2 | 2 | |
物理块2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 7 | 7 | 7 | 7 | 7 | 1 | ||
物理块3 | 6 | 6 | 6 | 6 | 2 | 2 | 2 | 2 | 5 | 5 | 5 | 5 | 5 | |||
缺页否 | Y | Y | Y | Y | Y | Y | N | Y | Y | Y | Y | Y | Y | N | Y | Y |
由上表易知:缺页率=14/16*100% = 87.5%
(3)采用OPT算法置换页面:
页面走向 | 1 | 2 | 3 | 6 | 4 | 7 | 3 | 2 | 1 | 4 | 7 | 5 | 6 | 5 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
物理块0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
物理块1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |
物理块2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 4 | 4 | 5 | 5 | 5 | 5 | 5 | ||
物理块3 | 6 | 4 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 6 | 6 | 6 | 6 | |||
缺页否 | Y | Y | Y | Y | Y | Y | N | N | N | Y | N | Y | Y | N | N | N |
由上表易知:缺页率=9/16*100% = 56.25%