任务五 银行家算法

2026/4/23 6:44:57

#include #include #include #ifndef MY_MAX #define MY_MAX 5 #endif

int max1[5][3]={ {7,5,3}, {3,2,2}, {9,0,2}, {2,2,2}, {4,3,3}

};/*最大分配需求矩阵*/ int allocation1[5][3]={ {0,1,0}, {2,0,0}, {3,0,2}, {2,1,1}, {0,0,2}

};/*已分配矩阵*/ int need1[5][3]={ {7,4,3}, {1,2,2}, {6,0,0}, {0,1,1}, {4,3,1} };/*现在需求矩阵*/

int available1[3]={3,3,2};/*现可利用矩阵*/

int max[10][10],allocation[10][10],need[10][10],available[10]; int n_proc;/*进程数*/

int type_src;/*资源种类数*/ int request[10][10];

int work[10];/*可供进程继续运行所需资源的向量*/ int finish[10]; int index[10];

int t=0;/*记录当前的进程数*/

int serial_proc=0;/*当前请求进程*/

/*-------------------------------------------------------------------------------------------------------------*/

/*手动输入时的初始化数据*/ void init0_data(void) {

int i,j;

n_proc=5; type_src=3;

for(i=0;i

void proc_require0(void) {

int j,tmp; require0: printf(\现在第?进程请求\\n\ scanf(\ if (serial_proc<0 ||serial_proc>=n_proc) { printf(\进程号非法(越界)\\n\ goto require0; } tmp=0; for(j=0;j

/*请求资源超过需求资源*/ int over_need()

{

int j;

for(j=0;jneed[serial_proc][j]) { printf(\请求资源超过需求资源\\n\ return 1; } return 0; }

/*请求资源超过可利用资源*/ int over_avail() {

int j;

for(j=0;javailable[j]) { printf(\请求资源超过可利用资源\\n\ return 1; } return 0; }

/*资源申请成功*/

int apply_success(int be_need,int be_avail) {

if (be_need==0 && be_avail==0) {

return 1; }

return 0; }

/*安全性检查*/ int security(int i,int j) {

int tmp;

for(j=0;j

for(i=0;i

tmp=1; for(j=0;jwork[j]) { tmp=0; break; } if(!tmp) continue; else { for(j=0;j

for(j=0;j

/*银行家算法主体*/ void bank() { int allocation_t[10],available_t[10],need_t[10];/*临时变量*/ int tmp; int j;

/*保留当前的资源分配*/ for(j=0;j

/*修改available,allocation,need矩阵*/ for(j=0;j


任务五 银行家算法.doc 将本文的Word文档下载到电脑
搜索更多关于: 任务五 银行家算法 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219