最近复习到了页面置换算法忍不住写一篇

FIFO先进先出算法,这个不是FIFA,虽然看着很像,算法是先进先出规则,加入驻留级只有3个,我们可以假设有一张桌子 TT 大概就是这样桌子上能放得下最多3个数字,放置方式就是从一边推过去,如果满了必然会把最外面的推下去

比如这么一串访问串1 2 3 4 1 5 1 3 4 2 6

我们将它从右边推到桌子上,就是 1 2 3,之后把4推过去1就被挤掉了变成了2 3 4,如此反复fifo是不会改变顺序的,到4 1 5的时候1又出现了但已经存在了,这时候fifo的做法就是将其无视继续往后走知道把最后一个推上桌子。

fifo是唯一一个有belady现象的算法,基本上二者是绑定的。

LRU算法

这个算法可以当成fifo的改进型,依然可以用桌子

还是上面的串,但lru不会像fifo一样无视已存在的页,而是在读取到已存在的页面时将其放到最右边,即推上桌子的位置,比如4 1 5到下一个1时变成4 5 1 继续推

clock算法

这次我们不说桌子了,假如桌子一周坐了5个人,兴许还是那几个哲学家,我们把串串比作相应的哲学家,每个人左边有一根筷子,先不考虑他们怎么抢筷子,默认筷子都是放下的,相当于访问位为0,又称找0算法,当读到一个数时让一个哲学家拿起一个筷子,访问位置为1,继续读数顺时针让下一个哲学家拿起他的筷子,直到所有的哲学家手里都有筷子后所有的访问位都是1,就没有空的访问位了,如果再读一个新的数字那我们回到第一个哲学家,他不会直接放下手中的筷子而是等我们走后再放下,我们看到他没放下筷子就得去找第二个哲学家,他会做和第一个哲学家一样的事,由于之前所有哲学家都没放下筷子,所以只有当我们访问完一圈后才能找到第一个放下的筷子,就是之前第一个哲学家在我们走后放下的筷子,然后第二个哲学家筷子也放下了读数时也能拿起自己的筷子了,如果期间有哲学家读到了别的哲学家正在读的数,只需要让正在读那个数的哲学家再拿起筷子就行,以此类推循环。

改进型clock算法

这个算法比clock多了一个修改位,即某个哲学家最近是否有放下/拿起筷子的操作,有则置1,1,每次置换都要花费至多4次扫描,第一次找0,0即最近即没有被修改过又没有被访问过,一圈之后如果没有则开始找0,1,即可以是被修改过的,同时把扫描过的访问位置0,两圈后还是没有找到0,1则开始再重复第一遍找0,0,若第三遍还是没找到0,0则开始第四遍,找0,1,由于第二遍将所有访问位设为0,所以第四遍所有初始的1,1都会变成0,1,必然能找到

页面置换算法的个人心得相关推荐

  1. 操作系统课设之虚拟内存页面置换算法的模拟与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  2. 三十七、页面置换算法

    一.知识总览 请求分页存储管理与基本分页存储管理的主要区别: 在程序执行的过程中,当所访问的信息不再内存中时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序. 若内存空间不够,由操作系统负责 ...

  3. 页面置换算法简单对比----《operating system concepts》《操作系统原理》

    置换策略 当请求调页程序要调进一个页面,但是该作业分配所得的主内存块已经全部用完,则必须淘汰改作业在贮存中的一个页面.置换算法就是决定选择哪一个页面进行淘汰的规则. 如置换算法不够好,就会导致刚淘汰的 ...

  4. 【操作系统】考研の页面置换算法例子(看不懂你来打我~!)

    文章目录 1 缺页率 2 页面置换算法 1 缺页率 缺页率=缺页次数/缺页次数+访问成功次数 2 页面置换算法 根据页面走向,使用先进先出页面淘汰算法时,页面置换情况见下表. 物理块数为3时: 走向 ...

  5. linux页面置换的存储,3.4.4 第二次机会页面置换算法

    3.4.4   第二次机会页面置换算法 FIFO算法可能会把经常使用的页面置换出去,为了避免这一问题,对该算法做一个简单的修改:检查最老页面的R位.如果R位是0,那么这个页面既老又没有被使用,可以立刻 ...

  6. linux存储--页面置换算法(十一)

    选择调出页面的算法就称为页面置换算法.好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出. 常见的置换算法有以下四种 1. 最佳置换算法(OP ...

  7. 页面置换算法 - FIFO、LFU、LRU

    缓存算法(页面置换算法)-FIFO. LFU. LRU 在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO. LFU ...

  8. 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)

    简述 先输入一个N表示的是,页表大小(最多能存的帧数). 之后的序列是最大为9,最小为0的一个申请序列. 之后的输入一个数字T,表示输入的测试命令的数目. 之后的命令. 第一个数表示使用什么页面置换算 ...

  9. 操作系统:几种页面置换算法

    1)最优置换算法(OPT)(理想置换算法) 最佳置换法(OPT):选择将来不再使用或在最远的将来才被访问的页调换出去(不便于实现) 这是一种理想情况下的页面置换算法,但实际上是不可能实现的.该算法的基 ...

最新文章

  1. 运算符重载:即为函数
  2. 【转载】SQL执行计划
  3. 【面试福利篇】英文面试的相关资料
  4. 数据集干货:一文读懂Mapsidejoin
  5. GDCM:gdcm::Dicts的测试程序
  6. POJ - 3261 Milk Patterns(二分+后缀数组)
  7. AtomicInteger使用非阻塞算法,实现并发控制多线程实现售票
  8. 计算机名生成,如何让输出的文本名字自动生成计算机名字?
  9. spring 连数据库的配置文件
  10. 方舟服务器修改错误,求解,方舟正在进服务器出现错误
  11. 初识powerpoint的计算机教案,《初识PowerPoint》教案
  12. 微信小程序调查问卷避坑
  13. Python之网络数据采集入门常用模块初识
  14. vs2015上的html可以编译,libcef编译使用--使用VS2015
  15. 用电器开关应该接在火线上还是零线上
  16. 关于减肥的科学理解和准则
  17. 解决:pandas.errors.ParserError: Error tokenizing data. C error: Expected 2 fields in line 18, saw 4
  18. 微信公众号更新缓存问题--批量添加版本号
  19. js return加分号_JavaScript语句后应该加分号么?
  20. “超男”改“快乐男”,不“超级”也能“快乐”?

热门文章

  1. android刘海屏高度适配,Android刘海屏适配
  2. 电气装备计算机控制实验,电气装备计算机控制系统设计实验报告(DOC)
  3. php验证码原代码(三个php文件搞定验证码)原代码!原代码!原代码!
  4. 【智能物流】分分钟了解透彻自动化立体仓库
  5. TCP/IP协议 之IPV4与IPV6的区别;5G无线通信与4G的典型区别有哪些?
  6. Android自定义View之跟随手指一起滑动的五色的小球
  7. AJAX(一)--简介
  8. 不动点迭代法的matlab实现
  9. signaling hbbtv info in TS
  10. 基于Arduino或者Stm32的智能台灯