可变分区首次适应算法--操作系统实验报告题目:可变分区首次适应算法指导老师:班级:姓名:学号:时间:实验三可变分区首次适应算法一、实验目的模拟内存分配,了解并掌握动态分区分配中所用的数据结构、分区分配算法。回顾链表的创建,插入,删除等基本操作;深刻理解首次适应内存分配算法。二、实验内容编程实现首次适应内存分配算法,并上机验证。实验环境:MicrosoftVisualStudio2010三、算法描述该程序用一个链表来模拟内存的空间分布。从键盘输入链表长度和第一个结点的首地址、以及其他各个结点所占空间大小。然后进行申请空间,并判断所申请的大小是否符合要求,能不能进行分配。本程序主要包括两大模块,一是建立链表模块,二是申请并分配空间模块。程序流程图如下:开始结束初始化是否可以进行分配输出内存分配情况否是是否继续否是输入申请内存空间大小内存分配并输出分配结果四、程序清单及简单注释//内存分配算法:#include#include#includeusingnamespacestd;intsize=0,count=0,part[1000],address[1000],flag[1000];//设定全局变量//*******************输出可视结果*****************//voidOutput(){intj;cout<<"输出内存分配情况:"<>size;cout<>start;cout<>part[i];address[i]=start;start=start+part[i];s=m;//m用来标记已分配内存的总的大小,s用来标记m之前的值m=m+part[i];flag[i]=1;//标识内存已分配if(m==size){cout<>contin;cout<>contin;cout<size){cout<>contin;cout<size)}//while}//**************************分配内存********************//voidDistribute(){inttag=0,space=0,i,j,situation=0;//situation用来表示分配是否成功cout<>space;cout<space&&flag[i]==0){flag[i]=1;cout<<"分配成功!"<=i+2;j--){part[j]=part[j-1];flag[j]=flag[j-1];}flag[i+1]=0;//多余的内存部分状态为未分配part[i+1]=part[i]-space;part[i]=space;//划出一部分内存空间分配给作业flag[count+1]=0;++count;//重新定义分区的首地址for(j=1;j