实验四 操作系统-动态分区分配算法 萨斯的发生的v 设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为 n,空闲分区大小分别为 P1, … ,Pn,在动态分区分配过程中需要分配的进程个数为 m(m≤n),它们需要的分区大小分别为 S1, … ,Sm,分别利用四种动态分区分配算法将 m 个进程放入 n 个空闲分区,给出进程在空闲分区中的分配情况。 程序要求如下: 1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法四种动态分区分配算法模拟分区分配过程。 2)模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。 3)输入:空闲分区个数 n,空闲分区大小 P1, … ,Pn,进程个数 m,进程需要的分区大小 S1, … ,Sm,算法选择 1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法。 4)输出:最终内存空闲分区的分配情况。 代码实现: #inclu de #inclu de #inclu de u sing namespace std; const int Max Nu mber=100; int FreePartition[MaxNumber];//空闲分区大小 int FirstPartition[MaxNumber];//1-首次适应算法 int CycleFirstPartition[MaxNumber];//2-循环首次适应算法 int BestPartition[MaxNumber];//3-最佳适应算法 int WorstPartition[MaxNumber];//4-最坏适应算法 int ProcessNeed[MaxNumber];//进程需要的分区大小 int PartitionNum,ProcessNum; char ProcessName[MaxNumber];//进程名 char ProcessPartition[MaxNumber];//进程分配的序列 int Partition[MaxNumber]; char str[MaxNumber][MaxNumber]; void FirstFit(int n,int m); void NextFit(int n,int m); void BestFit(int n,int m); void WorstFit(int n,int m); void Print(int n, int m); void Print2(int n, int m); //======================================================== void FirstFit(int n, int m) { cout<<"选择了首次适应算法!"<