第三章 内存管理 十四、页面分配策略

news2024/12/28 3:08:10

目录

一、驻留集

1、定义:

2、注意事项

3、分配策略

固定分配:

可变分配:

4、置换策略

局部置换:

全局置换:

5、置换分配策略

5.1、固定分配局部置换:

这种策略的缺点是:

5.2、可变分配全局置换:

5.3、可变分配局部置换:

注意:

6、何时调入页面

6.1、预调页策略:

6.2、请求调页策略:

7、何处调入页面

7.1、系统拥有足够的对换区空间:

7.2、系统缺少足够的对换区空间:

7.3、UNIX方式:

8、抖动(颠簸)现象

8.1、定义:

二、工作集

1、定义:

2、例子:

三、总结


一、驻留集

1、定义:

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

2、注意事项

  • 在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小。
  • 若驻留集太小,会导致缺页频繁,系统要花大量的时间来处理缺页,实际用于进程推进的时间很少
  • 驻留集太大,又会导致多道程序并发度下降,资源利用率降低。所以应该选择一个合适的驻留集大小。

3、分配策略

固定分配:

操作系统为每个进程分配一组固定数目的物理块,在进程运行期间不再改变。即,驻留集大小不变

可变分配:

先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加或减少。即,驻留集大小可变

4、置换策略

局部置换:

发生缺页时只能选进程自己的物理块进行置换。

全局置换:

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

5、置换分配策略

5.1、固定分配局部置换:
  1. 系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。
  2. 若进程在运行中发生缺页,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面。
这种策略的缺点是:
  • 很难在刚开始就确定应为每个进程分配多少个物理块才算合理。
  • (采用这种策略的系统可以根据进程大小、优先级、或是根据程序员给出的参数来确定为一个进程分配的内存块数)
5.2、可变分配全局置换:
  1. 刚开始会为每个进程分配一定数量的物理块。操作系统会保持一个空闲物理块队列。
  2. 当某进程发生缺页时,从空闲物理块中取出一块分配给该进程;
  3. 若已无空闲物理块,则可选择一个未锁定的页面换出外存,再将该物理块分配给缺页的进程。
  4. 采用这种策略时,只要某进程发生缺页,都将获得新的物理块,仅当空闲物理块用完时,系统才选择一个未锁定的页面调出。
  5. 被选择调出的页可能是系统中任何一个进程中的页,因此这个被选中的进程拥有的物理块会减少,缺页率会增加。
5.3、可变分配局部置换:
  1. 刚开始会为每个进程分配一定数量的物理块。
  2. 当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行换出外存。
  3. 如果进程在运行中频繁地缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋势适当程度;
  4. 反之,如果进程在运行中缺页率特别低,则可适当减少分配给该进程的物理块。
注意:

6、何时调入页面

6.1、预调页策略:
  1. 根据局部性原理,一次调入若干个相邻的页面可能比一次调入一个页面更高效。
  2. 但如果提前调入的页面中大多数都没被访问过,则又是低效的。
  3. 因此可以预测不久之后可能访问到的页面,将它们预先调入内存,但目前预测成功率只有50%左右。
  4. 故这种策略主要用于进程的首次调入,由程序员指出应该先调入哪些部分。
     
6.2、请求调页策略:
  1. 进程在运行期间发现缺页时才将所缺页面调入内存。
  2. 由这种策略调入的页面一定会被访问到,但由于每次只能调入一页,而每次调页都要磁盘I/O操作,因此I/O开销较大。

7、何处调入页面

7.1、系统拥有足够的对换区空间:
  1. 页面的调入、调出都是在内存与对换区之间进行,这样可以保证页面的调入、调出速度很快。
  2. 在进程运行前需将进程相关的数据从文件区复制到对换区。

7.2、系统缺少足够的对换区空间:
  1. 凡是不会被修改的数据都直接从文件区调入,由于这些页面不会被修改,因此换出时不必写回磁盘,下次需要时再从文件区调入即可。
  2. 对于可能被修改的部分,换出时需写回磁盘对换区,下次需要时再从对换区调入。

7.3、UNIX方式:
  1. 运行之前进程有关的数据全部放在文件区,故未使用过的页面,都可从文件区调入。
  2. 若被使用过的页面需要换出,则写回对换区,下次需要时从对换区调入。

8、抖动(颠簸)现象

8.1、定义:
  • 刚刚换出的页面马上又要换入内存,刚刚换入的页面马上又要换出外存,这种频繁的页面调度行为称为抖动,或颠簸。
  • 产生抖动的主要原因是进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)
     

二、工作集

1、定义:

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

2、例子:

三、总结

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

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

相关文章

周立功ZCANPRO简介和使用

ZCANPRO目录 周立功ZCANPRO简介一、软件安装ZCANPRO官网链接:驱动官网链接 二、ZCANPRO使用1.设备管理2.选择CAN、CANFD波特率计算器使用方法(可选) 3.新建视图CAN视图DBC视图 4.发送数据普通发送DBC发送 三、高级功能UDS诊断 周立功ZCANPRO简…

分布式缓存Spring Cache

一、缓存里的数据如何和数据库的数据保持一致? 缓存数据一致性1)、双写模式2)、失效模式1、缓存数据一致性-双写模式 2、 缓存数据一致性-失效模式 我们系统的一致性解决方案: 1、缓存的所有数据都有过期时间,数据过期下一次查询触发主动更新 2、读写数据…

基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序

计算机视觉-作业1 作业要求简介说明 安装运行功能使用待完善代码相关 作业要求 拍一张A4纸文稿的图片,利用角点检测、边缘检测等,再通过投影变换完成对文档的对齐扫描 简介 使用python语言,基于PyQt5和OpenCV库的简单的文档对齐扫描应用程…

教你面试就看出公司是否靠谱!

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

王道计算机考研 操作系统学习笔记 + 完整思维导图篇章五: IO管理

目录 IO设备的基本概念和分类 IO设备的分类 按使用特性分类 按传输速率分类 按信息交换单位分类 IO控制器 l/O设备的电子部件(I/O控制器) l/O控制器的组成 内存映像I/o vs.寄存器独立编址 IO控制方式 程序直接控制方式 中断驱动方式 DMA方式 ​编辑通…

Cesium添加自己的专属Logo(2023.10.22)

Cesium添加专属Logo 2023.10.22 引言1、现有网站实例展示1.1 Cesium官方Logo1.2 SuperMap官方Logo1.3 Mars3D官方Logo1.4 Xt3d个人Logo1.5 Digital Visual官方Logo1.6 AirLook官方Logo 2、两种常见的实现思路2.1 思路1(静态或动态引入Div)2.1.1 静态Div&…

Swift 判断 A B 两个时间是不是同一天,A 是不是 B 的昨天

1. 今天要做这个效果(在时间旁边显示今天,昨天) 2. Preview 3. Code: // 添加 今天 昨天 func show_today_yesterday(d: Date Date()) -> String {let calendar Calendar.currentlet today: Date Date()if calendar.isDate(today, inS…

文具办公品经营小程序商城的作用是什么

在购买文具方面,线下文具品牌门店除了疫情冲击外,还有同行间的激烈竞争,消费者对品牌概念较为模糊,同质化产品严重,消费者选择度高,店铺流量稀少,线下经营成本变高。 如今很多消费者已经习惯于线…

DigiCert证书——银行官网的首选

在当今数字化时代,互联网成为了人们获取金融服务的主要途径之一。随着在线银行交易的增加,确保用户数据安全和建立信任成为银行官网的首要任务。因此,越来越多的银行官网选择DigiCert证书作为其网络安全解决方案。那么,为何DigiCe…

Rust之自动化测试(三): 测试组合

开发环境 Windows 10Rust 1.73.0 VS Code 1.83.1 项目工程 这里继续沿用上次工程rust-demo 测试组合 正如本章开始时提到的,测试是一个复杂的学科,不同的人使用不同的术语和组织。Rust社区根据两个主要类别来考虑测试:单元测试和集成测试。单元测试很…

【java爬虫】使用selenium获取某交易所公司半年报数据

引言 上市公司的财报数据一般都会进行公开,我们可以在某交易所的官方网站上查看这些数据,由于数据很多,如果只是手动收集的话可能会比较耗时耗力,我们可以采用爬虫的方法进行数据的获取。 本文就介绍采用selenium框架进行公司财…

服务器通过scp传送数据,提示验证失败的问题

场景提示如下 当使用scp传送数据时提示这个 分析: 目标服务器云盘被格式化过, 用之前的密钥校验新的系统时发现不匹配了,拒绝登录! 解决方法 需要把旧密钥换成新的密钥 先看源服务器已经有的密钥ssh-keygen -l -f ~/.ssh/known_hosts然后重新生成一下…

简道云出现问题及解决方法1

1、在制作仪表盘设计的时候没有统计表链接,点开统计表没有显示。 根据老师的手把手教导还是会出现错误,上网查询再加上多次看录播回放,私以为是不同网页版本的问题,包括一些应用的排版同样不一样。这里的解决办法是把刚才做的表盘…

MySQL binlog集市的项目小结

这是学习笔记的第 2478篇文章 MySQL binlog集市的事情我们做了有一段时间了,最开始的初衷是异常操作的数据恢复,主要的痛点是如果发生了业务误操作,需要紧急恢复数据的时候,通常这些误操作是对于字典配置数据的变更,而…

有哪些适用于 Windows 的PDF 阅读器?免费 PDF 阅读器清单

探索适用于 Windows 10 和 11 的最佳 PDF 阅读器 适用于 Windows 10 和 Windows 11 的最佳 PDF 阅读器让您可以在台式计算机上查看和共享文档。 最好的PDF 编辑器和免费的 PDF 编辑器配备了先进的工具,可以跨不同的操作系统工作。但是,当您只需要查看和…

Docker搭建Plex流媒体服务并播放自己本地视频

Docker搭建Plex流媒体服务 安装Docker创建存储配置文件的目录创建Plex容器配置Plex设置媒体库访问Plex 1 介绍 Plex是一个流媒体服务器,可以轻松地将你的媒体文件库(如电影、电视节目和音乐)通过网络流式传输到各种设备上。 Plex 是一套媒体…

信号量、互斥锁、计数信号量

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。 信号量(semaphores)一个多进程共享的非负整型全局变量。信号量常用于多进程的进程同步。 介绍 …

零基础学python:错误与异常

嗨喽,大家好呀~这里是爱看美女的茜茜呐 语法错误 异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ pyth…

【STM32】GPIO控制LED(寄存器版)

在开始之前记得先准备好环境: STM32F103核心板下载教程.pdf 林何/STM32F103C8 - 码云 - 开源中国 (gitee.com) 一、STM32的GPIO模块数据手册详解 每个GPIO端口对应16个引脚,例GPIOA(PA0~PA15)内核cpu就可以通过APB2总线对寄存器…

电路电子技术3 电位的计算受控源在电路分析中的作用

1.计算电压 思路:注意到这个串联电路,有两个电压源,所以我们首先可以将两个电压源串联等效为一个电压源。 即: 故可得答案选B. 2.计算点位 思路:题目说明了B点开路,所以没有流过电阻R的电流,…