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