1 / 20
文档名称:

内存分配算法实验报告.docx

格式:docx   大小:174KB   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

内存分配算法实验报告.docx

上传人:guoxiachuanyue015 2022/5/31 文件大小:174 KB

下载得到文件列表

内存分配算法实验报告.docx

文档介绍

文档介绍:1
成绩评定表
学生姓名
班级学号
专N
Ik
计算机科学
与技术
课程设计题目
内存分配算法


组长签字:
成绩
日期
2015年12月10日
2
课迎进入主存储器空间的分配与回收模拟系统《
cout〈〈endl〈〈endl〈〈”请输入初始空闲表文件名:”;
cin>〉fname;
if((fp二fopen(fname,"r"))==NULL)//读文件
cout〈endl〈〈"错误,文件打不开,请检查文件名!”〈〈endl;
else{
10
while(!feof(fp))//文件结束
{
fscanf(fp,”%d”,&frees[free_quantity].start);fscanf(fp,"%d",&frees[free_quantity]。length);free_quantity++;}
return1;}
return0;
}
//sort选择排序
voidsort(){
inti,j,p;
for(i=0;i〈free_quantity-1;i++){
p=i;
for(j=i+1;j〈free_quantity;j++)//空闲分区按地址递增的顺序排列
{if(frees[j].start〈frees[p].start)
{p=j;}
}
if(p!=i){
frees[free_quantity]=frees[i];
frees[i]=frees[p];
frees[p]=frees[free_quantity];}
}
}
//显示函数
voidview(){
inti;
cout〈〈endl〈<"-—-——-—-—--—--—--—-———-——-—---—-——-
—-"<<endl;
11
cout〈〈"当前空闲表:"〈〈endl;
cout〈〈"起始地址长度状态”〈〈endl;
12
for(i=O;i〈free_quantity;i++){(2);cout。width(12);cout〈〈frees[i].start;(10);
cout〈〈frees[i].length;
(8);
cout〈frees[i]。tag<〈endl;
}
cout〈〈endl〈〈”—-———---——---—-—-———--—--———
--"〈〈endl;
cout〈〈”当前已分配表:"〈〈endl;
cout〈〈"起始地址长度占用作业名”〈〈endl;
for(i=0;i〈occupy_quantity;i++){
cout。setf(2);
(12);
cout〈〈occupys[i].start;
cout。width(10);
cout〈〈occupys[i].length;
cout。width(8);
cout〈〈occupys[i]。tag〈〈endl;}
}
//最先适应分配算法
voidearliest(){
//空闲分区按地址递增的顺序排列
charjob_name[20];
intjob_length;
inti,j,flag,t;
cout〈〈endl〈〈"请输入新申请内存空间的作业名和空间大小:";cin〉〉job_name;//输入作业的名称
cin〉>job_length;//输入作业的长度flag=0;//分配成功与否信号
for(i=0;i〈free_quantity;i++){
if(frees[i].length〉二job_length){
13
flag=1;//可以分配
}}
if(flag==0)
{
cout〈endl〈〈"Sorry,当前没有能满足你申请长度的空闲内存,请稍候再试”〈endl;
}
else{
t=0;
i=0;
while(t==0)
{
if(frees[i].length〉=job_length)
//从空闲分区表顺序查找,直到找到第一能满足其大小要求的空闲分区为止
{t=1;}
i++;
}
i——;
occupys[occupy_quantity]。start二frees[i].start;//修改已分区的相关信息strcpy(occupys[occupy_quantity]。tag,job_name);occupys[occupy_quantity].length=job_length;
occupy_quantity++;
if(frees[i].length〉job_length)