连续分配管理方式

一、单一连续分配方式

这种分配方式下,内存被分成系统区和用户区。内存中只能有一道用户程序,用户程序独占整个用户空间

优点:实现简单,没有外部碎片(因为每次就给一个程序分配空间,当他运行完成,把空间释放,又还是一个完整的没有被分配的空间)。不一定需要内存保护(因为只有一个程序,不存在有其他程序越界访问的情况)

外部碎片:指的是内存剩下一些没有被分配的空间太小,有非常多的小的内存块

缺点:只能用于单用户有内部碎片,存储空间的利用率很低(因为每次就一个程序在里面运行,会导致分配给他的空间有很多一部分他根本就用不上,因此会导致大量的内部碎片)

内部碎片:指的是分配给了某一个程序的空间,有一些空间块用不上,这样分区内部就存在空间浪费的现象

二、固定分区分配

为了能让多个程序运行,并且让他们在运行的时候不会相互干扰,所以把用户空间分成多个固定大小的分区,每一个分区只存入一个作业。

1、分区大小相等(缺乏灵活性,适用于计算机控制很多相同的对象)
2、分区大小不相等

为了记录这些分区的分配状况,操作系统会建立一个分区说明表
在这里插入图片描述

在这里插入图片描述
优点:实现简单,没有外部碎片(总会有一个分区可以放得下,所以不存在有很多很小的没有被分配的外部碎片)

缺点:当用户程序太大的时候,会降低性能,并且会产生内部碎片(如果剩下一个较大的空间而分配给了一个小的进程,就会导致内部碎片)

三、动态分区分配

会根据进程的大小来进行动态的分区分配,不预先划分内存分区,只是在进程装入内存的时候再建立分区

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

1、空闲分区表(只记录空闲区)
在这里插入图片描述

2、空闲分区链
在这里插入图片描述

当有很多分区都能满足需求的时候选择哪块进行分配?

1、first fit
空闲分区是按照地址递增的顺序排列,分配内存的时候顺序查找,找到第一个能满足需求的空闲块就分配

2、best fit
空闲分区按照容量递增的当时,分配内存的时候顺序查找,找到第一个能满足需求的空闲块就分配

3、worst fit
空闲分区按照容量递减的方式,分配内存的时候顺序查找,找到第一个能满足需求的空闲块就分配。每次都会找一个最大的分区进行分配。

4、Next fit
循环首次使用算法,每次分配都会在上一个分配的地方开始往后面找到满足需求的空间块

如何进行分区的分配和回收?

分配:

当使用一定的分配算法以后找到了可以满足需求的内存块时
判断需求大小与分区大小
需求<分区,空闲表空闲数目不变;
需求=分区,空闲表数目减一;

回收:

情况一:回收区后面有一个空闲分区
合并,更改分区大小和起始地址,不会导致空闲分区数量变化
———————————————————————————
情况二:回收区前面有一个空闲分区
合并,更改分区大小和起始地址,不会导致空闲分区数量变化
———————————————————————————
情况三:回收区上下都有空闲分区
合并,更改分区大小和起始地址,会导致空闲分区数量-1
———————————————————————————
情况四:回收区上下都没有空闲分区
更新空闲分配表,空闲区数量+1

1. 连续分配管理方式 工作原理:将内存划分为若干个固定大小的区域,每个进程分配一段连续的内存空间。 逻辑地址构成:由一个基地址和一个偏移量构成。 地址转换机构:通过基地址加上偏移量得到物理地址。 访问内存次数:一次访问。 优点:实现简单,效率高。 缺点:浪费内存空间,无法处理动态变化的内存需求。 地址维数:一维。 2. 分页存储管理方式 工作原理:将物理内存划分为若干个固定大小的页框,将进程分为若干个固定大小的页面,将页面映射到页框上。 逻辑地址构成:由一个页号和一个页内偏移量构成。 地址转换机构:通过页表将逻辑地址转换为物理地址。 访问内存次数:两次访问。 优点:充分利用内存空间,处理动态变化的内存需求。 缺点:页表占用内存空间,页表访问的时间开销较大。 地址维数:二维。 3. 分段存储管理方式 工作原理:将进程分为若干个逻辑段,每个段分配一段不连续的内存空间。 逻辑地址构成:由一个段号和一个段内偏移量构成。 地址转换机构:通过段表将逻辑地址转换为物理地址。 访问内存次数:两次访问。 优点:更好地满足了程序员对内存空间的管理需求。 缺点:浪费内存空间,段表访问的时间开销较大。 地址维数:二维。 4. 段页式存储管理方式 工作原理:将进程分为若干个逻辑段,每个段分配若干个固定大小的页面,将页面映射到页框上。 逻辑地址构成:由一个段号、一个页号和一个页内偏移量构成。 地址转换机构:先通过段表将逻辑地址转换为物理地址的页表基址,再通过页表将逻辑地址转换为物理地址。 访问内存次数:三次访问。 优点:充分利用内存空间,更好地满足了程序员对内存空间的管理需求。 缺点:段表和页表访问的时间开销较大。 地址维数:三维。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值