操作系统(五)页面置换算法与分配策略

news2024/11/29 2:42:42

操作系统(五)页面置换算法与分配策略

一、页面置换算法

image-20230213224047849

1、最佳置换算法(OPT)

  • 每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率

image-20230213224449185

实际上就是从当前内存块的页面中淘汰一个最后出现的页面

image-20230213224651549

  • 最佳置换算法是缺页率最低的算法
  • 由于进程运行中无法获取进程要访问的全部页面,因此最佳置换算法是无法实现的

2、先进先出置换算法(FIFO)

  • 把调入内存的页面形成一个队列,每次发生置换时选择队头页面即可

image-20230213224959431

  • 实现简单
  • 算法性能差
  • 会产生Belady异常(当为进程分配的物理块增大时,缺页次数不减反增)

3、最近最久未使用算法(LRU)

  • 每次淘汰最近最久没有使用的页面

image-20230213225720304

  • 性能好
  • 实现困难,需要专门的硬件支持,开销大

4、时钟置换算法(CLOCK)

  • 又称最久未用算法(NRU)

image-20230213230027089

为每个页面设置一个访问位,首先在页面中选择访问位为0的页面,并将访问位为1的页面置为0

  • 性能与开销比较均衡
  • 未考虑页面是否被修改

5、改进型时钟置换算法

  • 如果一个页面在访问过程中被修改了,那么它需要执行I/O操作写回外存,因此在其他条件相同时,应该优先淘汰未修改的页面

为每个页面增加一个修改位

image-20230213230528062

1.寻找标志位为(0,0)即最近未访问未修改的页面

2.寻找标志位为(0,1)即最近未访问但修改过的页面,并将扫描过的页面的访问位设为0

3.寻找标志位为(0,0)即最近访问过但未修改过的页面

4.寻找标志位为(0,1)即最近访问过且修改过的页面

个人觉得这样设计的依据是根据局部性原理,最近访问过的页面接下来也可能被访问,所以会优先淘汰未访问的

image-20230213231119912

6、小结

image-20230213231218286

  • OPT算法是无法实现的

  • 只有FIFO算法会导致Belady异常

二、页面分配策略

image-20230213231437362

1、驻留集

指请求分页存储管理中给进程分配的物理块的集合

  • 驻留集太小,会导致缺页频繁,系统会花费大量的时间去处理缺页
  • 驻留集太大,会导致多道程序并发度下降,资源利用率低

2、页面分配、置换策略

固定分配:操作系统给进程分配的物理块数目在进程运行期间固定不变,即驻留集大小不变

可变分配:驻留集大小可变

局部置换:发生缺页时只能选择进程自己的物理块进行替换

全局替换:可以将操作系统保留的空闲物理块分配给缺页进程,也可以将别的进程持有的物理块置换到外存,再分配给缺页进程

3、调入页面的时机

image-20230213232423463

4、从何处调页

image-20230213232508852

5、抖动(颠簸)现象

image-20230213232545610

刚刚换出的页面马上又要换入内存,刚刚换入的页面又要马上换出外存,这种频繁的页面调度行为称为抖动或颠簸

6、工作集

基于工作集的可变分配方式的最大窗口尺寸一般是窗口尺寸+1

image-20230213232746577

工作集指在某段时间间隔里,进程实际访问页面的集合。

7、小结

  • 系统为某进程分配了n个物理块等价于系统为该进程分配的驻留集大小为n
  • 不存在固定分配全局置换,因为固定分配进程的驻留集大小是不会改变的,所以一定不会发生全局置换

image-20230213233008387

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Kubernetes】【一】Kubernetes介绍

Kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定…

PDF SDK for Linux 8.4.2 Crack

PDF SDK for Linux 是适用于任何 Linux 企业或云应用程序的强大解决方案,非常适合需要完全可定制的 PDF 查看器或后端流程的任何 Linux 开发人员。 将 Foxit PDF SDK 嵌入到基于 Linux 的应用程序中非常容易。只需打开您最喜欢的 Linux IDE,复制您需要的…

电容笔和Apple pencil的区别有啥?学生党电容笔推荐

普通的电容笔与 Apple Pencil最大的区别在于,普通的电容笔没有像苹果电容笔那样的重力压感,而仅仅只有一个倾斜的压敢。但平替电容笔的其他性能也很不错,几乎和苹果 Pencil一样,而且平替电容笔的售价只需200元左右。目前&#xff…

react+antd+Table里切换Switch改变状态onChange 传参

场景&#xff1a;table列表里面&#xff0c;操作用Switch切换状态。对应列改变操作在colums里面// 表格行const colums: ColumnsType<potentialType> [{title: useLocale(创建时间),dataIndex: creation_date,key: creation_date,align: center,render: (v: string, rec…

【Python安全编程】Python实现网络主机和端口扫描

文章目录前言环境准备Python实现主机扫描基于ARP协议基于ICMP协议普通版本多线程版本Python实现端口扫描扫描单个端口利用多线程扫描端口后记前言 本文主要讲几个利用Python实现网络扫描的小例子&#xff0c;可以结合多线程或多进程编程改进实例 我曾经走过多遥远的路 跨越过多…

windows环境下安装Nginx及常用操作命令

windows环境下安装Nginx及常用操作命令nginx基本概述基本用途nginx安装nginx基本概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。基本用途 nginx是一个轻量级高并发服务器&#xff0c;而tomcat并不是。nginx一般被用来做反向代理&#xff0c;将请求转发到应用…

The Social-Engineer Toolkit(社会工程学工具包)互联网第一篇全模块讲解

一、工具介绍 Social-Engineer Toolkit 是一个专为社会工程设计的开源渗透测试框架&#xff0c;可以帮助或辅助你完成二维码攻击、可插拔介质攻击、鱼叉攻击和水坑攻击等。SET 本身提供了大量攻击选项&#xff0c;可让您快速进行信任型攻击&#xff0c;也是一款高度自定义工具…

Fluent Python 笔记 第 14 章 可迭代的对象、迭代器和生成器

迭代是数据处理的基石。扫描内存中放不下的数据集时&#xff0c;我们要找到一种惰性获取数据项的方式&#xff0c;即按需一次获取一个数据项。这就是迭代器模式(Iterator pattern)。本章说明 Python 语言是如何内置迭代器模式的&#xff0c;这样就避免了自己手动去实现。 在 P…

Mask-RCNN(3) : 自定义数据集读取(VOC COCO)以及pycocotools的使用

文章目录1. COCO数据读取1.1 COCO数据集目录结构1.2 pycocotools的使用1.3 COCODetection类__init__方法__getitem__方法2. VOC数据读取2.1 VOC数据集目录结构2.2 VOCInstances类__init__方法2.3 __getitem__方法参考1. COCO数据读取 1.1 COCO数据集目录结构 下载并解压COCO数…

MySQL 6:MySQL存储过程、存储函数

MySQL 5.0 版本开始支持存储过程。存储过程是一组SQL语句&#xff0c;功能强大&#xff0c;可以实现一些复杂的逻辑功能&#xff0c;类似于JAVA语言中的方法&#xff1b;存储是数据库SQL语言层面的代码封装和复用。 存储过程有输入输出参数&#xff0c;可以声明变量&#xff0…

Android Monkey

1、Monkey&#xff08;Monkey是发送伪随机用户事件的工具&#xff09;介绍&#xff1a; Monkey测试是Android平台自动化测试的一种手段&#xff0c;通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试&#xff0c;检测程序多久的时间会发…

安灯(andon)系统是车间现场管理的必备工具

安灯&#xff08;andon&#xff09;系统应用越来越广泛&#xff0c;不单单局限于汽车行业&#xff0c;更多生产型企业意识到了提高工作效率的重要性&#xff0c;提高工作效率根本的能提高生产水平&#xff0c;提高产量&#xff0c;而且安灯&#xff08;andon&#xff09;系统不…

python(16)--类

一、类的基本操作1.定义一个类格式&#xff1a;class Classname( )&#xff1a;内容&#x1f48e;鄙人目前还是一名学生&#xff0c;最熟悉的也就是学校了&#xff0c;所以就以学校为例子来建立一个类吧class School():headline"帝国理工大学"def schoolmotto(self):…

java 代码块 万字详解

概述 : 特点 : 格式 : 情景 : 细节 : 演示 : 英文 : //v&#xff0c;新版编辑器无手动添加目录的功能&#xff0c;PC端阅读建议通过侧边栏进行目录跳转&#xff1b;移动端建议用PC端阅读。&#x1f602;一、概述 :代码块&#xff0c;也称为初始化块&#xff0c;属于类中的成员&…

Vue3 如何实现一个带遮罩的 dialog 对话框

theme: mk-cute 开启掘金成长之旅&#xff01;这是我参与「掘金日新计划 12 月更文挑战」的第7天&#xff0c;点击查看活动详情 前言&#xff1a; 今天在项目中遇到了很多很多需要弹出一个对话框的场景&#xff0c;由于之前全都是通过 v-if 来控制这个组件的显示与否&#x…

【python游戏】让我们一起制作地球联邦阵营的战机,保护希望水晶,为人类的希望而战。

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 随着人类太空科技的飞速发展&#xff0c;希望水晶被越来越多的科学家当做核心能源来开发使用。 人类社会也因为水晶资源的争夺&#xff0c;开始逐渐分化成两派。 留在地球的普通人成立地球联邦&#xff0c;移居卫星的新人…

我对平衡二叉树的理解(比喻的方式)

传销是一种恶性的行销方式&#xff0c;主要手段就是激励其中的成员拉人头。 有个奇怪的传销组织&#xff0c;他们的传销规则是这样的&#xff1a; 每个人最多可以带着2人进该组织&#xff0c;其中1个年纪比自己大&#xff0c;另1个年纪比自己小新人都是由创始人找到。假如年纪…

中文关键词提取算法

中文关键词提取算法 如何提取query或者文档的关键词&#xff1f; 一般有两种解决思路&#xff1a; 有监督方法&#xff0c;把关键词提取问题当做分类问题&#xff0c;文本分词后标记各词的重要性打分&#xff0c;然后挑出重要的topK个词&#xff1b;无监督方法&#xff0c;使…

likeshop单商户SaaS版V1.8.2说明!

likeshop单商户SaaS版V1.8.2主要更新如下&#xff1a; 新增 前端登录引导用户填写头像昵称 PC端—注册页面显示服务协议和隐私政策 PC端—首次进入商城弹出协议提示 PC端—结算页新增门店自提的配送方式 后台—PC端菜单导航栏的跳转链接支持添加自定义链接 ​​ ​​ ​ 优…

2022年“网络安全”赛项宜昌市选拔赛 任务书

2022年“网络安全”赛项宜昌市选拔赛 任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 数据库服务渗透测试 任务二 Wireshark数据包分析 任务三 Windows操作系统渗透测试 任务四 系统漏…