实验三 银行家算法一、实验内容简要描述1. 实验目标:加深了解有关资源申请、避开死锁等概念,并体会与了解死锁与避开死锁得具体实施方法
要求编写与调试一个系统动态分配资源得简单模拟程序,观察死锁产生得条件 ,并采纳银行家算法,有效得防止与避开死锁得发生
2. 实验要求:银行家算法就是避开死锁得一种重要方法,本实验要求用高级语言编写与调试一个简单得银行家算法程序
用银行家算法实现资源分配
设计五个进程{p 0,p 1,p2,p 3,p4}共享三类资源{A,B,C}得系统,例如,{A,B,C}得资源数量分别为 1 0,5,7
进程可动态地申请资源与释放资源,系统按进程得申请动态地分配资源,要求程序具有显示与打印各进程得某一个时刻得资源分配表与安全序列;显示与打印各进程依次要求申请得资源号以及为某进程分配资源后得有关资源数据
二、报告主要内容1. 设计思路A、 设计进程对各在资源最大申请表示及初值确定
B、 设定系统提供资源初始状态
C、 设定每次某个进程对各类资源得申请表示
D、 编制程序,依据银行家算法,决定其申请就是否得到满足
2. 主要数据结构假设有 M 个进程 N 类资源,则有如下数据结构:M A X[M*N] M 个进程对 N 类资源得最大需求量AVAIL A BL E[N] 系统可用资源数ALL O CATIO N[M*N] M 个进程已经得到 N 类资源得资源量NEED[M*N] M个进程还需要 N 类资源得资源量银行家算法:设进程 I 提出请求 Req u est[N],则银行家算法按如下规则进行推断
(1)假如Re qu e st[N]〈=N EED[I,N],则转(2);否则,出错
(2)假如R eque s t[N]