可变分区存储管理_第1页
可变分区存储管理_第2页
可变分区存储管理_第3页
可变分区存储管理_第4页
可变分区存储管理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

操作系统上机实验——存储管理操作系统上机实验一、实验题目可变分区存储管理——采用首次适应算法二、目的与要求通过消化理解模拟管理程序,了解存储器的分配与回收过程,体会相关数据结构在实现管理算法中的重要性。输入一到两组实验数据,观察分配与回收的处理结果,特别是回收时邻接空闲分区的合并处理,检测其算法的正确性。三、数据结构空闲分区链表结点结构:structlinkk{intsize;intaddr; structlinkk*next;}structlinkk*PL;作业表(记录作业情况)静态数组实现structjobtab{intjno;intsize; structjobtabtab[20];intaddr;intflag;}例:内存分配情况(假定总容量为640k)空闲分区链表情况作业表情况四、算法思想算法实现分配:查空闲分区链表回收:考虑邻接合并实验过程:输入操作命令代码分配:输入作业号及作业长度(已建立作业不重复建立)回收:输入作业号(不存在作业不释放空间)可查看空闲链表情况(检测分配、回收正确性)可查看作业表情况(检测分配、回收正确性)五、算法流程主程序(main()函数)分配程序(allocm()函数)回收程序(freem()函数)显示空闲分区链表及作业表程序(printlink()及printtab()函数)主程序(main()函数)

分配程序(allocm()函数)例:新建作业8,长度为90k,(输入8=>n,90=>l)查空闲分区链表,分区3够分配,一分为二。空闲链表修改情况如下:内存及作业表情况见前图(红线所示)回收程序(freem()函数)有四种情形(假定回收区首地址=>addr,长度=>length)空闲分区链表空,或不与任何空闲区邻接

=>分配新结点空间,存入回收作业首地址及长度

插入空闲分区链(链首,链中,链尾)回收分区与后一空闲分区相邻接

=>进行后邻接合并

例:回收作业7空间(addr+length=分区4首地址)

修改分区4首地址及分区大小(qaddr=addr;

qsize=qsize+length;)

合并后空闲分区链表情况如下:回首分区与前一空闲分区相邻接

例:作业4释放空间,与分区3合并

合并后空闲分区链情况如下:回收分区与前同时又与后空闲分区相邻接

=>需进行三个分区合并,并删除一个空闲分区结点

例:回收作业7后再回收作业4空间

注:除了修改空闲分区链表,还要修改作业表(清除flag标志)显示空闲分区链表及作业表程序(printlink()及printtab()函数)=>上述三函数由学员自己画出流程图。六、实验步骤消化实验算法程序组织上机实验数据第一组:指定(见下页)第二组:自定(要求能测试各种情形)输入上机程序,编译,运行,记录各操作步骤的运行结果(通过显示空闲分区链表及作业表)。指定操作数据

(设内存总空闲容量为640K)分配作业1(80k),作业3(30k),作业8(50k),作业5(140k),作业9(50k),作业6(100k),作业4(50k)观察(记录)空闲表及作业表情况回收作业8,观察结果分配作业7(80k),观察结果回收作业6,回收作业1,观察结果分配作业10(120k),

温馨提示

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

评论

0/150

提交评论