下载此文档

最佳适应算法源代码.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/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<free_table[k].length)k=i;}i=i+1;}if(k!=-1){if((free_table[k].length-need_length)<=minsize)//整个分配{free_table[k].flag=0;ads=free_table[k].address;len=free_table[k].length;}else{//切割空闲区ads=free_table[k].address;len=need_length;free_table[k].address+=need_length;free_table[k].length-=need_length;}i=0;//循环寻找内存分配表中标志为空栏目的项while(used_table[i].flag!=0){i=i+1;}if(i<=n-1)//找到,在已分配区表中登记一个表项{used_table[i].address=ads;used_table[i].length=len;used_table[i].flag=process_name;count1++;}else//已分配区表长度不足{if(free_table[k

最佳适应算法源代码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-02-20