实验六 银行家算法(下)
一、实验说明
实验说明:本次实验主要是对银行家算法进行进一步的实践学习,掌握银行家算法的整体流程,理解程序测试时每一步的当前状态,能对当前的资源分配进行预判断。
二、实验要求
1、获取源代码
2、看懂大致框架
3、尝试运行并知道运行中输入的信息的意义
4、通过运行程序分配如下: 总需求:a 8 5 5; b 5 3 4; 已分配:a 4 2 3; b 4 2 2; 现在a 提出分配 1 1 1。 可以分配吗?
5、请从银行家算法的理论进行分析上述分配是否会造成死锁,如果会造成死锁,说明源代码并不完整,请同学改进完善源代码,使其能有效判断是否存在安全序列,进而拒绝不安全的分配要求。
三、实验步骤
1、在文档右边的虚拟化操作系统中,打开桌面的 Xfce 终端,输入cd Desktop
2、输入touch 6-1.c
3、输入gedit 6-1.c
4、在 gedit 里面输入源代码,点击 save 保存
5、关掉 gedit 编辑器
6、输入g++ -o 6-1 6-1.c
7、在桌面的 Xfce 终端继续输入命令./6-1
8、按要求输入并运行,观察结果
9、针对实验要求5,改进完善源代码.
四、实验报告要求 1、通过运行程序分配如下: 总需求:a 8 5 5; b 5 3 4; 已分配:a 4 2 3; b 4 2 2; 现在a 提出分配 1 1 1 完成
2、简述自己对银行家算法的理解?
银行家算法是避免死锁的算法,在每一个进程进入系统时,都必须申明在运行过程中所需要每种资源的最大单元数目,其数目不嫩超过系统所拥有的资源总量,当进程请求资源时,系统会确认是否有足够的资源分配给该进程,若有的话,还要进一步判断如果分配给该进程所申请的资源会不会使系统处于不安全状态,如果不会,才将资源分配给该进程。
3、针对实验要求5,改进完善源代码.对改进之处说明或截图,并重新进行前面的分配过程,并截图。
4、将最后的完整源代码复制。
#include
#i