文章目录
- 题目描述
- 1)依次访问上述三个虚地址,各需多少时间?给出计算过程
- 2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由
- 原题 & 官方题解
题目描述
46(8分)请求分页管理系统中,假设某进程的页表内容见下表。
页号 | 页框号 | 有效位(存在位) |
---|---|---|
0 | 101H | 1 |
1 | 0 | |
2 | 254H | 1 |
- 页面大小为4KB
- 一次内存的访问时间为100ns,一次快表(TLB)的访问时间为10ns,处理一次缺页的平均时间为 1 0 8 10^8 108ns(己含更新TLB和页表的时间)
- 进程的驻留集大小固定为2,
- 采用最近最少使用置换算法(LRU)和局部淘汰策略。
- 假设TLB初始为空;
- 地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间)
- 有效位为0表示页面不在内存中,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。
- 设有虚地址访问序列2362H、1565H、25A5H,请问:
1)依次访问上述三个虚地址,各需多少时间?给出计算过程
- 页表在内存中,TLB 是 cache
- 页面大小为 4KB,可以得出页内地址占
l
o
g
2
(
4
×
2
10
)
=
12
log_2(4\times2^{10}) = 12
log2(4×210)=12 位,而一个 16 进制数占 4 位,可以得出 16 位的虚地址,低 12 位是页内地址,高 4 位是虚页号,如 2362H 的页号应该是 2H
2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由
- 再次强调,访问 1565H 时产生缺页,调入的数据会覆盖掉内存块号为 101H 的块(页框)
- 1565H 对应的页号是 1,对应的页框号是 101H,因此:物理地址 = 页框号 + 页内地址 = 101565H,注意这里的+表示拼接
- 这也是虚拟内存的本质,明明只给进程提供了 2 个内存块(页),但进程却可以访问逻辑页面{0, 1, 2},正是通过页面置换策略实现的
原题 & 官方题解