您现在的位置:学赛首页 > 研究生院 > 软件学院 > 正文
操作系统第七章-存储器管理[3]
http://www.educity.cn 作者:ndeoin 来源:学赛网 2008年4月28日 发表评论 进入社区

  例--采用首次适应算法分配2

  申请20K,

  选中1号分区,分配后剩下12K;

  例--采用首次适应算法分配3

  申请200K,

  现有的五个分区都无法满足要求,该作业等待。显然采用首次适应算法进行内存分配,无法满足该作业序列的需求。

  分区分配

  以首次适应算法及空闲链表为例,申请分区大小为x, e是规定的不再分割的剩余区大小。

  分区回收

  回收分区时,应将空闲区插入适当位置,此时有以下四种:

  回收分区r上邻接一个空闲分区

  回收分区r下邻接一个空闲分区

  回收分区r上、下邻接空闲分区

  回收分区r不与任何空闲分区相邻

  回收分区r上邻接一个空闲分区

  此时应将回收区r与上邻接分区F1合并成一个连续的空闲区。合并分区的首地址为空闲区F1的首地址,其大小为二者之和。

  回收分区r下邻接一个空闲分区

  此时应将回收区r与下邻接分区F2合并成一个连续的空闲区。合并分区的首地址为回收分区r的首地址,其大小为二者之和。

  回收分区r上下邻接空闲分区

  此时应将回收区r与上、下邻接分区合并成一个连续的空闲区。合并分区的首地址为与r上邻接空闲区F1的首地址,其大小为三者之和,且应将与r下邻接的空闲区F2从空闲分区表(或空闲分区链)中删去。

  回收分区r不与任何空闲分区相邻

  这时应为回收区单独建立一个新表项,填写分区大小及起始地址等信息,并将其加入到空闲分区表(或空闲分区链)中的适当位置。

  内存保护

  存储保护是防止一个作业有意或无意破坏操作系统或其他作业。

  常用的存储保护方法有:

  上下界寄存器

  基址限长寄存器

  除上述保护方案外,还有四种存取权限:

  禁止做任何操作

  只能执行

  只能读

  读/写

  上下界寄存器方法

  上下界寄存器方法:

  用上、下界寄存器分别存放作业存储空间的结束地址和开始地址。

  在作业运行过程中,将每一个访问内存的地址都同这两个寄存器的内容进行比较,若超出了上下界寄存器的范围则产生越界中断。

  基址限长寄存器方法

  基址、限长寄存器方法:

  用基址和限长寄存器分别存放作业存储空间的起始地址及作业长度。

  当作业执行时,将每一个访问内存的相对地址和这个限长寄存器比较,若逻辑地址超过限长则产生越界中断。

  3. 碎片问题及拼接技术

  分区存储管理中,必须把作业装入到一片连续的内存空间中。这种分配方法能满足多道程序设计的需要,但存在碎片问题。

  碎片也可称为零头,是指内存中无法被利用的存储空间。

  碎片分为内部碎片和外部碎片。内部碎片是指分配给作业的存储空间中未被利用的部分,外部碎片是指系统中无法利用的小存储块。

  解决碎片问题的办法

  拼接:解决碎片问题的办法之一,即通过移动把多个分散的小分区拼接成一个大分区,也可称为紧缩或紧凑。

  拼接的不足是要耗费大量处理机时间。

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]