第十三周 操作系统学习总结

一、动态(可变)分区存储管理

1、定义:动态分区分配又称为可变式分区分配。这种存储管理方法的实现思想是根据作业大小动态地建立分区,并使分区的大小正好适应作业的需要。因此系统中分区的大小是可变的,分区的数目也是可变的。且所谓动态分区是指实现不划定分区的大小,根据进程的大小动态的为之分配内存空间。

2、优势:减少了内部碎片,同时提高系统的利用率。

二、为了实现动态分区存储管理的数据结构

1、空闲分区表:用一个空闲分区表来登记系统中的空闲分区。其表项类似于固定分区。在系统中设置一张空闲分区表,记录每个空闲分区的情况,每个空闲分区占有一个表目,表目中包括分区号、分区大小、分区起始位置等数据。

2、空闲分区链:将内存中的空闲分区以链表方式链接起来,构成空闲分区链。(更加常用)

三、动态分区存储管理 分配策略(四种)

1、首次适应算法(First-Fit):又称最先适应算法,该算法要求空闲分区按地址递增的次序排列。从空闲分区表(或空闲分区链)首开始顺序查找,直到找到第一个能满足其大小要求的空闲分区为止。然后,再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表(或空闲分区链)中。

       优势:优先利用内存低地址端,高地址端有大空闲区。

       劣势:低地址端有许多小空闲分区时会增加查找开销,每次查找都是从地址部分开始,会增加查找的时间。

2、循环首次适应算法(Nest-Fit):又称下次适应算法,是首次适应算法的变形。从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足其大小要求的空闲分区为止。然后,再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍然留在空闲分区表(或空闲分区链)中。

      优势:使空闲块的大小更加均匀地分布在列表中,并减少平均查找时间。

      劣势:会使系统缺乏大的空闲分区。

3、最佳适应算法(Best-Fit):总给内存请求者分配最适合它大小的空闲分区,它的空闲区队列结构是空闲区大小由小到大排序。

      特点:尽可能地利用存储器中小的空闲区,而尽量保存大的空闲区。

      优势:提高内存的利用率

      劣势:剩余的碎片通常太小而无法使用。

4、最坏适应算法(Worst-Fit):与最佳适应算法相反,给任何给定的请求都使用当前可用的最大分区,它的空闲区队列结构是空闲区大小由大到小排序。

     特点:尽可能地利用存储器中大的空闲区。

     优势:剩下的空闲区比较大。

     劣势:当大作业到来时,其存储空间的申请往往得不到满足。

四、分区的回收(空闲区的合并)

有四种情况:第十三周 操作系统学习总结_第1张图片

五、可重定位分区分配(拼接技术、碎片问题)

1、拼接技术:通过移动把多个分散的小分区拼接成一个大分区,也可称为紧缩或紧凑。是解决碎片问题的办法之一。拼接需要的技术是动态重定位技术,空闲区放在何处,拼接时机。

     不足之处:耗费大量处理机时间。

     第十三周 操作系统学习总结_第2张图片

    2、碎片问题:在已分配区之间存在着的一些没有被充分利用的空闲区。

 六、交换与覆盖

1、覆盖技术:覆盖技术就是把一个大程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位。

     覆盖段:把程序执行时不要求同时装入内存的覆盖组成一组,称为覆盖段。

     覆盖区:将一个覆盖段分配到同一个存储区中,这个存储区称为覆盖区。 覆盖区的大小由覆盖段中最大的覆盖来确定。

2、交换技术:交换是指将内存中暂时不用的程序及数据换出到外存中,以腾出足够的内存空间,再将已具备运行条件的进程或进程所需的程序或数据从外存换入内存中。

3、交换技术和覆盖技术的比较:

(1):交换技术由操作系统自动完成,不需要用户参与。

             覆盖技术需要专业的程序员给出作业各部分之间的覆盖结构,并清楚系统的存储结构。

 (2):交换技术主要在不同作业之间进行。

              覆盖技术主要在同一个作业内进行。

(3):覆盖技术主要在早期的操作系统中采用。            

             交换技术在现代操作系统中仍具有较强的生命力。

你可能感兴趣的:(第十三周 操作系统学习总结)