页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间
是10 ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),
进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。
假设TLB初始为空,地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间)。有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H 、 1565H 25A5H,请问:
1) 依次访问上述三个虚地址,各需多少时间?给出计算过程。
2) 基于上述访问序列,虚地址1565H的物理地址是多少?
(1)根据页式管理的工作原理,应先考虑页面大小,以便将页号和页内位移分解出来。页面大小为4KB=2 12B,则得到页内位移占虚地址的低12位,页号占剩余高位。 可得三个虚地址的页号P如下(十六进制的一位数字转换成4位二进制,因此,十六进制的低12位正好为页内位移,最高位为页号):
2362H:页号P=2,有效位为1,存在内存中。先访问快表10ns,因初始为空,不在快表中,因此,需要访问页表100ns得到页框号,合成物理地址后访问主存100ns,共计10ns+100ns+100ns=210ns。
1565H:页号P=1,有效位为0,不存在内存中。先访问快表10ns,落空,访问页表100ns落空,进行缺页中断处理108ns,合成物理地址后访问主存100ns,共计10ns+100ns+108ns+100ns≈108ns。
25A5H:页号P=2,有效位为1,存在内存中。访问快表,因第一次访问已将该页号放入快表,因此花费10ns便可合成物理地址,访问主存100ns,共计10ns+100ns=110ns。
(2)当访问虚地址1565H时,产生缺页中断,合法驻留集为2,必须从页表中淘汰一个页面,根据题目的最近最少使用置换算法,应淘汰0号页面,因此1565H的对应页框号为101H。由此可得1565H的物理地址为101565H。