最佳适应算法源代码

最佳适应算法源代码

ID:33484048

大小:49.50 KB

页数:6页

时间:2019-02-26

最佳适应算法源代码_第1页
最佳适应算法源代码_第2页
最佳适应算法源代码_第3页
最佳适应算法源代码_第4页
最佳适应算法源代码_第5页
资源描述:

《最佳适应算法源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include//全局变量floatminsize=5;intcount1=0;intcount2=0;#definem10//假定系统允许的空闲区表最大为m#definen10//假定系统允许的最大作业数量为n//已分配表的定义struct{floataddress;//已分分区起始地址floatlength;//已分分区长度,单位为字节intflag;//已分配区表登记栏标志,"0"表示空栏目}used_table[n];//已分配区表对象名//空闲区表的定义:struct{floataddress;//空闲区起始

2、地址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_tab

3、le[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

4、

5、free_table

6、[i].length

7、ed_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].flag==0)//将已做的整个分配撤销{free_table[k].flag=1;free_table[k].address=ads;

8、free_table[k].length=len;}else//将已做的切割分配撤销{free_table[k].address=ads;free_table[k].length+=len;}cout<<"内存分配区已满,分配失败!";return0;}}else{cout<<"无法为该作业找到合适分区!";return0;}returnprocess_name;}intrecycle(intprocess_name){inty=0;floatrecycle_address,recycle_length;inti,j,k;//j栏是下邻空闲区,k栏是上栏空闲区intx;//

9、在内存分配表中找到要回收的作业while(y<=n-1&&used_table[y].flag!=process_name){y=y+1;}if(y<=n-1)//找到作业后,将该栏的标志置为‘0’{recycle_address=used_table[y].address;recycle_length=used_table[y].length;used_table[y].flag=0;count2++;}else//未能找到作业,回收失败{cout<<"该作业不存在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。