操作系统内存存储管理

操作系统内存存储管理

固定分区存储管理

又称定长分区或静态分区模式,是满足多道程序设计需要的最简单的存储管理技术。

静态分区存储管理是预先把可分配的主存储器空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同。为了说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”。主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被占用。进行作业分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。

基本思想:给进入主存的用户作业划分一块连续存储区域,把作业装入该连续存储区域,若有多个作业装入主存,则它们可并发执行。

如表可能是一个区域大小不完全相同的固定分区的主存分配表:

分区号 起始地址 长度 占用标志
1 8K 8K 0
2 16K 16K Job1
3 32K 16K 0
4 48K 64K 0
5 64K 32K Job2
6 96K 32K 0

图6-4 固定分区存储管理的主存分配表

对于使用大小相等的固定分区有两个难点:程序可能太大而不能放到一个分区中,内存的,利用率很低。由于被装入的数据块小于分区大小,从而导致分区内部有浪费现象,成为“内部碎片”。对与大小不等的分区策略,最简单的方法就是把每个进程分配到能够容纳它的最小分区中。

目前已经基本上没有什么场合使用固定分区。

优势:实现简单,只需要极少的操作系统开销
缺点:有内部碎片,对内存的使用不充分,活动进程的最大数目是固定的。

动态分区存储管理

可变分区方式是按作业的大小来划分分区。当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间,若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间。由于分区的大小是按作业的实际需要量来定的,且分区的个数也是随机的,所以可以克服固定分区方式中的主存空间的浪费。

随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。当一个新的作业要求装入时,必须找一个足够大的空闲区,把作业装入该区,如果找到的空闲区大于作业需要量,则作业装入后又把原来的空闲区分成两部分,一部分给作业占用了;另一部分又分成为一个较小的空闲区。当一作主行结束撤离时,它归还的区域如果与其它空闲区相邻,则可合成一个较大的空闲区,以利大作业的装入。

一 对于主存空间的分配和回收:

系统初启时,整个用户区可看作一个大的空闲区。当作业要求装入时,根据作业对内存需求量,从空闲区中划出一个与作业大小一致的分区来装入该作业,剩余部分仍为空闲区。当空闲区能满足需求时(即空闲区长度>=作业长度),作业可装入;否则,作业暂时不能装入,需要等待主存资源。下图是可变分区存储空间分配示意。

可变分区存储空间分配示意

装入内存的作业执行结束后,所占分区被收回成为一个空闲区,这个空闲区又可用于装入其他作业。随着作业不断装入和撤离,内存空间被分成许多分区,有的被作业占用,有的空闲。如下图所示。可见内存中空闲区数目和大小是在不断变化的。

可见内存中空闲区数目和大小

实际上,系统内设置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值