操作系统最差自适应遗传算法算法是好还是坏

记住登录一个月发表随想还能输入:200字该用户最新代码编程随想&by by by by by by [c++]代码库#include&iostream&
#include&stdlib.h&
#define Free 0 //空闲状态
#define Busy 1 //已用状态
#define OK 1
#define ERROR 0 //出错
#define MAX_length 640 //最大内存空间为640KB
typedef int S
typedef struct freearea//定义一个空闲区说明表结构
//分区大小
//分区地址
// 线性表的双向链表存储结构
typedef struct DuLNode
struct DuLNode * //前趋指针
struct DuLNode *
//后继指针
DuLNode,*DuLinkL
DuLinkList block_ //头结点
DuLinkList block_
Status alloc(int);//内存分配
Status free(int); //内存回收
Status First_fit(int);//首次适应算法
Status Best_fit(int); //最佳适应算法
Status Worst_fit(int); //最差适应算法
void show();//查看分配
Status Initblock();//开创空间表
Status Initblock()//开创带头结点的内存空间链表
block_first=(DuLinkList)malloc(sizeof(DuLNode));
block_last=(DuLinkList)malloc(sizeof(DuLNode));
block_first-&prior=NULL;
block_first-&next=block_
block_last-&prior=block_
block_last-&next=NULL;
block_last-&data.address=0;
block_last-&data.size=MAX_
block_last-&data.state=F
return OK;
//分配主存
Status alloc(int ch)
int request = 0;
cout&&"请输入需要分配的主存大小(单位:KB):";
if(request&0 ||request==0)
cout&&"分配大小不合适,请重试!"&&
return ERROR;
if(ch==2) //选择最佳适应算法
if(Best_fit(request)==OK) cout&&"分配成功!"&&
else cout&&"内存不足,分配失败!"&&
return OK;
if(ch==3) //选择最差适应算法
if(Worst_fit(request)==OK) cout&&"分配成功!"&&
else cout&&"内存不足,分配失败!"&&
return OK;
else //默认首次适应算法
if(First_fit(request)==OK) cout&&"分配成功!"&&
else cout&&"内存不足,分配失败!"&&
return OK;
//首次适应算法
Status First_fit(int request)
//为申请作业开辟新空间且初始化
DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));
temp-&data.size=
temp-&data.state=B
DuLNode *p=block_first-&
if(p-&data.state==Free && p-&data.size==request)
{//有大小恰好合适的空闲块
p-&data.state=B
return OK;
if(p-&data.state==Free && p-&data.size&request)
{//有空闲块能满足需求且有剩余
temp-&prior=p-&
temp-&next=p;
temp-&data.address=p-&data.
p-&prior-&next=
p-&data.address=temp-&data.address+temp-&data.
p-&data.size-=
return OK;
return ERROR;
//最佳适应算法
Status Best_fit(int request)
//记录最小剩余空间
DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));
temp-&data.size=
temp-&data.state=B
DuLNode *p=block_first-&
DuLNode *q=NULL; //记录最佳插入位置
while(p) //初始化最小空间和最佳位置
if(p-&data.state==Free && (p-&data.size&=request) )
if(q==NULL)
ch=p-&data.size-
else if(q-&data.size & p-&data.size)
ch=p-&data.size-
if(q==NULL) return ERROR;//没有找到空闲块
else if(q-&data.size==request)
q-&data.state=B
return OK;
temp-&prior=q-&
temp-&next=q;
temp-&data.address=q-&data.
q-&prior-&next=
q-&data.address+=
q-&data.size=
return OK;
return OK;
//最差适应算法
Status Worst_fit(int request)
//记录最大剩余空间
DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));
temp-&data.size=
temp-&data.state=B
DuLNode *p=block_first-&
DuLNode *q=NULL; //记录最佳插入位置
while(p) //初始化最大空间和最佳位置
if(p-&data.state==Free && (p-&data.size&=request) )
if(q==NULL)
ch=p-&data.size-
else if(q-&data.size & p-&data.size)
ch=p-&data.size-
if(q==NULL) return ERROR;//没有找到空闲块
else if(q-&data.size==request)
q-&data.state=B
return OK;
temp-&prior=q-&
temp-&next=q;
temp-&data.address=q-&data.
q-&prior-&next=
q-&data.address+=
q-&data.size=
return OK;
return OK;
//主存回收
Status free(int flag)
DuLNode *p=block_
for(int i= 0; i &= i++)
if(p!=NULL)
return ERROR;
p-&data.state=F
if(p-&prior!=block_first && p-&prior-&data.state==Free)//与前面的空闲块相连
p-&prior-&data.size+=p-&data.
p-&prior-&next=p-&
p-&next-&prior=p-&
if(p-&next!=block_last && p-&next-&data.state==Free)//与后面的空闲块相连
p-&data.size+=p-&next-&data.
p-&next-&next-&prior=p;
p-&next=p-&next-&
if(p-&next==block_last && p-&next-&data.state==Free)//与最后的空闲块相连
p-&data.size+=p-&next-&data.
p-&next=NULL;
return OK;
//显示主存分配情况
void show()
int flag = 0;
cout&&"\n主存分配情况:\n";
cout&&"++++++++++++++++++++++++++++++++++++++++++++++\n\n";
DuLNode *p=block_first-&
cout&&"分区号\t起始地址\t分区大小\t状态\n\n";
"&&flag++&&"\t";
"&&p-&data.address&&"\t\t";
cout&&" "&&p-&data.size&&"KB\t\t";
if(p-&data.state==Free) cout&&"空闲\n\n";
else cout&&"已分配\n\n";
cout&&"++++++++++++++++++++++++++++++++++++++++++++++\n\n";
void main()
//算法选择标记
cout&&"请输入所使用的内存分配算法:\n";
cout&&"(1)首次适应算法\n(2)最佳适应算法\n(3)最差适应算法\n";
while(ch&1||ch&3)
cout&&"输入错误,请重新输入所使用的内存分配算法:\n";
Initblock(); //开创空间表
//操作选择标记
cout&&"请输入您的操作:";
cout&&"\n1: 分配内存\n2: 回收内存\n0: 退出\n";
if(choice==1) alloc(ch); // 分配内存
else if(choice==2)
// 内存回收
cout&&"请输入您要释放的分区号:";
free(flag);
else if(choice==0) //退出
else //输入操作有误
cout&&"输入有误,请重试!"&&
}分享到:更多发表评论:评论须知:1、评论每次加2分,每天上限为30;2、请文明用语,共同创建干净的技术交流环境;3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。推荐这篇日记的豆列
······&&&&最佳适应算法
&最佳适应算法
有关操作系统课程设计最佳适应适应算法的一些代码
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
操作系统下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
最佳适应算法
所需积分:2
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
最佳适应算法
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员}

我要回帖

更多关于 最佳适应算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信