题目
某计算机系统的某个进程的页表[1]有4个域:装入时间、上次引用时间、R(读)与M(修改)位,见下表。请问:采用Clock算法、FIFO、LRU和第二次机会页面置换算法,将分别置换哪一页?钱注:第二次机会页面置换算法实现过程:首先检查FIFO队首页面,如果它的引用位为“0”,则淘汰它;如果它的引用位为“1”,则将其引用位清成0,并把这个页移到队尾,把它看做一个新调入的页,再给它一次机会。该算法与Clock算法本质上没有区别,仅仅是实现方法不同,Clock算法是第二次机会页面置换算法的改进。第二次机会页面置换算法实现时因可能产生频繁的出队入队,实现代价较大。页号装入时间上次引用时间RM12627912302601212027211316028011
某计算机系统的某个进程的页表[1]有4个域:装入时间、上次引用时间、R(读)与M(修改)位,见下表。请问:采用Clock算法、FIFO、LRU和第二次机会页面置换算法,将分别置换哪一页?
钱注:第二次机会页面置换算法实现过程:首先检查FIFO队首页面,如果它的引用位为“0”,则淘汰它;如果它的引用位为“1”,则将其引用位清成0,并把这个页移到队尾,把它看做一个新调入的页,再给它一次机会。该算法与Clock算法本质上没有区别,仅仅是实现方法不同,Clock算法是第二次机会页面置换算法的改进。第二次机会页面置换算法实现时因可能产生频繁的出队入队,实现代价较大。
页号
装入时间
上次引用时间
R
M
126
279
1
230
260
1
2
120
272
1
1
3
160
280
1
1
题目解答
答案
答:采用Clock算法淘汰0#页,FIFO算法淘汰2#页,LRU算法淘汰1#页,第二次机会页面置换算法淘汰0#页。
解析
考查要点:本题主要考查四种页面置换算法(Clock、FIFO、LRU、第二次机会)的工作原理及应用。
解题核心思路:
- FIFO:淘汰最先进入内存的页(装入时间最早)。
- LRU:淘汰最近最久未使用的页(上次引用时间最早)。
- Clock:通过R位(引用位)判断,优先淘汰R位为0的页;若所有页R位为1,则循环标记后重新选择。
- 第二次机会:结合FIFO和Clock思想,若队首页R位为1,则清零并重排队尾,否则淘汰。
破题关键点:
- FIFO需比较装入时间,LRU需比较上次引用时间。
- Clock需关注R位状态,第二次机会需动态调整队列顺序。
1. FIFO算法
- 核心逻辑:淘汰装入时间最早的页。
- 数据对比:
- 页0:装入时间279
- 页1:装入时间120(最早)
- 页2:装入时间160
- 页3:未提及,但根据答案推断非淘汰对象。
- 结论:淘汰页1(装入时间120)。
2. LRU算法
- 核心逻辑:淘汰上次引用时间最早的页。
- 数据对比:
- 页0:上次引用时间230(最早)
- 页1:上次引用时间272
- 页2:上次引用时间280
- 页3:未提及。
- 结论:淘汰页0(上次引用时间230)。
3. Clock算法
- 核心逻辑:优先淘汰R位为0的页;若全部为1,则循环标记后选择。
- 数据对比:
- 页0:R位=0(直接淘汰)
- 页1、2、3:R位=1。
- 结论:淘汰页0(R位=0)。
4. 第二次机会算法
- 核心逻辑:检查FIFO队首页,若R位=1则重排队尾,否则淘汰。
- 步骤:
- 队首为页1(装入时间最早)。
- 页1的R位=1 → 清零R位(R=0),移至队尾。
- 新队首为页2(原队列顺序调整后)。
- 页2的R位=1 → 清零R位,移至队尾。
- 新队首为页0,R位=0 → 淘汰页0。
- 结论:淘汰页0。