计算机系统Malloc lab实验笔记

首先下载trace,然后去config.h更改文件路径。(官方文件包里不包含这个,但我不知道去哪下载,因为老师给的包里有)

在config.h找到

#define TRACE DIRECTOR "路径"

只改路径部分,改为存放trace的位置。

输入命令:

make

./mdriver -v

执行完这两条,虚拟机没抽风就会得到未更改的mm运行结果。

运行失败就按报错找解决方案,这次是缺少<system/codes.h>头文件。

安装libc-dev

sudo apt-get install libc6-dev

不行再安装gcc-multilib包

sudo apt-get install gcc-multilib

到这里我已经解决了头文件缺失的问题,但出现了链接报错。按照报错提示挨个排除文件问题。

gcc -Wall -O2 -m32 -c -o memlib.o memlib.c

gcc -Wall -O2 -m32 -c -o fcyc.o fcyc.c

gcc -Wall -O2 -m32 -c -o clock.o clock.c

到这里这次就运行成功了。

代码是借鉴的别人的文章,但是看太多了忘记到底是哪篇了,这次没办法贴链接。

改好代码后再次运行

make

./mdriver -v

如果这里报错,在make报错的时候会有详细的错误提示,比如我这次用了for,但是编译器不是c99,上面会有相应的提示,推荐我使用c99,这个时候输入:

gcc -Wall -O2 -m32 -std=c99 -c -o mm.o mm.c

make

./mdriver -v

就可以得到结果了。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
malloclab是CSAPP(Computer Systems: A Programmer's Perspective)教材中的一个实验项目,旨在帮助学生了解内存管理和动态内存分配的细节。 实验的主要任务是实现一个简单的动态内存分配器。这个内存分配器需要提供malloc、free和realloc函数的功能,来动态管理内存。实验中提供了一个基本的代码框架,学生需要在这个框架上完成具体的实现。 整个实验可以分为三个部分:分配器的初始化、分配和释放内存的处理。 在初始化部分,学生需要定义一个初始的堆,为其分配一块内存,并根据实验要求设置好堆的初始状态。 在分配内存的部分,学生需要实现malloc函数。这个函数接收一个参数(需要分配的字节数)并返回指向分配内存的指针。学生需要根据实验要求分配内存,并保证分配的内存块满足对齐和避免碎片化的要求。 在释放内存的部分,学生需要实现free函数。这个函数接收一个参数(指向待释放内存块的指针)并将该内存块标记为可用。学生需要根据实验要求处理不同的情况,比如释放合并相邻的空闲块。 此外,实验还有一些额外的要求,如实现realloc函数,处理内存使用情况的统计等。 通过完成malloclab实验,学生可以深入了解内存管理和动态内存分配的工作原理。这个实验还提供了一个实践机会,让学生亲自动手实现一个简单的内存分配器,从而更好地理解和掌握相关的概念和技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值