实验二 存储管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二存储管理

一、实验目的与基本要求

1.加深对可变分区的存储管理的理解;

2.提高用C 语言编制大型系统程序的能力,特别是掌握C 语言编程的难点:指针和指针作为函数参数;

3.掌握用指针实现链表和在链表上的基本操作。

二、实验条件

1.硬件:一台微机

2.软件:操作系统和C语言系统或VC++编译系统。

三、实验方法

编写程序,记录、观察显示结果,并分析原因。

四、实验内容

编写一个 C 程序,用char *malloc(unsigned size)函数向系统申请一次内存空间(如size=1000,单位为字节),用循环首次适应法来匹配。

两个模拟申请和释放函数,可以按以下定义addr = (char *)lmalloc(unsigned size) 和lfree(unsigned size,char * addr)模拟UNIX 操作系统的可变分区内存管理,实现对该内存区的分配和释放管理。

五、实验提示

要分配函数lmalloc 的参数size 和释放函数lfree 的参数size、addr 以键盘命令的形式

输入,每次分配和释放后显示自己的空闲存储区表。

空闲存储区表可采用结构数组的形式(最低要求)或双向链接表的形式,建议采用

的数据结构为:

struct map {

unsigned m_size;

char * m_addr;

};

struct map {

unsigned m_size;

char *m_addr;

struct map *next, *prior;

};

整个系统的基本框架为

程序结束前将整个存储区归还给系统。

六、实验报告要求

要采用标准的实验报告纸。它包含以下几个方面:

1.题目。

2.算法思想和概要设计和重要模块的详细设计及功能和接口说明。

3.重要数据结构和变量的说明。

4.源程序、注释和结果。注释如在上机时来不及打入,可在写报告时补上。5.测试方法,对测试结果的分析,错误的分析。

6.程序及测试的改进、本次上机经验及体会。

相关文档
最新文档