poptar 2021-06-24 15:18 采纳率: 25%
浏览 51

CSSAPP 隐式空闲链表

问题: 确定下面malloc请求序列产生的块大小和头部值。

假设:

1)分配器保持双字对齐,并且使用块格式如图9-35中所示的隐式空闲链表。

2)块大小向上舍入为最接近的8字节的倍数。

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-16 14:23
    关注

    参考GPT和自己的思路:

    根据题目中提供的信息,我们可以得到以下几点:

    1. 分配器使用隐式空闲链表,块格式如图9-35所示。

    2. 分配器保持双字对齐,块大小向上舍入为最接近的8字节的倍数。

    假设 malloc 请求序列为:

    malloc(16);
    malloc(32);
    malloc(64);
    

    根据题目中所给的块格式和对齐方式,我们可以得到以下信息:

    1. 每个块的最小大小为16字节。

    2. 每个块的头部大小为8字节(4字节指针和4字节标记位)。

    3. 当请求大小为16字节时,系统会使用一个16字节的块来满足请求,即使用第一个空闲块,并将其从空闲链表中移除。

    4. 当请求大小为32字节时,系统会使用一个64字节的块来满足请求,即使用第二个空闲块,并将其拆分成一个32字节的块和一个32字节的空闲块,将后者加入空闲链表中。

    5. 当请求大小为64字节时,系统会使用一个64字节的块来满足请求。

    所以,这个 malloc 请求序列产生的块大小为16字节、64字节、64字节,头部值分别为8、8、8。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)