假设采用请求调页的内存。页表保存在寄存器中。如果有可用空帧或者置换的页面未被修改,则缺页错误的处理需要8ms;如果置换的页面已被修改,则需要20ms。内存访问时间为100ns。假设需要置换的页面在70%的时间内会被修改。对于有效访问时间不超过200ns,最大可接受的缺页错误率是多少?
时间: 2024-02-23 21:57:08 浏览: 21
根据公式:
有效访问时间 = 命中时间 × 命中率 + 缺页时间 × 缺页率
可以推导出:
缺页率 = (有效访问时间 - 命中时间 × 命中率) / 缺页时间
其中,命中时间等于内存访问时间,即100ns。
命中率等于1减去缺页率。
因此,缺页率可以表示为:
缺页率 = (有效访问时间 - 100ns × (1 - 缺页率)) / (0.7 × 20ms + 0.3 × 8ms)
将有效访问时间代入,得到:
缺页率 = (200ns - 100ns × (1 - 缺页率)) / (0.7 × 20ms + 0.3 × 8ms)
化简后得到:
缺页率 = 0.00106 + 0.0000526 × 缺页率
解方程得到:
缺页率 = 0.952%
因此,最大可接受的缺页错误率是0.952%。
相关问题
快表中存在该页面的页表项就说明该页面一定在内存中吗
不是的。快表(也称为转译后备存储器,Translation Lookaside Buffer,TLB)是CPU中的一个高速缓存,用于存储最近访问的页表项,以加快虚拟地址到物理地址的转换速度。当CPU访问一个虚拟地址时,它首先会在快表中查找对应的页表项,如果找到了,则可以直接获取物理地址。但是,如果快表中没有找到对应的页表项,CPU就需要访问主存中的页表来获取对应的页表项。
因此,即使快表中存在该页面的页表项,也不能确定该页面一定在内存中。可能存在以下情况:
1. 该页面可能已经被换出到磁盘或其他辅助存储设备中。
2. 该页面可能尚未被加载到内存中,而是处于未分配或未加载状态。
3. 快表中的页表项可能已经过期或无效,需要进一步验证。
因此,快表中存在该页面的页表项只是一个指示,需要进一步访问主存来确定页面是否在内存中。
快表中存在该页面的页表项,调入该页面时是否会发生缺页
如果快表中存在该页面的页表项,调入该页面时不会发生缺页。缺页是指在访问一个虚拟地址对应的物理页时,发现该物理页不在内存中,需要将其从磁盘或其他辅助存储设备中调入内存的情况。
当快表中存在该页面的页表项时,CPU可以直接从快表中获取到该页面的物理地址,无需进一步访问主存。这意味着该页面已经在内存中,不需要发生缺页。因此,只有在快表中不存在该页面的页表项时,才会发生缺页,需要将该页面从磁盘或其他辅助存储设备中调入内存。