实验六 死锁避免的算法
【实验目的】
1、 了解死锁避免的原理。
2、 研究银行家算法的实现方法。
【实验内容】
编程实现银行家算法。
通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。要求如下:
(1) 模拟一个银行家算法;
(2) 初始化时让系统拥有一定的资源;
(3) 用键盘输入的方式申请资源;
(4) 如果预分配后,系统处于安全状态,则修改系统的资源分配情况;
(5) 如果预分配后,系统处于不安全状态,则提示不能满足请求,
【实验报告】
1、 列出调试通过程序的清单,并附上文档说明。
2、
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
上机调试过程中所遇到的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
和解决方法及感想。
【实验相关资料】
一、死锁概念
多个并发进程,每个进程占有部分资源,又都等待其它进程释放所占资源,造成均不能向前推进的现象。
二、死锁的避免
死锁避免原理就是使系统始终处于安全状态。
安全状态:所谓安全状态是指能够找到一个安全序列,系统能够按照这个安全序列依次为进程分配资源,使所有进程都能执行完毕,如果找不到这样的安全序列,系统就处于不安全状态。
三、银行家算法
银行家算法要求每个进程的最大资源需求,其基本思想是:始终保持系统处于安全状态,当进程提出资源请求时,系统先进行预分配,再判断系统分配后是否仍然处于安全状态。如果仍然处于安全状态,就进行实际分配;如果处于不安全状态,则拒绝该进程的资源请求。
四、银行家算法相关数据结构
1. 最大需求矩阵:
d (t)=
其中,行
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示进程,列表示资源,如:d
=5表示第 i个进程最多需要j类资源5个。
2. 资源分配矩阵:
a(t)=
元素a
=8表示分配给第 i进程8个j类资源。
3. 需求矩阵:
b(t)=
元素b
=3表示第i类进程还需要3个j类资源。
最大需求矩阵=分配矩阵+需求矩阵,即d(t)=a(t)+b(t)。
_1194871361.unknown
_1194871510.unknown
_1194871752.unknown
_1194870889.unknown