资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 1 页 共 16 页实验三 基本存储器管理-存储器的分配与回收算法实验名称:存储器的分配与回收算法实验仪器、设备:计算机参考资料:操作系统实验指导书实验目的:设计一个存储器的分配与回收算法管理方案,并编写模拟程序实现。实验内容:1. 模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。2. 采用最先适应法、最佳适应法、最坏适应法分配主存空间。3. 当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。4. 当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。5. 运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。实验要求:1 详细描述实验设计思想、程序结构及各模块设计思路;第 2 页 共 16 页2 详细描述程序所用数据结构及算法;3 明确给出测试用例和实验结果;4 为增加程序可读性,在程序中进行适当注释说明;5 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;6 实验报告撰写要求结构清晰、描述准确逻辑性强;实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。实验过程记录(源程序、测试用例、测试结果及心得体会等实验代码如下:#include int work102; /作业名字 大小 int idle102; /空闲区地址 大小 int free103; /已分配区域的名字 地址 大小 int num=0,b=1,d,ch1,ch2; void init() idle00=1;idle01=100; free00=0;free11=0;free12=0; work00=0;work01=0; for(int i=1;i idlej+10) int temp=idlej0; idlej0=idlej+10; idlej+10=temp;temp=idlej1; idlej1=idlej+11; idlej+11=temp; 第 5 页 共 16 页void zuijia() /最佳适应法 num=0; jishu(); for(int i=0;i idlej+11) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; idlej1=idlej+11; idlej+11=temp; 第 6 页 共 16 页 void zuihuai() /最坏适应法 num=0; jishu(); for(int i=0;i idlej+10) int temp=idlej0; idlej0=idlej+10; idlej+10=temp; temp=idlej1; idlej1=idlej+11; idlej+11=temp; 第 9 页 共 16 页for(int q=0;q =q;j-) idlej+10=idlej0; idlej+11=idlej1; idlej0=freec1; idlej1=freec2; b+; if(idlej+10=idlej0+idlej1) idlej1=idlej1+idlej+11; for(int m=j+1;m ch1; cout ch2; 第 14 页 共 16 页cout workb0workb1; cout n; 第 15 页 共 16 页huishou(n); 实验截图:成功回收时:回收失败时:第 16 页 共 16 页实验体会:本次实验的难度较大,尤其是回收进程,主要编写几个算法和回收程序,最佳,最优,最坏算法和回收算法,我用的是数组,有工作数组,空闲数组,已分配数组。最后再编写算法,但是回收算法现在还是有些不清晰,需要进一步研究!
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号