连续分配方式

单一连续分配
■基本思想:
●内存划分为:系统区和用户区
●只能用于单用户、单任务的操作系统中
■特点:
●方法简单,易于实现
●单道程序:内存和CPU利用率低,难于实现共享
固定分区分配
■基本思想:
●把内存用户空间划分为若干个固定大小的分区;每个分区中只装入一道作业。
■划分分区的方法:
●分区大小相等
●分区大小不等
■具体实现:
将分区按大小排队
●建立分区使用表
表项包括:①分区号、②分区起始地址、③分区大小、④分区状态
●当程序装入时,由内存分配程序检索分区使用表
●若找到符合要求的分区,则完成内存分配,并进行标记;若未找到,则拒绝内存分配。
在这里插入图片描述
动态分区分配
■基本思想:
●作业装入时,根据实际需要和内存空间的使用情况进行动态分配。
■ 特点:分区个数、分区大小不固定。
1.分区分配中的数据结构:
●空闲分区表、已分配分区表
●空闲分区链
在这里插入图片描述
在这里插入图片描述
2.分区分配算法:
(1) 首次适应算法
算法思想:空闲分区表或空闲分区链按照分区起址递增的次序排序。顺序查找,若找到第一个大小满足要求的空闲分区,则从中划出一块
内存空间分配给作业;若未能找到,则此次内存分配失败。
例:J5进入,大小10K,如何分配
在这里插入图片描述
例:J6进入,大小8K
在这里插入图片描述
(2) 循环首次适应算法
算法思想:从上次分配的空闲区位置之后开始查找。若找到一个满足要求的空闲分区,则从中划出-块内存空间分配给作业。若最后一个
空闲分区大小仍不能满足要求,则返回到第一空闲分区继续查找。
例:J5进入,大小10K
在这里插入图片描述
例:J6进入,大小8K
在这里插入图片描述
(3) 最佳适应算法
算法思想:从满足要求的、最小的空闲分区中划出一块空间分配给作业。要求空闲分区表或空闲分区链按照分区容量递增的次序排序,顺
序查找第一个满足要求的空闲分区。
例:J5进入,大小为10K
在这里插入图片描述
例:J6进入,大小为8K
在这里插入图片描述
(4) 最坏适应算法
算法思想:从满足要求的、最大的空闲分区中划出一块空间分配给作业。要求空闲分区表或空闲分区链按照分区容量递减的次序排序。
优点:查找速度快,分配后剩下的可用空间较大。
缺点:一段时间后会缺乏较大空闲区。
(5) 快速适应算法
算法思想:将空闲分区按照进程常用的空间大小进行分类。分配时,根据进程长度,寻找到能容纳它的最小空闲区链表,并取下第一块进行分配。
优点:查找效率高
缺点:分区归还主存时算法复杂
3.分区分配操作
(1)分配内存
(2)回收内存
在这里插入图片描述
在这里插入图片描述
例:J4释放内存
在这里插入图片描述
在这里插入图片描述
例:J1释放内存
在这里插入图片描述
在这里插入图片描述
例:J3释放内存
在这里插入图片描述
在这里插入图片描述
可重定位分区分配
1.动态重定位的分配
在这里插入图片描述
由于经过紧凑后的用户程序在内存中的位置发生了变化,所以必须对发生移动的程序和数据进行重定位。
2.动态重定位的实现
在这里插入图片描述
3.动态重定位分区分配算法
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值