计算机操作系统 页面置换算法——最 佳 置 换OPT

最佳置换算法OPT

其所淘汰的页面将是 ①以后不再使用的②或者在未来最长的时间内不再被访问的页面

采用OPT算法可保证最低的缺页率。但实际上,我们并不能预知一个进程在内存的若干页面中,哪个页面会是未来最长时间不被访问的,因而OPT算法只是一种理论算法,无法实现,可用来评价其他算法的好坏。

例题:

在请求分页系统中,一个进程的页面访问走向是:1、7、2、3、1、7、5、1、7、2、3、5;如果分配给此进程的物理块数为 3,分析采用最佳置换算法时的页面置换过程,并计算缺页次数。

访问页

1

7

2

3

1

7

5

1

7

2

3

5

内存页

1

1

1

1

1

2

2

7

7

7

7

7

3

2

3

5

5

5

缺页否

×

×

×

×

×

(表中最上面①~⑩序号仅为了讲解方便,实际做题时,没有这一行)

解释:

①开始时1、7、2分别装入内存

②要访问页面3时,内存中没有3,产生缺页中断,需置换一次。此时往右看,2离当前位置最远,将2置换成3;更新后内存页1、7、3

③要访问页面1时,1已在内存中,不产生缺页中断,内存页不变1、7、3

④要访问页面7时,7已在内存中,不产生缺页中断,内存页不变1、7、3

⑤要访问页面5时,内存中没有5,产生缺页中断,需置换一次。此时往右看,3离当前位置最远,将3置换成5;更新后内存页1、7、5

⑥要访问页面1时,1已在内存中,不产生缺页中断,内存页不变1、7、5

⑦要访问页面7时,7已在内存中,不产生缺页中断,内存页不变1、7、5

⑧要访问页面2时,内存中没有2,产生缺页中断,需置换一次。此时往右看,1、7都已不再使用,此时优先替换1,因为1在内存驻留时间最长,将1置换为2;更新后内存页2、7、5

⑨要访问页面3时,内存中没有3,产生缺页中断,需置换一次。此时往右看,2、7都已不再使用,此时优先替换7,因为7在内存驻留时间最长,将7置换为3;更新后内存页2、3、5

⑩要访问页面5时,5已在内存中,不产生缺页中断,内存页不变2、3、5

综上可知,缺页次数7次.

  • 18
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机操作系统页面置换算法是指在虚拟内存管理中,当物理内存不足时,需要将某些页面从内存中出去,以便为新的页面腾出空间。常见的页面置换算法有以下几种: 1. 最优页面置换算法OPT):选择在未来最长时间内不再被访问的页面进行,但是由于需要预测未来的访问情况,因此实际应用较少。 2. 先进先出页面置换算法(FIFO):选择最早进入内存的页面进行,但是该算法可能会出现Belady异常,即增加物理内存可能会导致缺页次数增加。 3. 最近最久未使用页面置换算法(LRU):选择最近最久未使用的页面进行,该算法相对于FIFO算法能够更好地反映页面的使用情况,但是实现较为复杂。 4. 时钟页面置换算法(Clock):将页面组织成一个环形链表,每个页面有一个访问位,当页面被访问时,访问位被设为1,当需要页面时,选择访问位为0的页面进行。 5. 最不经常使用页面置换算法(LFU):选择最不经常使用的页面进行,该算法需要记录每个页面被访问的次数,实现较为复杂。 下面是一个LRU算法的Python实现: ```python from collections import OrderedDict class LRUCache: def __init__(self, capacity: int): self.capacity = capacity self.cache = OrderedDict() def get(self, key: int) -> int: if key not in self.cache: return -1 self.cache.move_to_end(key) return self.cache[key] def put(self, key: int, value: int) -> None: if key in self.cache: self.cache.move_to_end(key) self.cache[key] = value if len(self.cache) > self.capacity: self.cache.popitem(last=False) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值