中原工学院信息商务学院 操作系统课程设计报告
操 作 系 统 课 程 设 计
报 告
课程设计名称:银行家算法的模拟实现
专 业:计算机科与技术(软件工程方向)
班 级:软件***班
学 号:*** *
学生姓名:锦超 9817
指导教师:杨**
2010 年 6 月 26 日星期六
目录
一、实验目的…………………………………………………………………2
二、实验内容…………………………………………………………………2
三、实验步骤…………………………………………………………………3
(1) 需求分析…………………………………………………………………….3
(2) 概要设计…………………………………………………………………….3
(3) 详细设计…………………………………………………………………….3
(4) 调试分析……………………………………………………………………11
(5) 测试结果……………………………………………………………………11
(6)使用说明:………………………………………………………………….15
四、实验总结…………………………………………………………………15
五、附录:程序清单………………………………………………………15
六、参考资料………………………………………………………………….26
- 1 -
银行家算法的模拟实现
一、 实验目的
( 1)了解进程产生死锁的原因,了解为什么要进行死锁的避免。
(2)掌握银行家算法的数据结构,了解算法的执行过程,加深对银行家算法的 理解。
二、 实验内容
编制银行家算法通用程序 ,并检测所给状态的系统安全性 。
( 1)银行家算法中的数据结构 :
可利用资源向量 Available。银行家算法课程设计这是一个含有 m 个元素的数组 ,其中的 每一个元素代表一类可利用的资源数目 ,其初始值是系统中所配置的该类 全部可用资源的数目 ,其数值随该类资源的分配和回收而动态地改变 。Available[j]=K,则表示系统中现有 Rj 类资源 K 个 。
最大需求矩阵 Max 。这是一个 n*m 的矩阵 ,它定义了系统中 n 个进程 中的每一个进程对 m 类资源的最大需求 。如果 Max[i,j]=K,则表示进程 i 需要 Rj 类资源的最大数目为 K。
分配矩阵 Allocation。这也是一个 n*m 的矩阵 ,它定义了系统中每一 类资源 当前已分配给没一进程的资源数 。如果 Allocation[i ,j]=K ,则 表示 进程 i 当前已分得 Rj 类资源的数目为 K。
需求矩阵 Need。这也是一个 n*m 的矩阵 ,用以表示每一个进程尚需的 各类资源数 。如果 Need[i,j]=K,则表示进程 i 还需要 Rj 类资源 K 个 ,方 能完成其任务 。
上述三个矩阵存在如下关系 :
Need[i,j]= Max[i,j]- Allocation[i,j] 2)银行家算法
设 Request[i] 是进程 Pi 的请求向量 ,如果 Request[i ,j]=K,表示 进程 Pi 需要 K 个 Rj 类型的资源 。当 Pi 发出资源请求后 ,系统按下述步 骤进行检查 :
如果 Request[i ,j]<= Need[i,j] ,便转向步骤 2;否则认为出错 , 因为它所需要的资源数已超过它所宣布的最大值 。
- 2 -
中原工学院信息商务学院 操作系统课程设计报告
二、 实验步骤
(1)需求分析
编写银行家算法通用程序 ,并检测所给状态的系统安全性 ,可利用资
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-32717-1.html
敢进领海一个毫米就打你个满地找牙