某一个计算机系统采用虚拟页式存储管理方式,当前在处理机上执行的某一个进程的页表如下表所列,所有的数字均为十进制,每一项的起始编号是0,并且所有的地址均按字节计址,每页的大小为1024字节。
表 | |||||
逻辑页号 | 存在位 | 引用位 | 修改位 | 页框号 | |
0 | 1 | 1 | 0 | 9 | |
1 | 1 | 1 | 1 | 3 | |
2 | 0 | 0 | 0 | — | |
3 | 1 | 0 | 0 | 1 | |
4 | 0 | 0 | 0 | — | |
5 | 1 | 0 | 1 | 5 |
假设程序要访问第2页,页面置换算法为改进的Clock算法,请问该淘汰哪页页表如何修改上述地址的转换结果是否改变变成多少
参考答案:第2页不在内存,产生缺页中断,根据改进的Clock算法,第3页为没被引用和没修改的页面,故淘汰。新页面进入,页表修改如表2所列。
因为页面2调入是为了使用,所以页面2的引用位必须改为1。 地址转换变为如表3所列: 表2 逻辑页号 存在位 引用位 修改位 页框号 0 1 1 0 4 1 1 1 1 3 2 0→1 0→1 0 —→1 调入 3 1→0 0 0 1→— 淘汰 4 0 0 0 — 5 1 0 1 5
表3 逻辑地址 逻辑页号 页内偏移量 页框号 物理地址 0793 0 793 4 4889 1197 1 173 3 3245 2099 2 51 1 1075 3320 3 248 — 缺页中断 4188 4 92 — 缺页中断 5332 5 212 5 5332
解析: 本题考查逻辑地址到物理地址的转换,同时混合有缺页问题,页面置换问题,置换算法的应用等。根据题意,每页1024字节,地址又是按字节编址,因此,所有地址均可以转换为页号和页内偏移量。地址转换过程一般先将逻辑页号取出,然后查找页表,得到页框号,将页框号与页内偏移量相加,即可获得物理地址。若取不到页框号,那么,该页不在内存,于是产生缺页中断,开始请求调页。若内存有足够的物理页面,那么可以再分配一个新的页面,若没有页面了,就必须在现有的页面之中找到一个页,将新的页与之置换。这个页可以是系统中的任意一页,也可以是本进程中的一页。若是系统中的一页。则这种置换方式称为全局置换;若是本进程的页面,则称为局部置换。置换时为尽可能地减少缺页中断次数,可以有多种算法来应用,本题使用的是改进的Clock算法,这种算法必须使用页表中的引用位和修改位,由这2位组成4种级别,没被引用和没修改的页面最先淘汰,没引用但修改了的页面其次,再者淘汰引用了但是没修改的页面,最后淘汰既引用又修改的页面,当页面的引用位和修改位相同时,随机淘汰一页。解答如下。