资源描述:
《操作系统实验四报告动态分区分配算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统实验报告实验四动态分区分配算法学号:班级:姓名:【实验目的】通过这次实验,加深对动态分区分配算法的理解,进一步掌握首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的实现方法。【实验内容】问题描述:设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为n,空闲分区大小分别为P1,…,Pn,在动态分区分配过程中需要分配的进程个数为m(m≤n),它们需要的分区大小分别为S1,…,Sm,分别利用四种动态分区分配算法将m个
2、进程放入n个空闲分区,给出进程在空闲分区中的分配情况。程序要求如下:1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法四种动态分区分配算法模拟分区分配过程。2)模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。3)输入:空闲分区个数n,空闲分区大小P1,…,Pn,进程个数m,进程需要的分区大小S1,…,Sm,算法选择1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法。4)输出:最终内存空闲分区的分配情况。实现提示:用C++语言实现提示:1)程序中
3、变量定义参考(根据需要可添加)如下:constintMaxNumber=100;intFreePartition[MaxNumber];intFirstPartition[MaxNumber];intCycleFirstPartition[MaxNumber];intBestPartition[MaxNumber];intWorstPartition[MaxNumber];intProcessNeed[MaxNumber];intPartitionNum,ProcessNum;2)页面置换的实现过程如下
4、:Ø变量初始化;Ø空闲分区个数n,空闲分区大小P1,…,Pn,进程个数m,进程需要的分区大小S1,…,Sm,算法选择1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法;Ø根据用户选择的算法进行动态分区分配;Ø输出所有进程分配后的空闲分区分配情况。实验要求:1)上机前认真复习动态分区分配算法,熟悉首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的计算过程;2)上机时独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截
5、图)。【源程序】头文件First.h#include#include#include#include#defineProprintfprintf("
6、-----+-----+-----+-----+-----+-----+-----+-----+-----
7、")#defineMyprintfprintf("
8、++++++++++++++++++++++++++++++++++++++++++++++++++++++
9、++++++++
10、")#defineMaxNum100typedefstructProcessPartition_struct{intFreePartition[MaxNum];//空闲分区大小charProcessName[MaxNum];//作业名称intProcessNeed[MaxNum];//作业需求空间大小intstate[MaxNum];//作业分配标志intPartitionNum,ProcessNum;//空闲分区个数,作业个数}Process;Processp;inti,j,k,
11、d,temp;charorder[MaxNum][MaxNum];charch[MaxNum];intm;//作业个数intn;//空闲分区个数intFirst();intCycleFirst();intBest();intWorst();intOption();//选择算法intPinput();//参数输入intPoutput();//结果输出intPinput()//参数输入{printf("请输入空闲分区个数:");scanf("%d",&n);printf("请依次输入空闲分区大小(KB)
12、:");for(i=0;i