美文网首页
页面置换算法

页面置换算法

作者: 骑着羊驼来看你 | 来源:发表于2018-09-05 14:56 被阅读0次

页面置换算法

当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法

缺页中断

指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。

简而言之,缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。

最优页面置换算法

最理想的状态下,我们给页面做个标记,挑选一个最远才会被再次用到的页面。当然,这样的算法不可能实现,因为不确定一个页面在何时会被用到。

FIFO 及其改进

这种算法的思想和队列是一样的,OS维护一个当前在内存中的所有页面的链表,最新进入的页面在尾部,最久的在头部,每当发生缺页中断,就替换掉表头的页面并且把新调入的页面加入到链表末尾。

这个算法的问题,显然是太过于“公正了”,没有考虑到实际的页面使用频率。

一种合理的改进:即给每个页面增加一个R位,每次先从链表头开始查找,如果R置位,清除R位并且把该页面节点放到链表结尾;如果R是0,那么就是又老又没用到,替换掉。

时钟页面置换算法(clock)

这种算法只是模型像时钟,其实就是一个环形链表的第二次机会算法,表针指向最老的页面。缺页中断时,执行相同的操作,包括检查R位等。

LRU

Least Recently Used的缩写,即最近最少使用,常用于页面置换算法和缓存淘汰算法

实现:

最常见的实现是使用一个链表保存缓存数据;

  1. 新数据插入到链表头部

  2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部

  3. 当链表满的时候,将链表尾部的数据丢弃

相关文章

  • 页面置换算法之LRU算法

    一.页面置换算法 三种常见的页面置换算法:FIFO、LFU、LRU参考:缓存算法(页面置换算法)-FIFO、LFU...

  • 基于虚拟存储区和内存工作区的页面置换算法

    一 需求分析 编写程序实现: 先进先出页面置换算法(FIFO) 最近最久未使用页面置换算法(LRU) 最佳置换页面...

  • 【操作系统,进程,多线程】

    1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...

  • 2018-05-21

    OS学习周报告-3 页面置换算法模拟-FIFO 页面置换算法是虚拟内存技术中重要的技术之一,该算法是在搜索页表发生...

  • 虚拟存储器的页面置换算法

    最佳置换算法 OPT 选择永远不再需要的页面或最长时间以后才需要访问的页面予以淘汰。 先进先出置换算法 FIFO ...

  • 基于JAVA实现的图形化页面置换算法

    最佳页面置换算法 思想: 最佳页面置换算法所选择的被淘汰页,将是以后永不使用的,或许是在最长时间内不再被访问的页面...

  • [源码和文档分享]基于JAVA实现的图形化页面置换算法

    最佳页面置换算法 思想: 最佳页面置换算法所选择的被淘汰页,将是以后永不使用的,或许是在最长时间内不再被访问的页面...

  • 4-1.页面置换算法

    ① 判断置换算法好坏的标准: 具有较低的页面置换频率。 ② 内存抖动: 页面的频繁更换,导致整个系统效率急剧下降,...

  • 页面置换算法

    页面置换算法 当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便...

  • 页面置换算法

    在地址映射时,如果刚好CPU执行一个指令,需要用到该指令中的虚拟地址中对应的物理地址,但是该虚拟地址没有对应的物理...

网友评论

      本文标题:页面置换算法

      本文链接:https://www.haomeiwen.com/subject/zguawftx.html