设正在处理器上执行一个进程的页表如表8—3所示。表中的虚页号和物理块号是十进制数,起始页号(块号)均为0。所有的地址均是存储器字节地址。页的大小为1024B。若发生缺页中断,使用LRU页面置换算法将缺页调入再进行地址变换,页表中访问字段记录本页最近已有多长

admin2017-04-28  42

问题 设正在处理器上执行一个进程的页表如表8—3所示。表中的虚页号和物理块号是十进制数,起始页号(块号)均为0。所有的地址均是存储器字节地址。页的大小为1024B。若发生缺页中断,使用LRU页面置换算法将缺页调入再进行地址变换,页表中访问字段记录本页最近已有多长时间未被访问。

根据给出的某进程的页表,系统给该进程分配的最大内存物理块数为3,进程先后使用下面两个虚地址访问内存,其对应的物理内存地址分别是多少?请详述整个地址变换过程,并参照给出的页表,画出每次操作后的页表。
(注:访问字段表示的是该页最近已有多长时间未被访问)
a) 4475(写操作)
b)1197(读操作)

选项

答案在本题中,系统页面大小为1024B。 a)对于逻辑地址4 475,其页号为4 475/1 024,向下取整为4。页内位移为4 475%1024=379。查页表知第4页对应第0个物理块,所以其物理地址为1 024×0+379=379。同时需要修改第4页表项中的访问位为0,该操作结束后,访问字段自增1。得到新的页表如表8—11所示。 [*] b)对于逻辑地址1197,其页号为1197/1 024,向下取整为1,页内位移为1 197%1024=173。查页表知,第1页不在内存中,此时发生缺页中断,由缺页中断处理程序将缺页调入内存,又系统分配给该进程的内存块为3,此时已满,需要按LRU页面置换算法决定淘汰页,置换算法根据已知条件“页表中访问字段记录本页最近已有多长时间未被访问”,根据a)操作后得到的页表,我们可以知道最近最久未被访问的是第2页,又其修改位为0,故直接把第1页调入内存中的第2个物理块。 所以其物理地址为1 024×2+173=2 221。 该指令完成后,得到新的页表如表8—12所示。 [*] 访问字段如何变化需要读者从题目给的页表得出,详细说明如下: 首先,若该虚拟页并没有分配有实际的物理页,那么不存在访问的问题,故相应的访问字段的值为0。(题目给的页表中,状态为0的页,访问字段也为0,说明了这点) 其次,该页被访问的时候后(无论缺页与否),都会在实际访问到相应物理页后,将访问字段的值(无论为0还是其他正数)都改为1。(刚被访问过的页,访问字段值肯定为最小,即为1) 最后,若某虚拟页分配有实际的物理页,但是当访问页面时,没有涉及该虚拟页,那么在访问结束后,该虚拟页对应的访问字段要增l。(访问字段的计时功能)

解析
转载请注明原文地址:https://kaotiyun.com/show/kHRi777K
0

最新回复(0)