计算机操作系统之期末考试复习——内存管理动态分区分配问题

基于顺序搜索动态分区分配算法

  1. 首次适应算法(FF):每次都从低地址开始查找,找到第一个满足大小的空闲分区。
  2. 循环首次适应(NF):每次分配内存时从上次查找结束的位置开始查找空闲分区链,找到大小能满足要求的第一个空闲分区。
  3. 最佳适应算法(BF):总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。
  4. 最坏适应算法(WF):和最佳适应相反,最大的空闲分区分配给作业。

基于索引搜索的动态分区分配算法

  1. 快速适应算法:略。
  2. 伙伴系统在这里插入图片描述在这里插入图片描述在这里插入图片描述

具体例题

  1. 二进制地址为011011110000,块的大小为4和16的伙伴地址分别为多少?

题解:

  1. 块的大小为4= 2 2 2^2 22
    地址011011110000可以被 2 3 2^3 23整除,所以伙伴地址位于下半区,是011011110100;
  2. 块的大小为16= 2 4 2^4 24
    地址011011110000不可以被 2 5 2^5 25整除,所以伙伴地址位于上半区,是011011100000;
  1. 某系统主存空间为1024KB,采用伙伴(Buddy system)系统分配器内存,对于下列请求序列:
    作业1请求240KB
    作业2请求120KB
    作业3请求60KB
    作业2释放120KB
    作业4请求130KB
    作业3释放60KB
    请画出进行上述分配和回收后,内存实际使用的情况。

分析:伙伴系统中,当一个进程申请K字节内存空间时,系统会把一个大小为 2 U 2^{U} 2U字节的内存块 ( 2 U < K ≤ 2 U ) (2^{U}< K\leq 2^{U}) 2U<K2U分配给它。如果没找到这样的内存块,但系统中还有更大的空闲块,则需将最接近要求的那个较大空闲块分为两个大小相等的块(这两个块被称作一对伙伴),直至找到合适大小的空闲块为止;回收时,如果两个相邻的空闲块为一对伙伴,则需要将它们合并成一个更大的空闲块。
其中阴影部分表示内部碎片在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值