网站微信建设运维经验分享图,免费域名空间国外,wordpress自动压缩图片,葫芦岛建设工程信息网站选择一种高级语言如C/C等#xff0c;编写一个银行家算法的模拟实现程序。1) 设计相关数据结构#xff1b;2) 实现系统资源状态查看、资源请求的输入等模块#xff1b;3) 实现资源的预分配及确认或回滚程序#xff1b;4) 实现系统状态安全检查程序#xff1b;5) 组装各模块… 选择一种高级语言如C/C等编写一个银行家算法的模拟实现程序。1) 设计相关数据结构2) 实现系统资源状态查看、资源请求的输入等模块3) 实现资源的预分配及确认或回滚程序4) 实现系统状态安全检查程序5) 组装各模块成一个完整的模拟系统。 1设计思想
1、数据结构设置最大需求矩阵、系统已分配矩阵、还需要资源矩阵、可用资源矩阵。 2、初始化数据已经分配矩阵初始化为零输入系统可用资源数此时系统可分配量等于系统可用量。输入进程数量和各进程最大需求矩阵的值如果资源最大需求量大于系统资源最大量则重新输入。输入各个进程已经分配的资源需求量当分配的资源大于最大量则重新输入此时还需要资源数量矩阵等于进程最大需求量减已经分配的资源矩阵统计已经分配给进程的资源数使得可分配资源量矩阵等于它减去已经分配的资源数量。 3、显示资源分配矩阵输出系统目前可用的资源输出系统当前的资源分配情况包括进程名、最大需求矩阵、已分配矩阵、还需资源量矩阵。 4、判断是否处于安全状态。设置矩阵存放系统可提供的资源量初始化等于可分配资源量矩阵设置Finish标记系统是否有足够的资源分配给各个进程当需要资源矩阵小于等于可分配矩阵时表示进程可以分配将可分配矩阵加上该进程已经分配的资源并将进程列入安全序列中。遍历Finish数组当数组等于False时表示系统不安全否则表示系统是安全的输出进程运行数组安全序列。 5、当进程是安全状态时利用银行家算法对申请的资源尝试分配输入进程要申请的资源个数。判断申请是否大于需求量当要申请的资源大于它需要的资源时表示分配不合理否则当要申请的资源不大于它需要的资源并且申请的资源不大于当前可分配的资源数时分配资源寻找安全序列根据进程需求量尝试分配资源可分配资源等于可分配资源减去申请资源已经分配资源等于已经分配资源加上申请资源需求资源等于需求资源减去申请的资源显示分配后的资源量。如果找不到安全序列则尝试分配资源作废将矩阵资源数量恢复。 2功能函数设计 void init() 数据初始化 void showdata()//显示资源分配矩阵 int test(int i)//试探讲资源分配给第i个进程 int Retest(int i)//试探性分配资源作废 int safe()//安全性算法 void bank()//利用银行家算法对申请资源进行式分 3结果演示 算法举例假设系统中有五个进程{P0P1P2P3P4}和三种类型的资源{ABC}每一种资源的数量分别是10、5、7在T0时刻的资源分配情况如表1所示。请问T0时刻的状态是否安全如果进程P1发出请求Request11,02系统能否将资源分配给他如果进程P4发出请求Request43,30系统能否将资源分配给他 1、数据初始化
2、T0时刻是否安全
3、如果进程P1发出请求Request11,02
4、如果进程P4发出请求Request43,30