请求分页管理系统中,假设某进程的页表内容如下表所示:
页号 页框(PageFrame)号 有效位(存在位)
0 101H 1
1— 0
2 254H 0
页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时问是10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H,1565H,25A5H,请问:
(1)依次访问上述三个虚地址,各需多少时间给出计算过程。
(2)基于上述访问序列,虚地址1565H的物理地址是多少请说明理由。
参考答案:因为每页大小为4KB,所以页面位移地址占12位,前四位为页号,逻辑地址2362H对应二进制为0010001101100010,则页号二进制为0010即为第2页,可以看出16进制表示中,第1位就表示页号,该页在内存,但TLB为空,所以,2362H的访问时间=10ns(访问TLB)+100ns(访问页表)+100ns(访问内存单元)=210ns。
因为逻辑地址1565H第1位为1,则其页号为1,该页不在内存,出现缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行.需要再访问一次TLB。所以,1565H的访问时间=10ns(访问TLB)+100ns(访问页表)+100000000ns(调页)+10ns(访问TLB)+1。0ns(访问内存单元)=100000220ns。
因为逻辑地址25A5H第1位为2,则其页号为2,该页在内存,TLB命中,所以,25A5H的访问时间=10ns(访问TLB)+100ns(访问内存单元)=110ns。此题考查请求分页管理系统中的地址访问,对于此题系统中有快表,一般的访问顺序是先检查快表,快表有直接找到内存地址访问,如上题中逻辑地址25A5H即为此情况;若该页不在快表中则检查页表是否在内存中,若页表中有,则将其加入快表并按页表中的内存地址访问,上题中逻辑地址2362H即为此情况;若该页不在快表中而且在页表中显示不存在于内存,产生缺页中断,调入页后添加到快表中,添加到页表中,完成中断.再次执行被中断的指令,先访问快表,再访问其内存地址,上题中逻辑地址1565H即为此情况。
(2)1565H的物理地址是101565H。因为2号页面刚被访问.不会被置换,因此用101页框。
解析: 此题按题中访问顺序可知,先访问2362H时,求出是第2页,不在内存中,调入内存,由页表中可见,此中只有两个页框,一个是101页框被第O页占用,一个是254页框,未被占用,则第2页占用254页框,接着访问地址1565H,求出是第1页中的地址,此时页1并不在内存中,两个物理页框都被占用,则须置换出一个页面,2号页面刚被访问,而0号页面已经有一段时间没有被访问,则置换第0页,将第1页放入页框101中,将逻辑地址1565H表示页号位转为物理块表示的位,则物理地址为101565H。