1、 课程设计任务书 2011 2012 学年第学年第 2 学期学期 计算机与通信 学院(系、部) 计算机科学与技术 专业 09-3 班级 课程名称: 操作系统 设计题目: 模拟银行家算法 完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 24 日共 1 周 内 容 及 任 务 一、课程设计目的 通过设计和调试银行家算法通用程序,加深对死锁概念和死锁避免方法的了解。 二、课程设计内容 编制银行家算法程序,并检测所给状态的系统安全性。 进 度 安 排 起止日期 工作内容 2011-12-192011-12-20 确定银行家算法所需的数据结构和算法分析 2011-12-2020
2、11-12-21 根据算法画出流程图,然后编码实现算法 2011-12-222011-12-24 对程序的调试、修改、改进。编写设计说明书 主 要 参 考 资 料 1 孟庆昌,牛欣源编著。操作系统(第二版) 。电子工业出版社。2010-10. 2 徐虹,何嘉,张钟澎编著。操作系统实验指导基于 Linux 内核(第二版) 。 清华大学出版社。2009-08. 指 导 教 师 (签字) : 年 月 日 系 ( 教 研 室 ) 主 任 ( 签字) : 年 月 日 2 一、课程设计目的一、课程设计目的 通过设计和调试银行家算法通用程序, 加深对死锁概念和死锁避免方法的了 解。 二、课程设计内容二、课程
3、设计内容 编制银行家算法程序,并检测所给状态的系统安全性。 三、算法的原理三、算法的原理 银行家算法是一种最有代表性的避免死锁的算法。要解释银行家算法,必须 先解释操作系统安全状态和不安全状态。 安全状态:如果存在一个由系统中所有进程构成的安全序列 P1,Pn, 则系统处于安全状态。安全状态一定是没有死锁发生。 不安全状态:不存在一个安全序列。不安全状态不一定导致死锁。 那么什么是安全序列呢? 安全序列:一个进程序列P1,Pn是安全的,如果对于每一个进程 Pi(1i n) ,它以后尚需要的资源量不超过系统当前剩余资源量与所有进程 Pj (j Availablej; coutAllocation
4、ij;coutMaxij;coutNeedij;coutRequest_Num; /输入申请资源的进程个数。 7 couti; thedoing=i; /输入请求资源的进程号。 coutRequestij; /输入i进程对各类资源的申请个数。 / /进程 i 的资源预分配 int aa=1; /控制变量aa是用于判断是否能对i进程的申请进行预分配。 for(j=0;jm;j+) if (!(Requestij=Needij if(aa=1) /如果aa=1,即所申请的所需要的,并且所申请的可利用的。 /就可进行预分配。 for(j=0;jm;j+) /下面是进行预分配时所要改变的相关变量参数。 Availablej= Available