实验1-可变分区存储管理-不要上传压缩.ppt_第1页
实验1-可变分区存储管理-不要上传压缩.ppt_第2页
实验1-可变分区存储管理-不要上传压缩.ppt_第3页
实验1-可变分区存储管理-不要上传压缩.ppt_第4页
实验1-可变分区存储管理-不要上传压缩.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 可变分区存储管理 请尽量到机房上机,(一)实验题目 编写一个C程序,用char *malloc(unsigned size)函数向系统申请一次内存空间(如size=1000,单位为字节),用首次适应法 addr = (char *)fmalloc(unsigned size) 和 ffree(unsigned size,char * addr)(基本要求)或 循环首次适应法(提高一步) addr = (char *)lmalloc(unsigned size) 和 lfree(unsigned size,char * addr) 模拟UNIX可变分区内存管理,实现对该内存区的分配和释放

2、管理。,(二)实验目的,1加深对可变分区的存储管理的理解; 2提高用C语言编制大型系统程序的能力,特别是掌握C语言编程的难点:指针及指针作为函数参数。,(三)实验要求,空闲存储区表可采用结构数组的形式,建议采用的数据结构为: 结构数组的形式: struct map unsigned m_size; char * m_addr; ; struct map coremapN; 分配函数的参数size和释放函数的参数size、addr以键盘命令的形式输入,每次分配和释放后显示自己的空闲存储区表。,整个系统的基本框架为:,(四)实验注意事项,键盘命令的简单形式如: malloc 100 通过fmall

3、oc函数申请100字节的内存空间。 free 100 2567890 通过ffree函数释放起始地址为2567890的那个内存区,该地址先前通过fmalloc申请的有效存储区地址。 为了避免输入复杂的释放地址,可采用输入相对地址的方法,如: f 100 300(相对地址) 调用ffree时再加上分配到的内存始地址。,命令输入可用C函数: scanf (“%c”, while(c=n|c=t|c= ),程序输入、调试和测试,可以在Linux的环境下进行,也可在Windows turbo C等的环境中进行,但Windows和turbo C环境不直接支持I/O转向,故在完成此项工作时应将编译后产生的

4、执行文件如myproc.exe存入磁盘的某个目录中,如是Windows,运行cmd命令进入命令行窗口,运行程序,用I/O转向生成结果文件。如: myproc.exe result.txt 在Linux的环境下可直接运行: ./myproc resul,(五) 测试要求,程序调试基本通过后,应进行较为全面的测试,建议采用白盒法的路径测试方法,测试路径应包含分配算法的“首次”或“循环首次”、,释放算法的与邻近空闲分区联系的四种情况,还要包含一些必要的出错处理路径。 可在测试通过后,可用I/O转向使屏幕的输出结果转至指定文件。注意,由于此时看不到提示字符串和空闲存储区表的输出内容,欲释放存储地址较难

5、正确输入,可采用以下几种方法:,测试通过后可用I/O转向使屏幕的输出结果转至指定文件。注意,由于此时看不到提示字符串和空闲存储区表的输出内容,欲释放存储地址较难正确输入,可采用以下几种方法: 1在不采用输出转向时先完整地运行一遍,并记下所有的命令和参数,再用I/O转向时“摸瞎”似地依次输入各个命令和参数,由于malloc所分配的存储区地址时用户程序的虚地址空间,故同一程序的两次运行的结果应当是一样的。为了使输出结果文件也含有输入的命令串,应在输入命令后,再将命令和参数输出至标准输出设备。,2. 如fmalloc和ffree,是采用相对地址的管理方法(malloc所分配的地址+偏移地址),那么输

6、入ffree的释放地址就容易得多。 3输入也可采用I/O转向,将预先设计好的所有输入次序(部分数据可在不采用I/O转向运行时输入)写入输入文件,再用: myprog.exe result.txt 的形式执行。 4对于文件的I/O较熟悉的学生可采用每次在屏幕输出后重复向文件输出的方法,这样上述的问题就很容易解决了。,(六) 实验数据和结果,学生最后应当将实验报告、程序、输出结果文件和输入命令文件(如果有的话)合并成一个文件,如progres.txt。 如在cmd命令行窗口的合并方法是: copy myprog.c+input.txt+result.txt progres.txt 在Linux中的

7、合并方法是: cat myprog.c input result progres.txt,(七)实验报告要求,实验报告包含以下几个方面: 1题目。 2算法思想和概要设计和重要模块的详细设计及功能和接口说明。 3重要数据结构和变量的说明。 4源程序、注释和结果。 5测试方法,对测试结果的分析,错误的分析。 6. 程序及测试的改进、本次上机经验及体会。以上可以简化。 7. 将以上内容和前面程序、输出/输入的文件再合并成一个实验报告word文件。实验报告中一定还要有一到两幅含有自己姓名(可以是汉语拼音)的运行情况和结果的截图。 8. 将实验报告(1个文件,不要压缩)发到作业系统中。 9. 如实验在机

8、房中完成,经老师检查后,实验报告可简化。,参考答案,在操作系统习题与应用解析中的13章(p67)有该题的参考答案,可以参考、简化,但不要照抄。 实验环境可以是任何的C或C+虚拟机,但要求编C程序,不要编C+程序。 鼓励编一个数组实现的循环首次适应法的实验程序,这只要在首次适应法的基础上略加修改。,在机房Win7/Win10允许telnet客户端登录Linux服务器,控制面板-程序-程序和功能 (打开(启用)或关闭windows功能) -勾选:Telnet客户端-点击确定 服务器地址: 10.12.111.242 10.12.111.243 用户名 student1 5 口令 同用户名,在Win

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论