赞
踩
资源下载地址:https://download.csdn.net/download/sheziqiong/85697657
资源下载地址:https://download.csdn.net/download/sheziqiong/85697657
实验要求:
本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。
采用最先适应法、最佳适应法、最坏适应法分配主存空间。
当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,另一部分又成为一个空闲区。
当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。
5.运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。
实验任务:
分别用 线性表 和 链表 模拟 主存空间的分配
步骤:
(1)最先适应法:在分配内存时,从链首开始顺序查找;如果找到一个大小能满足要
的空闲分区,然后再按照作业的大小,从分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中;如果找不到,此次分配失败,返回
最佳适应法:扫描整个空闲分区表或者链表,挑选一个最小的空闲区分割给作业使用
最坏适应法:扫描整个空闲分区表或者链表,挑选一个最大的空闲区分割给作业使用
(2)分配内存时:若分割后的多余部分太小,可以不用分割,直接将整个分区分配给进程
回收内存时:1.若回收区与插入点的前一个空闲分区 F1 相邻接,则将两者合并,同时修改 F1 的大小为两者大小的和
2.若回收区与插入点的后一个空闲分区 F2 相邻接,则将两者合并,使用回收区的首址作为新空闲区的首址,大小为两者大小的和
3.若回收区与 F1、F2 邻接,此时将三个分区合并,使用 F1 的表项和 F1 的首址,取消 F2 的表项,大小为三者之和
4.若回收区 既不与 F1 邻接,也不与 F2 邻接, 此时为回收区单独建立一个新表项,填写回收区的首址和大小,并根据首址插入到适当位置
(3)依次输入一个进程的请求信息后,按照指定的方法对这个 PCB 进行分配,逐步输出模拟内存分配的状态,进行查看
(4)设计测试数据,分析程序运行情况,并进行调试
算法描述:
(1)输入指定的分配方法(1.最先适应法,2.最佳适应法,3.最坏适应法)
(2)i=0; 同时输入时间数 n
(3)i++; 同时输入一个进程的请求信息
(4)按照指定的方法对 这个进程 进行内存分配
(5)显示内存状态
(6)若 i==n,结束。否则转到(3)
流程:
测试结果:
最先适应法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sGhZvfpQ-1655643561260)(https://www.writebug.com/myres/static/uploads/2022/6/19/99a7d0af274cd303692cfdc06cced464.writebug)]
最佳适应法:
最坏适应法:
资源下载地址:https://download.csdn.net/download/sheziqiong/85697657
资源下载地址:https://download.csdn.net/download/sheziqiong/85697657
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。