操作系统实验内存分配
#include<iostream.h>
#include <malloc.h>
typedef struct Spare
{
int SA;
int size;
}spare;
void init(spare *S,int count)
{
cout<<"请顺序输入存储区的起始地址和内存大小"<<endl; for(int i=0;i<count;i++)
{
cin>>S[i].SA>>S[i].size ;
}
}
void sort(spare *s,int count)
{
spare min;
for(int i=0;i<count;i++)
for(int j=i;j<count;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;
cin>>Jsize;
for(j;j<count;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,没有N"<<endl;
cin>>c;
i++;
}
}
void main()
{
int count;
cout<<"请输入存储区的块数:"<<endl;
cin>>count;
spare *s;
s=(spare *) malloc(count*sizeof(spare));
init(s,count);
cout<<"首次适应算法:"<<endl;
FF(s,count);
cout<<"最佳适应算法"<<endl;
sort(s,count);
FF(s,count);
}
操作系统实验内存分配