欢迎来到天天文库
浏览记录
ID:286098
大小:46.00 KB
页数:4页
时间:2017-07-18
《中国矿业大学计算机学院实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中国矿业大学计算机学院实验报告课程名称操作系统教程实验名称可变式分区管理的计算机模拟班级_信息安全06--2___姓名__陈瑞____学号_08063661___仪器组号_______实验日期______实验报告要求:1.实验目的2.实验内容3.实验步骤4.运行结果5.流程图6.实验体会1、实验目的通过实验使学生理解可变分区管理的原理。使用C、或C++、或Java语言,编程模拟可变分区管理的分配、回收。2、实验内容(1)学生了解实验目的,画出逻辑结构图、流程图。(2)复习单向链或双向链操作编程,编写全部程序。(3)分配或回收后,必须可以显示空闲内存块队列状态。回收内存时,要检查空闲块上合并、下
2、合并。3、实验步骤1、首先建立一个结构体map,成员列表分别指空闲区的大小、空闲区的首地址以及该表项的前后表项。2、然后定义了两个结构体变量,coremap、start;coremap指向首表项(空闲区表),start指向当前的查找首表项(空闲区表)3、下面写出三个函数,分别为分配函数,释放函数和打印函数。4、在分配函数中,structmap*current=start---记录查找的起点。当有足够大的空闲区,有余时,依次执行减小分配过的表项空间、申请到的空间的首地址、修改表项的首地址、返回申请到的地址;当有正好大小的空闲区时,从链表中删除该表项;当前表项所指的空闲区不够,start指向下一个
3、表项。5、在释放函数中,有三种情况:(一)、释放的空间在循环链表的首表项的前头,则要插入首表项(二)、释放的空间紧挨着循环链表的首表项的前头,则要修改首表项。(三)、释放的空间在循环链表的首表项的后头,同时有四种情形:1、释放的空间不紧挨着别的空闲区的边界2、释放的空间紧挨着上边空闲区的边界,不紧挨着下边空闲区的边界;3、释放的空间不紧挨着上边空闲区的边界,紧挨着下边空闲区的边界;释放的空间紧挨着上边空闲区的边界,紧挨着下边空闲区的边界。如果不在这四种情形下,那么释放的空间不在当前表项和下一表项间。6、打印函数只是打印当前空闲区的所有表项。7、最后写出程序的主函数,调试运行得出结果,完成实验。
4、4、运行结果运行结果截图如下图:5、实验体会这次实验比上次实验简单一些,由于在课堂上讲的内容把原理阐述的比较清楚,所以在编写函数的时候就有了大体的方向,不会偏离太远或者时根本感觉无从下手。虽然大体的原理清楚了,但是作为编程能力并不太好的其中一员,我也不得不从网上参考相关的程序代码,以及实现具体功能的函数。可见虽然知道了原理还是远远不够的,还需要多的动手去实践一下,这样才能较快的提高自己的编程能力。教师评价优良中及格不及格教师签名日期
此文档下载收益归作者所有