下载此文档

操作系统 首次最佳适应算法.doc


文档分类:金融/股票/期货 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
学号专业姓名
实验日期教师签字成绩
实验报告
【实验名称】采用可变式分区管理,使用首次获最佳适应算法实现内存分配与回收
【实验目的与原理】
1、理解首次获最佳适应算法的内涵,并熟练掌握该算法。
2、学会可变式分区管理的原理是即在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。
3、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区没有时应将空闲区一分为二。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。
4、当一个作业执行完成时,作业所占用的分区应归还给系统。作业的释放区与空闲区的邻接分以下四种情况考虑:
①释放区下邻(低地址邻接)空闲区;
②释放区上邻(高地址邻接)空闲区
③释放区上下都与空闲区邻接;
④释放区与空闲区不邻接。
【实验内容】
#include<>
#include<iostream>
#include<string>
using namespace std;
const int MAXJOB=100;//定义表最大记录数
typedef struct node
{
int front;
int length;
char data[20];
}job;
job frees[MAXJOB];//定义空闲区表
int free_quantity;
job occupys[MAXJOB];//定义已分配区表
int occupy_quantity;
//初始化函数
void initial()
{
int i;
for(i=0;i<MAXJOB;i++)
{
frees[i].front=-1;
frees[i].length=0;
strcpy(frees[i].data,"free");
occupys[i].front=-1;
occupys[i].length=0;
strcpy(occupys[i].data," ");
}
free_quantity=0;
occupy_quantity=0;
}
//创建空闲分区表
int creatfree()
{
FILE *fp;
char fname[20];
cout<<"请输入空闲区数据文件来源的文件名:";
cin>>fname;
if((fp=fopen(fname,"r"))==NULL){
cout<<"错误,文件打不开,请检查文件名"<<endl;
}
else{
while(!feof(fp))
{
fscanf(fp,"%d\t%d\n",&frees[free_quantity].front,&frees[free_quantity].length);
free_quantity++;
}
cout<<"空闲的分区表已建立!\n";
return 1;
}
return 0;
}
void sort()//将free空间安首地址从小到大的顺序排列
{
int i,j,p;
for(i=0;i<free_quantity-1;i++)
{
p=i;
for(j

操作系统 首次最佳适应算法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xunlai783
  • 文件大小56 KB
  • 时间2017-12-19