}
Available[j] = Available[j] + Request[n][j]; Allocation[n][j] = Allocation[n][j] - Request[n][j]; Need[n][j] = Need[n][j] + Request[n][j]; } } }
bool Check() //安全性算法检测 { int work[M] ={0}; bool finish[N]; for(int j=0; j test++; } } } if(test == N) return true; else return false; } void show() { cout << \ cout << \资源请求\已分配资源\尚需资源\剩余可用资源\ cout << \进程名称\<< \ B C \<< \ B C \\A B C \ for(int i=0; i 六、 运行结果: 七、 实验心得: 这次的实验模拟实现银行家算法虽然用程序算法实现了模拟进程请求资源以及根据安全性检测是否要分配资源的整个过程,自己考虑整个代码的框架过程中期初觉得思路清晰,应该比较简单,但是列出框架以及主要函数之后开始用代码实现的时候,发现了很多隐藏的细节的考虑,比较繁琐而且环环相扣,要真的实现并没有当初以为的那么简单,比如我现在目前的算法虽然模拟了大致的过程,并且也可以不断循环请求,但是在进程请求资源那一块的实现还是有缺陷,没能很好的优化,目前只是如果有足够的资源,就让随机产生的进程i申请最大需求量,如果无法满足,则随机产生随机资源数目进行申请。但是这个请求资源并不是很优化需要进一步改造,但是还是对银行家算法有了更深入更清楚的了解,以后的程序编写不论是实验还是项目开发,无论大小,都应该把程序的整体框架构建好,提高重用性,再进行一步步实现。