1 / 23
文档名称:

操作系统实验 最佳适应算法最坏适应算法.doc

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

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

分享

预览

操作系统实验 最佳适应算法最坏适应算法.doc

上传人:hnxzy51 2020/11/20 文件大小:487 KB

下载得到文件列表

操作系统实验 最佳适应算法最坏适应算法.doc

相关文档

文档介绍

文档介绍:学号 P71514032 专业 计算机科学与技术 姓名
实验日期 2017/11/23 教师签字 成绩
实验报告
【实验名称】 基于顺序搜索的动态分区分配算法(二)
【实验目的】
理解在连续分区动态的存储管理方式下,如何实现贮存空间的分配与回收。
采用可变式分区管理,使用最佳适应算法实现主存空间的分配与回收。
采用可变式分区管理,使用最坏适应算法实现主存空间的分配与回收。
【实验原理】
C++语言程序设计
数据结构
最佳适应算法
最坏适应算法
数据结构和符号说明
1、bool ROM[N]; //定义主存信息,如果内存被占用,则标记为1,否则标记为0,设置内存单元为1024
2、pcb num[20];//定义作业数组,最大支持20个作业
3、typedef struct Pcb //定义作业结构体,包括名称,开始时间,大小,是否执行状态
{
char name[10];
int start;
int size;
int state=0;
} pcb;
主要函数:
void find_free_rom();//寻找空闲区
void sort1();//对空闲区进行排序从小到大
void sort1();//对空闲区进行排序从大到小
void show();//显示函数
void insert_pcb1(pcb &a);//最佳适应算法
void insert_pcb2(pcb &a);//最坏适应算法
void init();//初始化函数
算法流程图:
最佳适应算法:
最坏适应算法:
#include<>
#include<>
#define N 1024
bool ROM[N];
int p=0;
int count=0;
int free_rom_counter=0;//空闲区数目
typedef struct Pcb //进程结构体
{
char name[10];
int start;
int size;//大小
int state=0; //状态
} pcb;
pcb num[20];//进程数组
typedef struct Free_rom//空闲区结构体
{
int num;
int start;
int end;
int space;//空闲区大小
} Free_room;
Free_rom free_rom[100];//空闲区数组
void show()//显示空闲区信息
{
printf("****************************************************************\n\n");
printf("空闲区名\t开始地址\t\t大小\t\t结束地址\t\t\n");
for (int i=1; i<= free_rom_counter; i++)
printf("%d\t\t%d\t\t\t%d\t\t%d\t\t\n",free_rom[ i].num,free_rom[ i].start, free_rom[ i].space,free_rom[ i].end);
printf("\n");
printf("****************************************************************\n\n");
}
void find_free_rom()//寻找空闲区,更新空闲区数组
{
free_rom_counter=0;
int i,j,p;
for(i=0; i<N; i++)
if(ROM[i]==0)
{
p=i;
for(j=i; j<N; j++)
{
if(ROM[j]==0)
{
i=j;
continue;
}