操作系统实验报告 实验四 动态分区分配算法 学号: 班级: 姓名: 【实验目的】 通过这次实验,加深对动态分区分配算法的理解,进一步掌握首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的实现方法。 【实验内容】 问题描述: 设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为 n,空闲分区大小分别为 P1, … ,Pn,在动态分区分配过程中需要分配的进程个数为 m(m≤n),它们需要的分区大小分别为 S1, … ,Sm,分别利用四种动态分区分配算法将 m 个进程放入 n 个空闲分区,给出进程在空闲分区中的分配情况。 程序要求如下: 1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法四种动态分区分配算法模拟分区分配过程。 2)模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。 3)输入:空闲分区个数 n,空闲分区大小 P1, … ,Pn,进程个数 m,进程需要的分区大小 S1, … ,Sm,算法选择 1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法。 4)输出:最终内存空闲分区的分配情况。 实现提示: 用 C++语言实现提示: 1)程序中变量定义参考(根据需要可添加)如下: const int MaxNumber=100; int FreePartition[MaxNumber]; int FirstPartition[MaxNumber]; int CycleFirstPartition[MaxNumber]; int BestPartition[MaxNumber]; int WorstPartition[MaxNumber]; int ProcessNeed[MaxNumber]; int PartitionNum,ProcessNum; 2)页面置换的实现过程如下: ➢ 变量初始化; ➢ 空闲分区个数n,空闲分区大小P1, … ,Pn,进程个数m,进程需要的分区大小S1, … ,Sm,算法选择1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法; ➢ 根据用户选择的算法进行动态分区分配; ➢ 输出所有进程分配后的空闲分区分配情况。 实验要求: 1) 上机前认真复习动态分区分配算法,熟悉首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的计算过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。 【源程序】 头文件 First.h #include #include #include #include