操作系统之页面分配策略(驻留集、工作集、置换策略、抖动)

2023-11-05 19:51

本文主要是介绍操作系统之页面分配策略(驻留集、工作集、置换策略、抖动),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:https://www.bilibili.com/video/BV1YE411D7nH

在这里插入图片描述

驻留集

概念:请求分页存储管理中给进程分配的内存块的集合(由于采用了虚拟存储技术,驻留集的大小一般小于进程的大小)。若驻留集太小,会导致频繁缺页;太大,则会导致多道程序并发度降低,资源利用率下降。


要知道固定分配局部置换、可变分配全部置换、可变分配局部置换的意思,首先需要知道以下几个概念:

1、 固定分配:操作系统为每个进程分配一组固定数目大小的物理块。在程序运行过程中,不允许改变!即驻留集大小固定不变。

2、可变分配:先为每个进程分配一定大小的物理块,在程序运行过程中,可以动态改变物理块的大小。即,驻留集大小可变

3、局部置换:进程发生缺页时,只能选择当前进程中的物理块进行置换

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

固定分配局部置换

概念:系统为每个进程分配一定数量的内存块(物理块),在整个运行期都不改变。若进程在运行过程中发生了缺页,则只能在本进程的内存页面中选出一个进行换出,然后再调用需要的页面。

缺点:很难确定一个进程到底应该分配多大的实际内存才合理

可变分配全局置换

概念:系统为每个进程分配一定数量的内存块(物理块)。操作系统还会保持一个空闲物理块的队列。若某进程发生缺页,可以从空闲物理块中取出一块分配给该进程。如果空闲物理块没有了,那么会选择一个未锁定(不是那么重要)的页面换出到外存,再将物理块分配给缺页的进程。

缺点:在空闲物理块没有的情况下,如果将其他进程的页面调出到外存,那么这个进程就会拥有较小的驻留集,如此会导致该进程的缺页率上升

可变分配局部置换

概念:刚开始会为每个进程分配一定数量的物理块。当进程发生缺页时,只允许当前进程的物理块中选出一个换出外存。如果当前进程在运行的时候频繁缺页,系统会为该进程动态增加一些物理块,直到该进程缺页率趋于适中程度;如果说一个进程在运行过程中缺页率很低或者不缺页,则可以适当减少该进程分配的物理块。通过这些操作可以保持多道程序的并发度较高。

可变分配全局置换和可变分配局部置换的区别

可变分配全局置换:只要发生缺页,就会分配新的物理块

可变分配局部置换:根据缺页率动态增加或者减少物理块的数量

页面调入的时机

  1. 预调页策略:基于局部性原理,一次调入若干个相邻页面可能比一次调入一个页面更高效。

    缺点:如果调入的若干页面是不会被马上访问的,那么这样效率又会很低。

  2. 请求调页策略:只有在进程处于运行期,且发生缺页的时候才被调入内存。

    缺点:缺页时每次只会调入一页,每次从外存到内存的调入都会进行I/O操作,因此I/O开销较大。

从何处调入页面

​ 外存(磁盘)一般分为对换区文件区,对换区的读写速度较快,且采用连续分配方式;文件区读写速度较慢,采用离散分配方式

​ 1、在系统拥有足够大的对换区空间时,页面的调入、调出都在内存对换区中进行。注:在进程运行前,需要将进程相关的数据从文件区复制到对换区。

​ 2、当对换区空间不够大时:凡是不会在运行过程中不会被修改的数据就直接从文件区调入(不会被修改,那么到时候就不会再次被写入到磁盘);对于可能会被修改的数据,交换时需要写回对换区,下次从对换区调入。

​ 3、UNIX系统采用的方式:进程有关的数据都存放在文件区。未使用过的页面都会从文件区调入。被使用的页面在进行置换时放到对换区,下次使用时从对换区调入。

页面抖动(颠簸现象)

概念刚刚换出到外存的页面马上要换入内存,刚刚换入的页面马上要调入到外存

产生原因:系统为进程分配的物理块大小不足

导致的问题:系统会花大量时间进行换入、换出操作,而真正用于进程实际运行的时间大大减少

为了解决抖动问题,提出了==工作集==的概念

工作集:在某段时间间隔内,进程实际访问页面的集合(区别于驻留集,驻留集是指请求分页管理存储中给进程分配的物理块大小)

操作系统会根据"窗口尺寸"来算出工作集。如:某进程的页面访问序列是:24,15,18,23,24,12,17,18,14,18,17,若窗口尺寸为3,那么对于18来说,其工作集就是24 15 18,对于12来说,其工作集就是23 24 12。

工作集的大小可能会小于窗口尺寸。比如对于15来说,其工作集大小为24 15。实际应用中,操作系统会统计某个进程的工作集大小根据工作集大小为进程分配物理块。一般来说驻留集的大小不能小于工作集大小,否则会导致频繁缺页

这篇关于操作系统之页面分配策略(驻留集、工作集、置换策略、抖动)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352126

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=