文档详情

汪玮操作系统银行家算法.doc

发布:2017-03-23约1.02万字共18页下载文档
文本预览下载声明
操作系统课程设计任务书 学 院 计算机与信息工程学院 专 业 网络工程 课程名称 操作系统 题 目 银行家算法的实现 完成期限 自2013年6月3日至2013年6月30日共4周 内 容 及 任 务 一、项目的目的 1.定义相关数据结构; 2.编程实现银行家算法; 3.分析和验证银行家算法程序。 二、项目任务的主要内容和要求 根据银行家算法的基本思想,设计相关数据结构,编写程序实现银行家算法中各个功能模块,并通过数据验证该算法;按照要求撰写课程设计报告。 三、项目设计(研究)思路 银行家算法是一个用来预防系统进入死锁状态的算法,用它可以判断系统的安全性,如果系统当前处于安全状态,则可以为申请资源的进程分配资源,如果不是安全状态,则不能为申请资源的进程分配资源。 银行家算法执行过程中,首先判断申请资源的进程所申请的资源数目是否合法,若是合法的,则可以为其进行试分配,再利用安全性算法求出安全序列,如果存在安全序列,则说明可以给申请资源的进程分配资源,分配成功,继续为其它进程服务。如果找不到安全序列,则说明为该进程分配资源后系统会进入不安全状态,所以不能为该进程分配资源,使该进程进入阻塞状态。若申请资源的进程申请的资源数目不合法,则不需要进行试分配,直接使其进入阻塞状态,处理其他申请资源的进程。 首先对算法的设计从总体上进行了分析,然后分析各个细节,再对算法分模块设计,并对各个模块的算法思想通过流程图表示,分块编写代码,并进行调试和测试,最后进行组装测试及系统测试,使其成为一个可以用来判断系统安全状态的程序。 四、具体成果形式和要求 1.深入理解银行家算法。 2.用C语言编程实现银行家算法。 3.建立相对友好的界面。 4.撰写课程设计文档。 进 度 安 排 起止日期 工作内容 2013.6.3—2013.6.8 分析题目,分配任务,查找资料 2013.6.9—2013.6.24 编写源代码,测试并修改 2013.6.25—2013.6.30 书写课程设计报告 主 要 参 考 资 料 1.汤子瀛.计算机操作系统(第三版)[M].西安电子科技大学出版社.2009; 2.方敏.操作系统教程[M].西安电子科技大学出版社.2006; 3.周湘贞.操作系统原理与实践教程[M].清华出版社.2005; 4严蔚敏.数据结构(C语言版)[M].清华大学出版社.2009; 指导教师 意见 (签字): 年 月 日 系(教研室)主任意见 (签字): 年 月 日 操作系统设计说明书 学院名称: 计算机与信息工程学院 班级名称: 网工111班 学生姓名: 汪玮,金良民,李亮,何玉琴,李宁 学 号: 2011211301、2011211272、2011211277 2011211265、2011211278 题 目: 银行家算法的实现 指导教师 姓 名: 赵国柱 起止日期:自2013年6月3日至2013年6月30日 第一部分:正文部分 1 一、选题背景 1 二、设计思路 1 三、过程论述 1 3.1 全性算法的算法思想 1 3.1.1 银行家算法中的数据结构 1 3.1.2.设置向量 2 3.1.3.安全性检测流程图 2 3.2.银行家算法的算法思想 4 3.2.1. 银行家算法 4 3.2.2. 银行家算法流程图 4 四、结果分析 5 五、结论 8 第二部分:参考文献 8 第三部分: 指导教师评语 9 第四部分:成绩评定 9 附录 10 第一部分:正文部分 一、选题背景 在具有多道程序并发执行能力的系统中,系统资源的利用率、进程执行的效率都大幅增加,但可能发生“死锁”的危险。所谓死锁,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。而死锁产生的原因有两点:竞争资源和进程推进的顺序不合法。为了避免死锁,使得进程的执行能够顺利完成,引入银行家算法进行解决。银行家算法是具有代表性的避免死锁的算法,由于该算法能用于银行系统现金贷款的发放而得名。 二、设计思路
显示全部
相似文档