分页管理系统计算题 (在某个请求分页管理系统中,假设某进程的页表内容如下表所示)...

时间:2024-10-22 18:09:19

在某个请求分页管理系统中,假设某进程的页表内容如下表所示。

页号

页框(Page Frame)号

有效位(存在位)

0

120H

1

1

----

0

2

850H

1

页面大小为4KB,一次内存的访问时间是200ns,一次快表(TLB)的访问时间是20ns,处理一次缺页的平均时间为109ns(己含更新TLB和页表的时间),进程的驻留集大小固定为二页,采用最近最久未使用置换算法(LRU)和局部置换策略。假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2345H、1876H、258FH,请问:

a.依次访问上述三个虚地址,各需多少时间?给出计算过程。

b.基于上述访问序列,虚地址1876H的物理地址是多少?请说明理由。

【答案】

(a)         根据页式管理的工作原理,应先将页号和页内位移地址分解出来。页面大小为4KB,即212,则得到页内偏移量占虚地址的低12位,那么页号占剩余高4位。可得三个虚地址的页号如下表。

(b)         

 地址

页号

页内位移

2345H

2

345H

1876H

1

876H

258FH

2

58FH

2345H指令,页号为2,访问快表20ns,找不到页框,因条件所给初始为空,需要再到内存访问页表,花费200ns得到页框号,合成物理地址后去主存取指令需要花费200ns。

总时间20ns+ 200ns + 200ns = 420ns。

1876H指令页号为1,访问快表20ns,不在TLB,访问页表200ns,不在内存,发生缺页中断花费109ns,取得新页框号(含TLB更新),合成物理地址后去主存取指令需要花费200ns。

总时间20ns+ 200ns + 109ns +200ns ≈109ns。

258FH指令,页号为2,访问快表,因第一次访问己将该页号放入快表,因此花费20ns便可合成物理地址,访问主存取指200ns,共计20ns + 200ns =220ns。

(b)当访问虚地址1876H时,因不在内存而产生缺页中断,因驻留集为二页,现在已有0页和2页在内存,必须从中淘汰一个页面,从而将新1页调入内存。

根据LRU置换算法,0页和2页除有效位以外的其它信息未知,但是,第2页刚刚访问过,其引用位应刚置为1且时间间隔不长,根据最近最久未使用置换算法,相比之下应首先淘汰0号页面,因此1876H的对应页框号为120H。由此可得1876H的物理地址为120876H。