教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

内存分配算法实验报告(2)

来源:网络收集 时间:2025-09-15
导读: 图4-2 5.主要源代码 #include #include #include #include const int MAXJOB=100; //定义表最大记录数 typedef struct node{ int start; //空闲分区的起始地址 int length; //空闲分区的长度 char tag[20]; //分区

图4-2

5.主要源代码

#include #include #include #include

const int MAXJOB=100; //定义表最大记录数

typedef struct node{

int start; //空闲分区的起始地址 int length; //空闲分区的长度 char tag[20]; //分区信息是否已分配 }job;

job frees[MAXJOB]; //定义空闲区表 int free_quantity; //空闲区的个数

6

job occupys[MAXJOB];//定义已分配区表 int occupy_quantity; //已分配区的个数

//初始化函数 void initial() { int i;

for(i=0;i

frees[i].start=-1; frees[i].length=0;

strcpy(frees[i].tag,\

occupys[i].start=-1; occupys[i].length=0;

strcpy(occupys[i].tag,\free_quantity=0; occupy_quantity=0; }

//读数据函数 int readData() { FILE *fp; char fname[20];

cout<>fname;

if((fp=fopen(fname,\读文件

cout<

while(!feof(fp)) //文件结束

7

《 \ 《 {

fscanf(fp,\ fscanf(fp,\ free_quantity++; } return 1; } return 0; }

//sort选择——排序 void sort() { int i,j,p;

for(i=0;i

for(j=i+1;j

frees[free_quantity]=frees[i]; frees[i]=frees[p];

frees[p]=frees[free_quantity]; } } }

//显示函数 void view() { int i;

cout<

cout<<\起始地址 长度 状态\for(i=0;i

8

cout.setf(2); cout.width(12); cout<

cout<

cout<

cout<<\起始地址 长度 占用作业名\for(i=0;i

cout<

cout<

//最先适应分配算法 void earliest() {

//空闲分区按地址递增的顺序排列 char job_name[20]; int job_length; int i,j,flag,t;

cout<>job_name; //输入作业的名称 cin>>job_length; //输入作业的长度

9

flag=0; //分配成功与否信号 for(i=0;i=job_length) { flag=1; //可以分配 } } if(flag==0) {

cout<

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) {

frees[i].start+=job_length; frees[i].length-=job_length; }

else //刚好分配则空闲分区数减一

10

内存分配算法实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/566414.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)