操作系统首次最佳适应算法.doc:..学号 专业 姓名 实验日期 教师签字 成绩 实验報告[实验名称]采用可变式分区管理,使用首次获最佳适应算法实现内存分配与回收【实验目的与原理】1、 理解首次获最佳适应算法的内涵,并熟练掌握该算法。2、 学会可变式分区管理的原理是即在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。3、 当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区没有时应将空闲区一分为二。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。4、 当一个作业执行完成时,作业所占用的分区应归还给系统。作业的释放区与空闲区的邻接分以下四种情况考虑:①释放区下邻(低地址邻接)空闲区;②释放区上邻(高地址邻接)空闲区③释放区上下都与空闲区邻接;④释放区与空闲区不邻接。【实验内容】#include<>#include<iostream>Sinclude<string>usingnamespacestd;constintMAXJOB=100;//定义表最人记录数typedefstructnode{intfront;intlength;chardata[20];}job;jobfrees[MAXJOB];//定义空闲区表intfree_qucintity;upys[MAXJ0B];//upyquantity;//初始化函数voidinitialO{inti;for(i=0;i<MAXJ0B;i++){frees[i]・front二T;freesti]・length=0;strcpy(frees[i]・data,"free");occupys[i]・front=T;occupys[i]・1ength=0;strcpy(occupysti]・data,z,”);}free_quantity=O;occupyquantity=0;}〃创建空闲分区表intcreatfreeO{FTLE*fp;charfname[20];cout<<"请输入空闲区数据文件来源的文件名:”;cin>>fntime;if((fp=fopen(fname,,,r,,))==NLLL){cout<<"错误,文件打不开,请检查文件名z/«endl;}else{whilc(!fcof(fp)){fscanf(fp,"%d\t%d\rT,&frees[freequantily]・fYonl,&frees[free_quantity]>length);_quantity++;}cout«,/空闲的分区表己建立!\『;return1;}return0;}voidsort()//将free空间安首地址从小到人的顺序排列{inti,j,p;for(i=0;i<free_quantity-l;i++){P=i;for(j=i+l;j<_quantity;j++){if(frees[j].front<frees[p].front){p=j;}}辻(p!=i){frees[free_quantity]=frees[i];frees[i]=s[p];freesIp|=frees[free_quantity];}}}〃显示函数voidshow(){inti;cou
操作系统首次最佳适应算法 来自淘豆网www.taodocs.com转载请标明出处.