操作系统实验三 【实验题目】:动态分区分配算法 【实验目的】 通过这次实验,加深对动态分区分配算法的理解,进一步掌握首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的实现方法。 【实验内容及要求】 问题描述: 设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为 n,空闲分区大小分别为 P1, … ,Pn,在动态分区分配过程中需要分配的进程个数为 m(m≤n),它们需要的分区大小分别为S1, … ,Sm,分别利用四种动态分区分配算法将 m 个进程放入 n个空闲分区,给出进程在空闲分区中的分配情况。 程序要求: 1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法四种动态分区分配算法模拟分区分配过程。 2)模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。 3)输入:空闲分区个数 n,空闲分区大小 P1, … ,Pn,进程个数 m,进程需要的分区大小 S1, … ,Sm。 4)输出:首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法,最终内存空闲分区的分配情况。 实现源代码: #include #include #include #include #define max 100 using namespace std; int work_num; int zone_num; struct Data{ int data; char name; }; Data *d=new Data[max]; struct Table{ int data; char array[max]; int length; }; Table *T=new Table[max]; Table *temp=new Table[max]; void Init() { ifstream inf("DTFQ.txt"); int i,j; char ch; inf>>work_num; cout<<"作业数:"<>zone_num; cout<<"空闲分区数:"<>d[i].data; cout<>T[j].data; temp[j].data=T[j].data; T[j].length=0; temp[j].length=0; cout<