欢迎来到天天文库
浏览记录
ID:44499108
大小:83.00 KB
页数:5页
时间:2019-10-22
《操作系统首次最佳适应算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、学号专业姓名实验日期教师签字成绩实验報告[实验名称]采用可变式分区管理,使用首次获最佳适应算法实现内存分配与回收【实验目的与原理】1、理解首次获最佳适应算法的内涵,并熟练掌握该算法。2、学会可变式分区管理的原理是即在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。3、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区没有时应将空闲区一分为二。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。4、当一个作业执行完成时,作业所占用的分区应归还给系统。作业的释放区与空闲区的邻接分
2、以下四种情况考虑:①释放区下邻(低地址邻接)空闲区;②释放区上邻(高地址邻接)空闲区③释放区上下都与空闲区邻接;④释放区与空闲区不邻接。【实验内容】#include#includeSincludeusingnamespacestd;constintMAXJOB=100;//定义表最人记录数typedefstructnode{intfront;intlength;chardata[20];}job;jobfrees[MAXJOB];//定义空闲区表intfree_qucintity;joboccupy
3、s[MAXJ0B];//定义己分配区表intoccupyquantity;//初始化函数voidinitialO{inti;for(i=0;i4、;charfname[20];cout<<"请输入空闲区数据文件来源的文件名:”;cin>>fntime;if((fp=fopen(fname,,,r,,))==NLLL){cout<<"错误,文件打不开,请检查文件名z/«endl;}else{whilc(!fcof(fp)){fscanf(fp,"%dt%drT,&frees[freequantily]・fYonl,&frees[free_quantity]>length);frcc_quantity++;}cout«,/空闲的分区表己建立!『;return1;}return0;}voidso5、rt()//将free空间安首地址从小到人的顺序排列{inti,j,p;for(i=0;i6、=frees[free_quantity];}}}〃显示函数voidshow(){inti;cout«endl<<"・"«endl;cout<<"7、当前空闲表:"《endl;cout<<"起始地址长度状态"«endl;for(i=0;i8、y;i++){cout.self(2);cout.width(12);cout<>jobname;if(free9、s[i].length>=job_length)//如果空闲空间T的长度〉作业长度{flag=
4、;charfname[20];cout<<"请输入空闲区数据文件来源的文件名:”;cin>>fntime;if((fp=fopen(fname,,,r,,))==NLLL){cout<<"错误,文件打不开,请检查文件名z/«endl;}else{whilc(!fcof(fp)){fscanf(fp,"%dt%drT,&frees[freequantily]・fYonl,&frees[free_quantity]>length);frcc_quantity++;}cout«,/空闲的分区表己建立!『;return1;}return0;}voidso
5、rt()//将free空间安首地址从小到人的顺序排列{inti,j,p;for(i=0;i6、=frees[free_quantity];}}}〃显示函数voidshow(){inti;cout«endl<<"・"«endl;cout<<"7、当前空闲表:"《endl;cout<<"起始地址长度状态"«endl;for(i=0;i8、y;i++){cout.self(2);cout.width(12);cout<>jobname;if(free9、s[i].length>=job_length)//如果空闲空间T的长度〉作业长度{flag=
6、=frees[free_quantity];}}}〃显示函数voidshow(){inti;cout«endl<<"・"«endl;cout<<"
7、当前空闲表:"《endl;cout<<"起始地址长度状态"«endl;for(i=0;i8、y;i++){cout.self(2);cout.width(12);cout<>jobname;if(free9、s[i].length>=job_length)//如果空闲空间T的长度〉作业长度{flag=
8、y;i++){cout.self(2);cout.width(12);cout<>jobname;if(free
9、s[i].length>=job_length)//如果空闲空间T的长度〉作业长度{flag=
此文档下载收益归作者所有