连续分配管理方式

连续分配管理方式

连续分配管理方式属于内存空间的分配和回收的内容
连续分配:指为用户进程分配的必须是一个连续的内存空间.
1.单一连续分配
(1)只支持单道程序,内存分为系统区和用户区,用户程序放在用户区
(2)无外部碎片,有内部碎片

在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据;用户区用于存放用户进程的相关数据。内存只能有一道用户程序,用户程序独占整个用户区空间。

优点:实现简单;无外部碎片;可以采用覆盖技术扩充内存;不一定需要采取内存保护。(早期的PC操作系统MS-DOS )
缺点:只能用于单用户,单任务的操作系统中,有内部碎片;存储器利用率极低。

2.固定分区分配
(1)支持多道程序,内存用户空间分为若干个固定大小的分区,每个分区只能装一道作业
(2)无外部碎片,有内部碎片
(3)两种分区方式:
1.分区大小相等:缺乏灵活性,适合用一台计算机控制多个相同对象的场合
2.分区大小不等:增加了灵活性,可以满足不同大小的进程需求,根据常在系统中运行的作业大小情况进行划分。

操作系统需要建立一个数据结构–分区说明表,来实现各个分区的分配与回收。每个表项对应一个分区,通常按分区大小排列。每个表项包括对应分区的大小、起始地址、状态。
用数据结构的数组或链表即可表示这个表.
在这里插入图片描述
当某用户程序要装入内存时,由操作系统内核程序根据用户程序大小检索该表,从中找到一个能满足大小的、未分配的分区,将之分配给该程序,然后修复状态。

优点:实现简单,无外部碎片。
缺点:a.当用户程序太大时,可能所有的分区都不能满足需求,此时不得不采用覆盖技术来解决,但这又会降低性能;b.会产生内部碎片,内存利用率低

3.动态分区分配
(1)支持多道程序,在进程装入内存时,根据进程的大小动态的建立分区
(2)无内部碎片,有外部碎片
(3)外部碎片可用“紧凑”技术来解决
(4)回收内存分区时,可能遇到四种情况
1.回收区之后有相邻的空闲分区
2.会收区之前有相邻的空闲分区
3.回收区前后有相邻的空闲分区
4.回收区前后没有相邻的空闲分区

动态分区分配,又称可变分区分配。这种分配方式不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统分区的大小和数目是可变的。

灵魂三问:

1.系统要用什么样的数据结构记录内存的使用情况?
在这里插入图片描述
有两种常用的数据结构:
1.空闲分区表
每一个空闲分区对应一个表项。表项中包含分区号、分区大小、分区起始地址等信息。
2.空闲分区链
每个分区的起始部分和末尾部分分别设置前向指针和后向指针。起始部分处还可记录分区的大小等信息。

2.当很多空闲分区都能满足需求时,应该选择哪个分区进行分配?
把一个新作业装入内存时,需要按照一定的动态分区分配算法,从空闲分区表(或空闲分区链)中选出一个分区分配给该作业。由于分配算法对系统性能有很大影响,因此对其有很多的研究.
具体细节在后面会进行详细讲解。

3.如何进行分区的分配和回收操作?
回收后进行空闲区的合并

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值