本类下载TOP10
操作系统课程设计
全文下载
Word文件格式下载
5 文钱
文钱不够?
摘 要 定义一个自由存储块链表,按块地址排序,表中记录块的大小。 当请求分配内存时,扫描自由存储块链表,直到找到一个足够大的可供分配的内存块,若找到的块大小正好等于所请求的大小时,就把这一块从自由链表中取下来,返回给申请者。若找到的块太大,即对其分割,并从该块的高地址部分往低地址部分分割,取出大小合适的块返回给申请者,余下的低地址部分留在链表中。若找不到足够大的块,就从操作系统中请求另外一块足够大的内存区域,并把它链接到自由块链表中,然后再继续搜索。 释放存储块也要搜索自由链表,目的是找到适当的位置将要释放的块插进去,如果被释放的块的任何一边与链表中的某一块临接,即对其进行合并操作,直到没有合并的临接块为止,这样可以防止存储空间变得过于零碎。 目 录 一、课程设计的目的及要求………………………………………………1 1.1设计的目的………………………………………………………………1 1.2设计的要求 ……………………………………………………………1 二、相关知识……………………………………………………………………1 2.1 存储管理概述 …………………………………………………………1 2.2 内存分配方案 ………………………………………………………2 2.3 存储管理对内存硬件的抽象 ………………………………………2 三、设计方案 …………………………………………………………………3 3.1 程序的总体框架 ……………………………………………………3 3.2程序的几个主要函数…………………………………………………4 3.3 主要算法 ………………………………………………………………4 四、程序所用系统函数 …………………………………………………4 4.1 Malloc函数 ……………………………………………………………4 4.2 Morecore函数 ………………………………………………………5 4.3 Free函数 ………………………………………………………………6 4.4 辅助功能函数 …………………………………………………………7 五、程序编译及运行环境的设置………………………………………8 5.1编译使用工具 …………………………………………………………8 5.2其它说明…………………………………………………………………8 六、程序代码实现……………………………………………………………8 6.1 Malloc.h文件 …………………………………………………………8 6.2 Malloc.c文件…………………………………………………………9 6.3 Test.c文件 …………………………………………………………11 6.4 Makefile文件…………………………………………………………11 七、程序运行结果……………………………………………………………12 八、参考资料……………………………………………………………………13 九、课程设计总结……………………………………………………………13