连续分配管理方式
标签: 操作系统
学习人数: 6682

为了能将用户程序装入内存,必须为它分配一定大小的内存空间。连续分配方式指为一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。主要包括单一连续分配、固定分区分配、动态分区分配以及动态可重定位分区分配算法。

 

1. 单一连续分配

在单道程序环境下,当时的存储器管理方式是把内存分为系统区和用户区两部分, 系统区仅提供给操作系统使用,它通常是放在内存的低址部分。 用户区内存中,仅装有一道用户程序,即整个内存的用户空间由该程序独占。这样的存储器分配方式被称为单一连续分配方式。

特点:优点是管理简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持,便于用户了解和使用,不存在其他用户干扰。缺点是只能用于单用户、单任务的操作系统,有内部碎片,存储器的利用率极低。

 

2. 固定分区分配

最简单的一种可运行多道程序的存储管理方式。将内存用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,把用户空间划分为几个分区,便允许有几道作业并发运行。

(1)划分分区的方法:内存的用户空间划分为若干个固定大小的分区:

(2)内存分配

通常将分区按其大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配)。当有用户程序要装入时,便检索该表,以找到合适的分区给予分配并将其状态置为“已分配”;未找到合适分区时,则拒绝为该用户程序分配内存。

缺点是程序可能太大而放不进任何一个分区中,这时用户不得不使用覆盖技术来使用内存空间;主存利用率低,当程序小于固定分区大小时,也占用一个完整的内存分区空间,这样分区内部就存在空间浪费,这种现象称为内部碎片。固定分区是可用于多道程序设计的最简单的存储分配,无外部碎片,但不能实现多进程共享一个主存区,所以存储空间利用率低。固定分区分配很少用于现在通用的操作系统中,但在某些用于控制多个相同对象的控制系统中仍发挥着一定的作用。

 

3.动态分区匹配

动态分区分配又称可变式分区分配,是根据进程的实际需要,动态地为之分配内存空间。在实现可变分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法分区的分配与回收操作。

(1)动态分区分配中的数据结构

(2)分区分配算法

为把一个新作业装入内存,须按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。由于内存分配算法对系统性能有很大的影响,故人们对它进行了较为广泛而深入的研究,于是产生了许多动态分区分配算法。目前常用的分配算法有以下4种:

优点:优先利用内存低地址部分的空闲分区,从而保留了高地址部分的大的空闲分区,无内部碎片。

缺点:由于低地址部分不断被划分,致使低地址端留下许多难以利用的很小的空闲分区(外部碎片),而每次查找又都是从低地址部分开始,这无疑增加了查找可用空闲分区的开销。

优点:这样使得空闲分区的分布更加均匀,减少了查找空闲分区的开销。

缺点:导致缺乏大的空闲分区。

优点:这种方法总能分配给作业最恰当的分区,并保留大的分区。

缺点:导致产生很多难以利用的碎片空间。

优点:这样使分给作业后剩下的空闲分区比较大,足以装入其他作业。

缺点:由于最大的空闲分区总是因首先分配而被划分,当有大作业到来时,其存储空间的申请会得不到满足。

(3)动态可重定位分区分配

连续分配方式的一个重要特点是,一个系统或用户程序必须被装入一片连续的内存空间中。当一台计算机运行了一段时间后,它的内存空间将会被分割成许多小的分区,而缺乏大的空闲空间。这种不能被利用的小分区称为“零头”或“碎片”。

所谓碎片,是指内存中无法被利用的存储空间。在分区存储管理方式下,系统运行一段时间后,内存中的碎片会占据相当数量的空间。解决碎片问题的方法之一是将存储器中所有已分配分区移动到主存的一端,使本来分散的多个小空闲区连成一个大的空闲区。这种通过移动把多个分散的小分区拼接成一个大分区的方法称为拼接或紧凑。

(4)动态分区分配的优缺点

优点:①实现了多道程序共用主存;②管理方案相对简单、不需要更多开销;③实现存储保护的手段比较简单。

缺点:①主存利用不够充分,存在外部碎片;②无法实现多进程共享存储器信息;③无法实现主存的扩充,进程地址空间受实际存储空间的限制。



课后作业


登录后发布评论

暂无评论,来抢沙发