考虑一个具有两级分页方案的系统,其中常规内存访问需要 150 纳秒,处理页面错误需要 8 毫秒。一条平均指令需要 100 ns 的 CPU 时间和两次内存访问。TLB命中率为90%,缺页率为万分之一。有效平均指令执行时间是多少?
这是在 GATE 2004 中提出的。为了解决这个问题,我将遵循以下概念:
T(memory access avg) = .90(150) + .1(150+150+150) = 180
(150- level1, 150- level2 和 150 内存)
T 有效 = 100+ 2* 180 + 1/10000* 8* 10^6 = 1260。
这种方法正确吗?我也有以下疑问:
- 当 TLB 命中时不会出现页面错误,因为最常用的页面必须在内存中。这是对的吗 ?
- 进程的页表大小是多少?假设一个 32 位虚拟地址,我们是否为每个进程分配一个包含 2^32 个条目的页表?分页中的内存限制是如何管理的?
请解释这些概念。