操作系统(三十五)连续分配管理方式
3.4 连续分配管理方式
连续分配管理是指为用户进程分配的内存空间是连续的一片空间
目录
3.4 连续分配管理方式
3.4.1 单一连续分配
3.4.2 固定分区分配
3.4.3 动态分区分配
3.4.4 小结
3.4.1 单一连续分配
在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据;用户区用于存放用户进程相关数据。并且内存中只能有一道用户程序,用户程序独占整个用户区空间。
这种存储方式的优点:实现简单,没有外部碎片;缺点:只能为单用户单任务服务,会存在内部碎片,空间利用率极低。
这里我们来引入两个概念:内存中的外部碎片以及内部碎片。外部碎片:在内存中还没有分配出去但是由于太小而无法分配给其他进程使用的内存空间;内部碎片:已经分配给明确进程的存储区域,但由于一些原因未使用的部分。
3.4.2 固定分区分配
在出现多道批处理系统之后,为了可以让内存中装入多道程序而引入了固定分区分配方式,固定分区分配方式将内存划分成若干个大小固定的分区,不同分区之间互不干扰,根据划分的依据不同又可以将固定分区分配分为分区大小相等以及分区大小不等的分配方式。
在进行固定分区分配的时候操作系统会产生一个分区说明表,来实现各个分区的分配与回收。每个表项对应一个分区,通常按分区大小排列。每个表项包括对应分区的大小、起始地址、状态(是否已分配)。这种方法实现简单且无外部碎片,但是当用户程序过大时所有划分的分区均不满足,只能采用覆盖技术实现内存的使用,资源利用率不高,会产生内部碎片。
3.4.3 动态分区分配
动态分区分配又称为可变分区分配。这种分配方式不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统分区的大小和数目是可变的。
对于动态分配方式,我们会采用空闲分配表或者空闲分配链等方式来记录内存的使用情况。
空闲分配表:每个空闲分区对应一个表项。表项中包含分区号、分区大小、分区起始地址等信息。
空闲分配链:每个分区的起始部分和末尾部分分别设置前向指针和后向指针。起始部分处还可记录分区大小等信息
如何对动态分配方式的内存进行分配和回收呢?动态分区进行分配可能会用到一些算法,下节介绍。动态分区分配方式的回收可以分为以下四种情况:回收区的后面有一个相邻的空闲分区,那么将两个相邻空闲分区合并为一个;回收区的前面有一个相邻的空闲分区,那么两个相邻的空闲分区合并为一个;回收区的前、后各有一个相邻的空闲分区,三个相邻的空闲分区合并为一个;回收区的前、后都没有相邻的空闲分区,那么就在空闲分配表中多加一个表项。总之,相邻的空闲分区需要合并。
动态分区分配没有内部碎片但是会存在外部碎片,对于外部碎片可以通过“紧凑”技术来解决。
3.4.4 小结
操作系统(三十五)连续分配管理方式相关推荐
- 11 操作系统第三章 内存管理 内存的基本知识 内存管理 内存空间扩充 连续分配管理方式
文章目录 1 内存概念 1.1 内存作用 1.2 逻辑地址VS物理地址 1.3 装入的三种方式 1.3.1 绝对装入 1.3.2 可重定位装入 1.3.3 动态重定位装入 1.4 链接的三种方式 1. ...
- (王道408考研操作系统)第三章内存管理-第一节6-1:非连续分配管理方式之基本分页存储管理
文章目录 一:分页存储管理基本思想 二:分页存储管理基本概念 (1)页框和页 (2)页框和页关系 (3)分页的优点 三:分页存储管理实现地址转换 (1)借鉴连续分配管理方式中的动态重定位 (2)分页管 ...
- 二十七、连续分配管理方式
一.知识总览 注意:连续分配是指为用户进程分配的必须是一个连续的内存空间,而非连续分配管理方式可以是离散的内存空间. 二.单一连续分配 二.固定分区分配 **分区大小相等:**缺乏灵活性,但是很适用于 ...
- 连续分配管理方式的动态分区分配算法(首次适应、最佳适应、最坏适应、邻接适应算法)
一.动态分区分配算法(连续分配管理方式) 动态分区分配算法:在动态分区分配方式中, 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配? (一)首次适应算法 算法思想:每次都从低地址开始查找,找 ...
- 内存管理之非连续分配管理方式的详细解释
如果帮到你的话,请点个赞,创作不易,谢谢 非连续分配方式允许将一个程序分散地装入不连续的内存空间.在连续分配管理方式中,即使内存有超过2GB的存储空间,但是没有连续的2GB内存空间,则需要2GB内存空 ...
- 3.1_ 4连续分配管理方式
3.1_ 4连续分配管理方式 文章目录 3.1_ 4连续分配管理方式 知识总览 单一连续分配 固定分区分配 动态分区分配 知识总览 单一连续分配 固定分区分配 动态分区分配
- LINUX学习基础篇(三十五)日志管理
LINUX学习基础篇(三十五)日志管理 日志管理 系统中常见的日志文件 日志文件格式 rsyslogd服务的配置文件 日志轮替 logrotate配置文件 配置文件夹 /etc/logrotate.d ...
- 12 操作系统第三章 内存管理 非连续分配管理方式 基本分页存储管理 基本分段存储管理 段页式存储管理
文章目录 1 基本分页存储管理 1.1 什么是分页存储 1.2 重要的数据结构--页表 1.3 基本地址变换机构 1.4 具有快表的地址变换机构 1.4.1 什么是快表(TLB) 1.4.2 引入快表 ...
- (王道408考研操作系统)第三章内存管理-第一节8:非连续分配管理方式之段页式管理方式
文章目录 一:分段和分页管理优缺点 二:段页式管理基本概念 (1)基本思想 (2)逻辑地址结构 (3)段表和页表 三:段页式管理实现地址管理 一:分段和分页管理优缺点 经过前面几节的叙述,可以看到分段 ...
最新文章
- 小米手机无法连接eclipse调试案例
- JAVA各种并发锁从synchronized 到CAS 到 AQS
- EventBus设计之禅
- python做出来的东西_【python小白】 做了一个爬虫,但是爬出来的东西无法存储...
- js处理url中的请求参数(编码/解码)
- java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...
- 开发人员学Linux(2):VirtualBox中安装CentOS7系统设置
- 僧多粥少?还原 OpenStack 的真实“钱景”
- GIMP中的新建Layer与更改Layer大小
- C#高级语法之泛型、泛型约束,类型安全、逆变和协变(思想原理)
- HDnoip2017题解
- 数据库系统实训——实验六——游标
- 单例设计模式八种写法
- leetcode python3 简单题168. Excel Sheet Column Title
- Linux Shell变量
- 编写函数计算正方体体积
- Java 邮政EMS快递面打印实现 笔记
- 如何使用Python查找文本文件的Zipf分布
- 矩阵的Cholesky 分解
- python通过opc读plc实例_python调用openopc读写plc