计算机与信息工程系 《 计算机系统与系统软件》 课程设计报告 题 目:模拟实现银行家算法实现死锁避免 专 业: 信息管理与信息系统 班 级: 信管 082 班 学 号: 姓 名: 指导老师: 2010 年 9 月 9 日 一、实验题目 模拟实现银行家算法实现死锁避免 二、目的: 1、了解进程产生死锁的原因,了解为什么要进行死锁的避免
2、掌握银行家算法的数据结构,了解算法的执行过程,加深对银行家算法的理解
三、内容: 模拟实现银行家算法实现死锁避免
要求:初始数据(如系统在 T0 时刻的资源分配情况、每一种资源的总数量)从文本文件读入,文件中给出最大需求矩阵 Max 、分配矩阵Allocation,在程序中求得需求矩阵 Need 和可利用资源向量 Av ailable
四、实验提示: 1、整个银行家算法的思路
先对用户提出的请求进行合法性检查,再进行预分配,利用安全性检查算法进行安全性检查
2、算法用到的主要数据结构和 C 语言说明
(1)、可利用资源向量 INT AVAILABLE[M] M 为资源的类型
(2)、最大需求矩阵 INT MAX[N][M] N 为进程的数量
(3)、已分配矩阵 INT ALLOCATION[N][M] (4)、还需求矩阵 INT NEED[N][N] (5)、申请各类资源数量 int Requ est[x ]; // (6)、工作向量 int Work[x ]; (7)、int Finish[y ]; //表示系统是否有足够的资源分配给进程,0 为否,非 0 为是 3、银行家算法 (主程序) (1)、系统初始化
输入进程数量,资源种类,各进程已分配、还需求各资源数量,各资源可用数量等 (2)、输入用户的请求三元组(I,J,K),为进程 I 申请 K 个 J 类资源
(3)、检查用户的请求是否小于还需求的数量,条件是 K