- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
首次适应算法最佳适应算法首次适应算法最佳适应算法
姓名:
学号:
实验名称:进程调度模拟实验
实验目的:了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。
实验内容:
#includeiostream.h
#include malloc.h
typedef struct Spare
{
int SA;
int size;
}spare;
void init(spare *S,int count)
{
cout请顺序输入存储区的起始地址和内存大小endl;
for(int i=0;icount;i++)
{
cinS[i].SAS[i].size ;
}
}
void sort(spare *s,int count)
{
spare min;
for(int i=0;icount;i++)
for(int j=i;jcount;j++)
if(s[j].SA s[i].SA )
{
min=s[j];
s[j]=s[i];
s[i]=min;
}
}
void FF(spare *s,int count)
{
int i=1,Jsize,j=0;
char c=Y;
cout请输入您想分配的作业endl;
while(c==Y )
{
cout作业i的大小endl;
cinJsize;
for(j;jcount;j++)
{
if(s[j].size=Jsize)
{
s[j].size-=Jsize;
cout该作业分配成功,起始地址为:s[j].SA endl;
s[j].SA +=Jsize;
break;
}
}
if(j==count)cout未找到合适的内存,作业分配失败endl;
cout还有作业要分配吗?,有Y,没有Nendl;
cinc;
i++;
}
}
void main()
{
int count;
cout请输入存储区的块数:endl;
cincount;
spare *s;
s=(spare *) malloc(count*sizeof(spare));
init(s,count);
cout首次适应算法:endl;
FF(s,count);
cout最佳适应算法endl;
sort(s,count);
FF(s,count);
}
实验结果:
文档评论(0)