十一、Belady现象和LRU、FIFO、clock的比较

简介: 十一、Belady现象和LRU、FIFO、clock的比较

1、Belady现象


在采用FIFO算法时,有时会出现分配的物理页面数增加,缺页率反而提高的异常现象


Belady现象产生的原因: FIFO算法的置换特征与进程访问内存的动态特征时矛盾的,与置换算法的目标(即替换较少使用的页面)不一致的,因此,被他置换出去的页面并不一定是进程不会访问的。


只有FIFO算法有Belady现象的缺陷,其他算法如LRU算法没有Belady算法这种缺陷,因为LRU算法符合一种“栈算法”的特点,所分配的物理页帧越多,则产生的缺页次数越少。




2、LRU、FIFO和clock的比较


LRU算法和FIFO本质上都是先进先出的思路,只不过LRU时针对页面最近访问的时间来进行排序,所以需要在每一次页面访问的时候动态地调整各个页面之间的先后顺序(因为其中某个页面的最近访问时间改变了);而FIFO是针对页面进入内存的时间来进行排序的,这个时间是固定不变的,所以各个页面之间的先后顺序时固定的。如果一个页面在进入内存后没有被访问,那么他的最近访问时间就是他进入内存的时间。换句话说,如果内存当中的所有页面都未曾访问过,那么LRU算法就退化为FIFO算法。


clock是使用了一些内存中的信息(访问位,脏位等)来模拟LRU算法。


LRU算法性能较好,但系统开销较大;FIFO算法系统开销较小,但可能会发生Belady现象。因此,这种的办法就是使用clock算法,在每一次页面访问的时候,他不必动态地去调整该页面在链表中的顺序,而仅仅是做一个标记,然后等到发生缺页中断时,再把它移动到链表末尾。对于内存当中那些未被访问的页面,clock和LRU算法表现一样好;而对于那些曾经被访问过的页面,他不能像LRU算法那样,准确记录他们的位置。




相关文章
|
5月前
|
消息中间件 调度 数据安全/隐私保护
xenomai内核解析--任务同步互斥机制(一)--优先级倒置
本文是关于Xenomai实时操作系统中资源管理和优先级倒置问题的概述。Xenomai使用`xnobject`和`xnregistry`管理任务间的同步互斥资源,如信号量、互斥锁等。资源管理涉及访问控制和资源保存,确保共享资源的正确调度。文章还介绍了优先级倒置现象,即高优先级任务因低优先级任务持有资源而被阻塞。为解决此问题,Xenomai采用了优先级继承策略,临时提升低优先级任务的优先级,以防止持续的优先级反转。文章后续将深入分析`xnsynch`模块和优先级倒置解决方案。
128 1
xenomai内核解析--任务同步互斥机制(一)--优先级倒置
|
存储 算法 C++
虚拟存储管理(OPT,FIFO,LRU,LFU,NUR算法的C++实现)
虚拟存储管理(OPT,FIFO,LRU,LFU,NUR算法的C++实现)
427 1
|
11月前
|
存储 安全 调度
DPDK环形缓冲区(Ring)详解及性能优化
DPDK环形缓冲区(Ring)详解及性能优化
|
缓存 NoSQL 算法
会会大厂面试官五----Redis【内存调整、OOM、淘汰策略、LRU算法】
会会大厂面试官五----Redis【内存调整、OOM、淘汰策略、LRU算法】
198 0
会会大厂面试官五----Redis【内存调整、OOM、淘汰策略、LRU算法】
|
算法
操作系统 页面置换算法FIFO与LRU的实现
操作系统 页面置换算法FIFO与LRU的实现
363 0
操作系统 页面置换算法FIFO与LRU的实现
|
缓存 算法
常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)
缓存算法是指令的一个明细表,用于决定缓存系统中哪些数据应该被删去。 常见类型包括LFU、LRU、ARC、FIFO、MRU。
551 0
常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)
|
算法 Windows
深入理解【缺页中断】及FIFO、LRU、OPT这三种置换算法
  缺页中断(英语:Page fault,又名硬错误、硬中断、分页错误、寻页缺失、缺页中断、页故障等)指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。
4169 0