电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

最佳适应算法源代码VIP免费

最佳适应算法源代码_第1页
1/6
最佳适应算法源代码_第2页
2/6
最佳适应算法源代码_第3页
3/6
#include#include//全局变量floatminsize=5;intcount1=0;intcount2=0;#definem10//假定系统允许的空闲区表最大为m#definen10//假定系统允许的最大作业数量为n//已分配表的定义struct{floataddress;//已分分区起始地址floatlength;//已分分区长度,单位为字节intflag;//已分配区表登记栏标志,"0"表示空栏目}used_table[n];//已分配区表对象名//空闲区表的定义:struct{floataddress;//空闲区起始地址floatlength;//空闲区长度,单位为字节intflag;//空闲区表登记栏标志,用"0"表示空栏目,用"1"表示未分配}free_table[m];//空闲区表对象名//函数声明voidinitialize(void);intdistribute(int,float);intrecycle(int);voidshow();//初始化两个表voidinitialize(void){inta;for(a=0;a<=n-1;a++)used_table[a].flag=0;//已分配表的表项全部置为空表项free_table[0].address=1000;free_table[0].length=1024;free_table[0].flag=1;//空闲区表的表项全部为未分配}//最优分配算法实现的动态分区intdistribute(intprocess_name,floatneed_length){inti,k=-1;//k用于定位在空闲表中选择的未分配栏floatads,len;intcount=0;i=0;while(i<=m-1)//循环找到最佳的空闲分区{if(free_table[i].flag==1&&need_length<=free_table[i].length){count++;if(count==1||free_table[i].length=m||(k!=-1&&j!=-1)))//修改空闲分区表{if(free_table[i].flag==1){if((free_table[i].address+free_table[i].length)==recycle_address)k=i;//判断是否有上邻接if((recycle_address+recycle_length)==free_table[i].address)j=i;//判断是否有下邻接}i=i+1;}//合并空闲区if(k!=-1)//回收区有上邻接{if(j!=-1){//回收区也有下邻接,和上下领接合并free_table[k].length+=free_table[j].length+recycle_length;free_table[j].flag=0;//将第j栏的标记置为‘0’}else//不存在下邻接,和上邻接合并free_table[k].length+=recycle_length;}elseif(j!=-1){//只有下邻接,和下邻接合并free_table[j].length+=recycle_length;free_table[j].address=recycle_address;}else{//上下邻接都没有x=0;while(free_table[x].flag!=0)x=x+1;//在空闲区表中查找一个状态为‘0’的栏目if(x<=m-1){//找到后,在空闲分区中登记回收的内存free_table[x].address=recycle_address;free_table[x].length=recycle_length;free_table[x].flag=1;}else{//空闲表已满,执行回收失败used_table[y].flag=process_name;co...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

最佳适应算法源代码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部