一、实验目的
- 了解什么是操作系统的安全状态和不安全状态;
- 了解如何避免系统死锁。
- 理解银行家算法是一种最有代表性的避免死锁的算法,掌握其实现原理及实现过程。
二、实验内容
根据银行家算法的基本思想,编写和调试一个实现动态资源分配的模拟程序,并能够有效的避免死锁发生。
三、实验结果
可在此修改进程数和资源数
- 运行程序分别输入资源的总数量、资源的最大需求、进程获得的资源数量
之后会出现转台表,然后判断初始转台是否为安全
不安全状态:
安全状态:
- 如果为不安全状态,就会直接出现状态表程序结束。
如果为安全状态,就会出现 输入请求进程id 输入请求资源数 借此我们就可以调用银行家算法检查是否能够分配?
详细代码
#include#include #include #include #define M 3 //资源数 #define N 5 //进程数 int Resource[M]; //资源 int Max[N][M]; //资源的最大需求量 int Allocation[N][M]; // int Need[N][M]; //资源需求量 int Available[M]; //资源剩余量 int Work[M]; //存放系统可提供资源量 int Finish[N]; //标记系统是否有足够的资源分配给各个进程 int List[N]; //存放安全序列的下标序列 //创建初始状态 void initial() { int i,j; printf("输入M种资源的总数量(Resource):n"); for(i=0;i =0 && reqid



