某请求页式存储管理,允许用户空间为32个页面(每页1KB),主存为16KB,如有一个用户程序有10页长,且某时刻该用户进程的页表如表模拟1.1所示。
表模拟1.1 用户进程页表 | ||
虚页号 | 物理块号 | 是否在TLB中 |
0 | 8 | 是 |
1 | 7 | 是 |
2 | 4 | 否 |
3 | 10 | 否 |
4 | 5 | 否 |
5 | 3 | 是 |
6 | 2 | 是 |
其他 | not valid |
(2)页表存放在主存中,对主存的一次存取需要1.5μs,对TLB表的查找时间忽略为0,试问这两次访问共耗费多少时间
参考答案:由于每页1KB,所以页内位移量占10位。主存大小为16KB,所以物理地址占14位。
(1)将OAC5H转换为二进制为:0000 1010 1100 0101,页号为2,对应的块号为4,物理地址为:0001 0010 1100 0101,转换为十六进制为:12C5H。
将1AC5H转换为二进制为:0001 1010 1100 0101,页号为6,对应的块号为2,物理地址为:0000 1010 1100 0101,转换为十六进制为:0AC5H。
(2)第一次访问由于没有在TLB中,所以需要两次存取内存,耗费时间为1.5*2=3μs;第二次访问在TLB中,所以只需要一次存取内存,对TLB表的查找时间忽略为0,耗费时间为1.5μs。因此,两次访问共耗费4.5μs。