• 内容讲解

当CPU要访问的数据或指令不在主存中时,产生页面失效(缺页),此时就要从外存调进包含此数据或指令的页,若主存页面已全部占满,就需要采用某种替换算法将主存中的某一页替换出去。虚拟存储器中的页面替换策略与Cache中的块替换策略有很多相似之处,但有三点显著不同:

(1)缺页至少要涉及一次磁盘外存存取,以读取所缺的页,因缺页使系统蒙受的损失要比Cache未命中大得多。

(2)页面替换是由操作系统软件实现的,而Cache的块替换则是由硬件实现的。

(3)页面替换的选择余地很大,属于一个进程的页面都可替换。

虚拟存储器中的替换策略一般采用LRU算法、LFU算法、FIFO算法,或将两种算法结合起来使用。对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就要把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一个修改位。