连续分配管理方式-第四十三天

news2024/11/28 16:38:19

目录

前言

单一连续分配

固定分区分配

分区大小相等

分区大小不等

分区说明表

动态分区分配

问题

用什么样的数据结构记录内存的使用情况

应该选择哪个分区进行分配

分区的分配与回收操作

分配

回收

结论

本节思维导图


前言

连续分配指为用户进程分配的必须是一个连续的内存空间

单一连续分配

基本概念:在单一连续分配方式中,内存被分为系统区(通常位于内存的低地址部分,用于存放操作者系统的相关数据)和用户区(用于存放用户进程相关数据)

注意事项:内存中只能有一道用户数据(不支持并发),用户程序独占整个用户区空间

优点:

  1. 实现简单
  2. 无外部碎片
  3. 可以采用覆盖技术扩充内存
  4. 不一定需要采用内存保护

缺点:

  1. 只能用于单用户、单任务的操作系统中
  2. 有内部碎片
  3. 存储器利用率低

固定分区分配

历史背景:20世纪60年代出现了支持多道程序的系统,为了能在内存中装入多道程序,且这些程序之间又不会相互干扰,于是将整个用户空间划分为若干个固定大小的分区,在每个分区中只装入一道作业,这样就形成了最早的、最简单的一种可运行多道程序的内存管理方式

分区大小相等

优点:很适合于用一台计算机控制多个相同对象的场合(所需内存大小相同)

缺点:缺乏灵活性

分区大小不等

优点:增加灵活性,可以满足不同大小的进程需求,根据常在系统中运行的作业大小情况进行划分(可以划分为小分区、适量中等分区、少量大分区)

缺点:缺乏灵活性,内存碎片

分区说明表

目标:实现各个分区的分配与回收

基本概念:每个表项对应一个分区,通常按照分区大小排列,每个表项对应分区的大小、起始地址、状态(是否已分配)

当用户程序要装入内存时,由操作系统内核程序根据用户程序大小检索该表,从中找到一个能满足大小的、系统分配的分区,将之分配给该程序,然后修改状态为”已分配“

优点:

  1. 实现简单
  2. 无外部碎片(10MB放进12MB大小的空间中,只占用了该空间,其它空间都不占用)

缺点:

  1. 当用户程序太大时,可能所有分区都不能满足需求,此时不得不采用覆盖技术来解决,但这又会降低性能
  2. 会产生内部碎片(10MB放进12MB大小的空间中,该空间中多余的2MB内存空余)
  3. 内存利用率低

动态分区分配

基本概念: 不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使用分区地大小正好适合进程地需要,因此系统分区的大小和数目是可变的

问题

  1. 系统要用什么样的数据结构记录内存的使用情况
  2. 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配
  3. 如何进行分区的分配与回收操作

用什么样的数据结构记录内存的使用情况

空闲分区表:每个空闲分区对应一个表项。表项中包含分区号、分区大小、分区起始地址等信息

空闲分区链:每个分区的起始部分和末尾部分分别设置前驱指针和后继指针。起始部分处还可记录分区大小等信息

应该选择哪个分区进行分配

分区的分配与回收操作

分配

1、空闲分区表中某一块分区的分区大小大于进程需要的空间大小:

只需通过算法将某块分区中的部  分空间划分给该进程即可,然后在分区表中更新该分区大小以及起始地址

2、空闲分区表中某一块分区的分区大小等于进程需要的空间大小:

将分配出去的某块空间从分区表中删除即可

回收

1、回收区后面有一个相邻的空闲分区:

将两个相邻的空闲分区合并为一个新的空闲分区,并更新分区表的分区大小和起始地址

2、会收区的前面有一个相邻的空闲分区: 

 将两个相邻的空闲分区合并为一个新的空闲分区,并更新分区表的分区大小和起始地址

3、回收区的前、后各有一个相邻的空闲分区:

将三个相邻的空闲分区合并为一个新的空闲分区,并更新分区表的分区大小和起始地址

4、回收区的前、后都没有相邻的空闲分区:

新增一个表项(各表项的顺序不一定按照地址·1递增顺序排列。具体的排列方式需要依据动态分区算法来确定)

结论

  1. 动态分区分配没有内部碎片,但是有外部碎片
  2. 内部碎片:分配给某进程的内存区域中,如果有些部分没用用上
  3. 外部碎片:指内存中的某些空闲分区由于太小而难以利用

本节思维导图

~over~

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

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

相关文章

大数据计算基础真题回忆

转载学长20 21的真题 转载链接 注:每年的课件可能会有更改,内容不一样,所以读者复习的时候以所在年份的课件为准 2020 ​ 2021 笔者2023秋 2023 都是大题,没有选择题。 改进的近似算法中,结合具体的例子说明&am…

《3D数学基础-图形和游戏开发》阅读笔记 | 3D数学基础 (学习中 1.4更新)

文章目录 3D数学基础矢量/向量概述 - 什么是向量单位矢量:只关注方向不关注大小 数学运算矢量的加法与减法减法的几何意义计算一个点到另一个点的位移矢量的点积与叉积 矩阵方阵几何意义 - 表示空间坐标的变换 3D数学基础 矢量/向量 在笔记中 变量使用小写字母表…

Python 标准库中的 csv 包

0. Abstract 官方文档很罗嗦,长篇大论例子少。本文将举例说明 csv 包的用法,然后补充一些必要的说明。 1.0 CSV 文件 CSV(Comma-Separated Values,逗号分隔值)文件是一种常见的以纯文本形式存储数据的文件格式。它使用逗号作为字段之间的分隔符&#…

UG装配-引用集

引用集是控制组件的图素在装配体中显示与隐藏 装配体体环境控制组件显示与隐藏的四种方式 1、图层 2、引用集 3、隐藏命令 Ctrl B 4、抑制,取消此组件装配,但保留操作在导航器方便启用 引用集有两种类型 1、UG自动创建的引用集 2、用户定义的引…

ElasticSearch使用Grafana监控服务状态-Docker版

文章目录 版本信息构建docker-compose.yml参数说明 创建Prometheus配置文件启动验证配置Grafana导入监控模板模板说明 参考资料 版本信息 ElasticSearch:7.14.2 elasticsearch_exporter:1.7.0(latest) 下载地址:http…

部署清华ChatGLM-6B(Linux版)

引言 前段时间,清华公布了中英双语对话模型 ChatGLM-6B,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。因为条件特殊,实验室网络不通,那么如何进行离线部署呢? 「部署环境」:CUDA Version 11.0,…

中国移动联合玻色量子打造“人人可用的量子计算”——恒山光量子算力平台公测上线

​2023年12月1日,中国移动云能力中心(简称“移动云”)联合北京玻色量子科技有限公司(简称“玻色量子”)共同打造的“五岳量子计算云平台——恒山光量子算力平台”在苏州正式发布。这是玻色量子继2023年5月16日成功发布…

医院信息系统集成平台—统一身份认证授权平台

统一的数字身份管理包括统一身份管理与授权管理。身份管理和授权管理是访问控制的前提,身份管理对用户的身份进行标识与鉴别;授权管理对用户访问资源的权限进行标识与管理。统一身份管理与授权管理系统作为安全管理中心的一部分,部署于安全管理区域。 医院集成信息平台在医…

大数据应用安全策略包括什么

大数据应用安全策略是为了保障大数据应用中的数据安全而采取的一系列措施,其重要性不容小觑。以下是大数据应用安全策略所包含的主要内容: 一、数据加密与安全存储 数据加密:对于敏感数据,应采用加密技术进行保护,包括…

关于酒的几点思考

你说什么情况下,会让两个大男人手牵着手走路?甚至十指相扣。 不言而明,那肯定是“喝大了”之后。当酒精麻痹了人的神经之后,会让人忘却一切烦恼,让人回归“本真”。当血液中乙醇浓度在0.05-0.1%时,人开始朦…

Android 文字垂直排列,文字向右旋转90度

public class VerticalTextView extends View {private final int ROTATION_ANGLE 90; // 旋转角度,用于将文本垂直排列private String text; // 要显示的文本private TextPaint textPaint; // 用于绘制文本的画笔private Rect textBounds;// 文本边界float x, y;/…

解析为什么Go语言要使用[]rune而不是string来表示中文字符

众所周知,Go语言中有以下这些数据类型。但rune32这个go语言特有的数据类型,比较有意思却经常遭到忽视。所以今天探索学习一下这个数据类型的功能、用法。 Go基本数据类型 布尔:bool 字符串:string 整数: int int8 …

实现vue加载指令 v-loading

文章目录 为什么使用指令实现 loading具体实现封装准备实现 loading 效果loading 显示与隐藏使用修饰符扩展 完整代码与结语 本文不会详细的说明 vue 中指令这些知识点,如果存在疑问,请自行查阅文档或者其他资料 为什么使用指令实现 loading 在日常的开…

(Linux)虚拟机配置固定IP

Linux操作系统的IP地址是通过DHCP服务获取的,也就是动态获取IP地址,每次重启设备后都会获取一次,会导致IP地址频繁变更,为了不频繁更新映射关系,我们需要IP地址固定下来。 1.在VM中配置IP地址网关和网段 打开虚拟网络…

Prometheus-AlertManager 邮件告警

环境,软件准备 本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,以下是安装的软件及版本: System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 docker 安装prometheus,alertmanage,说明一下这里直接将…

2024-01-04 用llama.cpp部署本地llama2-7b大模型

点击 <C 语言编程核心突破> 快速C语言入门 用llama.cpp部署本地llama2-7b大模型 前言一、下载llama.cpp以及llama2-7B模型文件二、具体调用总结 使用协议: License to use Creative Commons Zero - CC0 该图片个人及商用免费&#xff0c;无需显示归属&#xff0c;但如果…

Proxy 与 defineProperty 的理解、区别、优势、劣势

一、Object.defineProperty() 文档&#xff1a;Object.defineProperty() - JavaScript | MDN 作用&#xff1a;对一个对象进行操作的方法。可以为一个对象增加一个属性&#xff0c;同时也可以对一个属性进行修改和删除。 它是在 ES5 中引入的&#xff0c;使用了 getter 和 s…

windows机器上安装mysql

0、mysql下载地址 1、参考文章 2、把Data数据目录迁移到其他盘 2.0 首先停止mysql&#xff08;任务管理器-详细信息-随便找个进程右击进入转入服务&#xff0c;找到MySQL服务&#xff0c;点击停止&#xff09; 2.1 windows的 mysql默认的data目录在C:\ProgramData\MySQL\MySQ…

【编译原理】期末预习PPT前四章笔记II

看了看学校的ppt&#xff0c;记的比较随意O.o 因为我的考试范围里边没有简答所以概念什么的没怎么记 没有简答只有选择真是太好了嘿嘿嘿 目录 I. 概述&#xff08;好多字。。&#xff09; 一、高级语言的分类 1、体裁 2、执行方式 二、各种语言的执行方式 三、编译程序…

52、全连接 - 特征与样本空间的对应关系

上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…