下载后可任意编辑操作系统课程设计银行家算法的模拟实现12024 年 4 月 19 日下载后可任意编辑操作系统课程设计(银行家算法的模拟实现)一、设计目的 1、进一步了解进程的并发执行
2、加强对进程死锁的理解
3、用银行家算法完成死锁检测
二、设计内容给出进程需求矩阵 C、资源向量 R 以及一个进程的申请序列
使用进程启动拒绝和资源分配拒绝(银行家算法)模拟该进程组的执行情况
三、设计要求 1、初始状态没有进程启动
2、计算每次进程申请是否分配,如:计算出预分配后的状态情22024 年 4 月 19 日下载后可任意编辑况(安全状态、不安全状态),假如是安全状态,输出安全序列
3、每次进程申请被允许后,输出资源分配矩阵 A 和可用资源向量 V
4、每次申请情况应可单步查看,如:输入一个空格,继续下个申请
四、算法原理 1、银行家算法中的数据结构(1)、可利用资源向量 Available,这是一个含有 m 个元素的数组,其中的每个元素代表一类可利用资源的数目, 其初始值是系统中所配置的该类全部资源的数目,其数值随该类资源的分配和回收而动态改变
假如 Available[ j]=K,则表示系统中现有 Rj 类资源 K 个
(2)、最大需求矩阵 Max,这是一个 n*m 的矩阵,它定义32024 年 4 月 19 日下载后可任意编辑了系统中 n 个进程中的每一个进程对 m 类资源的最大需求
假如Max[i,j]=K,则表示进程 i 需要 Rj 类资源的最大数目为 K
(3)、分配矩阵 Allocation
这也是一个 n*m 的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数
假如Allocation[i,j]=K,则表示进程 i 当前已经分得 Rj 类资源的数目为K
(4)、需求矩阵 Need
这也是一个 n*m 的矩阵,用以表示每个进程尚需要的各类资源数