[页数]:15 [字数]:4611 [目录] 一、绪论 二、概要设计 三、详细设计 四、运行与调试 五、设计小结 六、谢辞 七、参考文献 [正文] 一、绪论 在多道程序系统中,虽可借助于多个进程的并发执行,来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险━━死锁。所谓死锁(Deadlock),是指多个进程在运行中因争夺资源而造成的一种僵局(Deadly_Embrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。 银行家算法是为了避免死锁的有效的算法,这个算法由于能够用于银行系统现金贷款的发放而的名。银行家算法规定进程向操作系统请求分配资源的时候当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。对于银行家算法的规则,我们可以利用程序来模拟这个过程就可以实现这个算法。 二、概要设计 设计思路 这个程序我的实现的总体思路是,首先设计一个类型即我们的要用到的进程类型MyPClass把我们的关于进程的数据和一些方法封装到这个类型里面,然后设计一个对话框用来做这个程序的控制面板窗口,在这个对话框上设置了现有资源和已经分配还资源后的情况,在这里面我还添加了几个按钮用来控制程序和触发一个操作。为了实现资源种类数量和进程数量的动态修改,我选择的是添加一个用来设置资源种类数量和进程数量的对话框,这样就可以动态修改资源种类和进程数量了,接着在用来作控制窗口的对话框(主界面)里面添加一些我们要用到的变量比如available[]数组等在主界面所属于的对话框类型里面我设计了几个主要的方法比如银行家算法方法banker()和安全性算法方法isSafe()等,实际运行的时候按钮事件就是调用这些方法来实现控制.这样就可以实现模拟演示。 ...... [参考文献] [1]《计算机操作系统》(汤子瀛、哲凤屏、烫小丹 著作 北京大学出版社) [2]《C++程序设计》(潭浩强 著 清华大学出版社) [3]《深入解析MFC》(赵剑云 译 中国电力出版社) [4] http://www.csdn.net [原文截取] 课程设计(论文)任务书 学 院 专 业 班 一、课程设计(论文)题目 银行家算法实现设计与实现 二、课程设计(论文)工作自 2008 年 1 月 14 日起至 2008 年 1 月 19 日止 三、课程设计(论文) 地点: 信 息 工 程 学 院 机 房 四、课程设计(论文)内容要求: 1.本课程设计的目的 为配合《计算机操作系统》课程的教学,通过模拟操作系统原理的实现,使 学生能更深刻地领会操作系统工作原理和操作系统实现方法的理解,并可练习程 序设计,特开设此课程设计。 2.课程设计的任务及要求 1)基本要求: 要求学生掌握计算机操作系统的基本概念,了解所模拟操作系统的基本原理 和特性,熟练掌握计算机操作系统中的各种常用算法,熟练掌握一种语言来完成 模拟该系统并培养设计技能,具有开发某一操作系统的软件设计基本能力。 2)课程设计论文编写要求 (1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标 准格式进行书写和装订; (2)课程设计报告(论文)包括目录、绪论、正文、设计小结、参考文献、附 录等; (3)正文部分应包含需求分析、系统功能流程图、系统结构..... |
[操作系统]银行家算法设计与实现
查看评论
已有0位网友发表了看法