最佳适应算法 源程序代码.doc

最佳适应算法 源程序代码.doc

ID:49977851

大小:22.40 KB

页数:6页

时间:2020-03-03

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

《最佳适应算法 源程序代码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、最佳适应算法源程序代码#include#include//全局变量floatminsize=5;intcount1=0;intcount2=0;#defineM10//假定系统允许的空闲区表最大为m#defineN10//假定系统允许的最大作业数量为n//已分配表的定义struct{floataddress;//已分分区起始地址floatlength;//已分分区长度,单位为字节intflag;//已分配区表登记栏标志,"0"表示空栏目}used_table[N];//

2、已分配区表对象名//空闲区表的定义: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

3、-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(

4、i<=M-1)//循环找到最佳的空闲分区{if(free_table[i].flag==1&&need_length<=free_table[i].length){count++;if(count==1

5、

6、free_table[i].length

7、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]

8、.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;free_table[k].length=len;}else//将已做的切割分配撤销{free_table[k].address=ads;free_table

9、[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;//在内存分配表中找到要回收的作业while(y<=N-1&&used_table[y].fl

10、ag!=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//未能找到作业,回收失败{co

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

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

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