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