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

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

相关文章

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如