【操作系统导论】第17章课后习题解答


前言

内容仅作记录,请谨慎参考

17.1

题目描述

在这里插入图片描述

分析及解答

使用命令:./malloc.py -n 10 -H 0 -p BEST -s 0来产生随机分配和释放:

在这里插入图片描述

可以看到,模拟程序模拟了一块大小为100的空间,
基地址为1000,头部的大小为0,同时采用最优匹配的匹配策略。

第一次分配大小为3的空间,将会返回1000,此时List有一个块大小为97
free之后将会返回0,此时List有两个块大小分别为3、97;
第二次分配大小为5的空间,将会返回1003,此时List有两个块大小分别为3、92
free之后将会返回0,此时List有三个块大小分别为3、5、92
第三次分配大小为8的空间,将会返回1008,此时List有三个块大小为3、5、84
free之后将会返回0,此时List有四个块大小分别为3、5、8、84
第四次分配大小为8的空间,根据最优分配的规则,将会返回1008,此时List有三个块大小为3、5、84,free之后将会返回0,此时List有四个块大小分别为3、5、8、84
第五次分配大小为2的空间,根据最优分配,将会返回1000,此时List有四个块大小分别为1、5、8、84
第六次分配大小为7的块,根据最优分配,将会返回1008,此时List有四个块大小分别为1、5、1、84

使用命令:./malloc.py -n 10 -H 0 -p BEST -s 0 -c来查看模拟的结果:

在这里插入图片描述

可以看到结果与上述分析一致,同时我们会发现,随着时间的推移,空闲的块并不会合并,这将会导致碎片越来越多

17.3

题目描述

在这里插入图片描述

分析及解答

使用命令:./malloc.py -n 10 -H 0 -p FIRST -s 0 -c来查看使用首次分配的结果:

在这里插入图片描述

可以看到,相比BEST分配策略,使用FIRST分配策略进行分配时searched的元素将会减少,也就是说由于首次分配只需要找到第一个足够大的空闲块即可,不需要像最优分配那样每次遍历所有的空闲块,所以在查找空闲块花费的时间将会大大减少。

17.4

题目描述

在这里插入图片描述

分析及解答

对比不同分配策略、不同空闲列表排序方式下的分配情况可以看出:
不同的空闲列表排序方式对最优(BEST)和最差(WORST)分配这种分配策略的效率没有影响
而对于像首次(FIRST)分配这样的分配策略,不同的空闲列表排序方式将会影响其分配策略的效率
这与分配策略的具体思路是相关的:最优和最差分配无论空闲块如何排列,每次分配都需要遍历所有的空闲块,而首次分配只需要找到首个足够大的空闲块,所以与空闲块的排列有关。
具体的模拟结果见以下截图:

BEST分配策略:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FIRST分配策略:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

WORST分配策略:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼树C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值