(1) 先进先出置换算法(First In First Out, FIFO) 1 2 3 4 1 2 5 1 2 3 4 5 ---------------------------------------- 1 2 3 4 1 2 5 5 5 3 4 4 1 2 3 4 1 2 2 2 5 3 3 该行是怎么算出来的? 1 2 3 4 1 1 1 2 5 5 该行是怎么算出来的? ---------------------------------------- 缺页中断次数=9 FIFO是这样的:3个内存块构成一个队列,前3个页面依次入队(3个缺页),内存中为3-2-1; 接着要访问4号页面,内存中没有(1个缺页),按FIFO,1号页面淘汰,内存中为4-3-2; 接着要访问1号页面,内存中没有(1个缺页),按FIFO,2号页面淘汰,内存中为1-4-3; 接着要访问2号页面,内存中没有(1个缺页),按FIFO,3号页面淘汰,内存中为2-1-4; 接着要访问5号页面,内存中没有(1个缺页),按FIFO,4号页面淘汰,内存中为5-2-1; 接着要访问1号页面,内存中有(命中),内存中为5-2-1; 接着要访问2号页面,内存中有(命中),内存中为5-2-1; 接着要访问3号页面,内存中没有(1个缺页),按FIFO,1号页面淘汰,内存中为3-5-2; 接着要访问4号页面,内存中没有(1个缺页),按FIFO,2号页面淘汰,内存中为4-3-5; 接着要访问5号页面,内存中有(命中),内存中为4-3-5; 缺页中断次数=9 (12次访问,只有三次命中) (2) 最近最久未使用置换算法(Least Recently Used, LRU) 置换最近一段时间以来最长时间未访问过的页面。 LRU不同于FIFO的地方是,FIFO是先进先出,LRU是最近最少用,如果1个页面使用了,要调整内存中页面的顺序, 如上面的FIFO中: 接着要访问1号页面,内存中有(命中),内存中为5-2-1; 在LRU中,则为 接着要访问1号页面,内存中有(命中),内存中为1-5-2; |