资源描述:
《动态分区分配算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、题目:动态分区分配算法班级:姓名:学号:完成日期:一、需求分析1、问题描述:设计程序模拟四种动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为n,空闲分区大小分别为P1,…,Pn,在动态分区分配过程中需要分配的进程个数为m(m≤n),它们需要的分区大小分别为S1,…,Sm,分别利用四种动态分区分配算法将m个进程放入n个空闲分区,给出进程在空闲分区中的分配情况。2、基本要求:一个完整的系统应具有以下功能:1)利用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应
2、算法四种动态分区分配算法模拟分区分配过程。2)模拟四种算法的分区分配过程,给出每种算法进程在空闲分区中的分配情况。3)输入:空闲分区个数n,空闲分区大小P1,…,Pn,进程个数m,进程需要的分区大小S1,…,Sm,算法选择1-首次适应算法,2-循环首次适应算法,3-最佳适应算法,4-最坏适应算法。4)输出:最终内存空闲分区的分配情况。3、测试数据:见上机指导书测试数据。4、实现提示: 1)程序中变量定义参考(根据需要可添加)如下:constintMaxNumber=100;intFreePartition[MaxNumbe
3、r];intFirstPartition[MaxNumber];intCycleFirstPartition[MaxNumber];intBestPartition[MaxNumber];intWorstPartition[MaxNumber];intProcessNeed[MaxNumber];intPartitionNum,ProcessNum;2)页面置换的实现过程如下:Ø变量初始化;Ø空闲分区个数n,空闲分区大小P1,…,Pn,进程个数m,进程需要的分区大小S1,…,Sm,算法选择1-首次适应算法,2-循环首次适应算
4、法,3-最佳适应算法,4-最坏适应算法;Ø根据用户选择的算法进行动态分区分配;Ø输出所有进程分配后的空闲分区分配情况。二、概要设计1.变量描述intm,n;charResName[MaxNumber];charProName[MaxNumber];intAvailable[MaxNumber];intMax[MaxNumber][MaxNumber];intAllocation[MaxNumber][MaxNumber];intNeed[MaxNumber][MaxNumber];2.主程序的流程以及各程序模块之间的调用关系
5、:(1).资源分配表初始化(Initialization)(2).读取资源分配表(Resource)(3).安全性算法(Safety)(4).银行家算法(Order)(5).申请需求后的银行家算法(Request)(6).结束程序三.详细设计#include"suanfa.h"//--------------------------主函数------------------------------intmain(){cout<<"--------关闭窗口则退出.-----------"<6、ion[MaxNumber];intFirstPartition[MaxNumber];charName[MaxNumber];intCycleFirstPartition[MaxNumber];intBestPartition[MaxNumber];intWorstPartition[MaxNumber];intProcessNeed[MaxNumber];intPartitionNum,ProcessNum;intk=1;while(k){charchioce;cout<<"请键入一个选择功能符(I:Initializa
7、tion,F:First,N:Next,"<>chioce;switch(chioce){case'I':Initialization(Name,FreePartition,ProcessNeed,ProcessNum,PartitionNum);break;//初始化case'F':First(Name,FreePartition,ProcessNeed,FirstPartition,ProcessNum,PartitionNu
8、m);break;//首次适应算法case'N':Next(Name,FreePartition,ProcessNeed,CycleFirstPartition,ProcessNum,PartitionNum);break;//循环首次适应算法case'B':Best(Name,FreeP