内存堆管理器的设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
第页
专业____________ 班级_________ 学号______________ 姓名
实验日期:年月日报告退发(订正、重做)
课程实验名称内存堆管理器的设计与实现
一、实验目的
1. 掌握内存的分配与回收
2. 模拟堆空间的管理
二、实验环境
1. Linux操作系统或Windows操作系统
2. C或C++编译器
三、实验内容、步骤和结果分析
实验内容:假设已有1M的内存, 要求按照堆空间的管理方式来管理这些内存,即为之提供类似于C标准库的malloc()和free()函数, 不妨规定自定义的函数为: void * my_malloc(int size); // 分配size字节的内存,返回其首地址
void my_free(void * addr); // 释放内存addr
(可采用空闲块链, 也可采用伙伴系统等算法, 算法不限。下图为实验的参考结果:图中第一行的[4235cc,1048572]代表一块开始于地址4235cc可分配大小为1048572的内存,经多次分配和全部回收后最后仍应是图中倒数第二行的[4235cc,1048572])
四、讨论
(说明实验过程中遇到的问题及解决办法;未解决/需进一步研讨的问题或建议新实验方法等)
(实验报告和作业请务必独立完成。不要抄与“被抄”,可上网找资料,但要加以消化,而不是简单的复制粘贴。请在各实验小班本学期最后一次实验课时提交提交本次实验报告。实验前请阅读readme.txt。此处红字部分不要打印。)