操作系统课程设计银行家算法(6)
时间:2026-01-16
时间:2026-01-16
银行家算法,可运行的,完整的论文
则,系统处于不安全状态。
此过程由一个安全性检测函数实现:safeAlgorithm();//安全性检测算法
4、对进程申请资源的处理
当某一进程提出资源申请时,系统须做出判断,能否将所申请资源分配给该进程。设request为进程i的请求向量,如果request[j]=K,表示进程i需要K个j资源。当系统发出请求后,系统按下述步骤开始检查:
(1) 如果request[j]<=need[i][j],转向步骤2;否则报告出错,申请的资源大于它需要的最大值。
(2) 如果request[j]<=available[j],转向步骤3;否则报告出错,尚无足够的资源。
(3)系统试探着把资源分配给p[i],并修改下列数据结构中的值: available[j]=available[j]-request[j]
allocation[i][j]=allocation[i][j]+request[j]
need[i][j]=need[i][j]-request[j]
(4)系统进行安全性算法,检查此次分配后,系统是否还处于安全状态,若安全,把资源分配给进程i;否则,恢复原来的资源分配状态,让进程i等待。 整个过程由银行家算法实现:bankerAlgorithm()//利用银行家算法对申请资源对进行判定
四、算法描述
#include<string.h>
#include<stdio.h>
#define M 5 //定义进程数
#define N 3 //定义资源数 s
#define False 0
#define True 1
int Max[5][3]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; //每个进程对每类资源的最大需求
int Allocation[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};//
上一篇:现代文阅读、古诗文鉴赏教案
下一篇:最新人文地理知识总结电子教案