课程设计报告。
课程设计名称: 银行家算法模拟实现。
系别: 二系。
姓名: 曹睿。
班级: 信科1班。
学号: 20120202127
成绩。指导教师: 李洁。
开课时间: 2014—2015 学年 2 学期。
目录。第一章需求目的 1
第二章课题内容 1
第三章详细设计 1
3.1初始化 1
3.2安全性检查算法 2
3.3银行家算法 3
第四章调试分析 4
第五章总结 6
第六章附录 7
第一章需求目的。
1.1了解多道程序系统中,多个进程并发执行的资源分配。
1.2掌握死锁的产生的原因、产生死锁的必要条件和处理死锁的基本方法。
1.3掌握预防死锁的方法,系统安全状态的基本概念。
1.4掌握银行家算法,了解资源在进程并发执行中的资源分配策略。
1.5理解死锁避免在当前计算机系统不常使用的原因。
第二章课题内容。
2.1复习银行家算法,设计一个具有若干(不少于3种)资源和若干(不少于5个)进程的系统。
2.2定义系统的初始状态,即进程获得的资源数,还需要的资源数以及系统可用的资源数。
2.3以用户输入的方式提出资源请求,并用银行家算法避免可能发生的死锁,若系统安全,允许用户继续申请资源。
2.4设计的系统要求结构清晰,与用户的交互界面友好,能动态地实现资源的申请和分配。
第三章详细设计。
银行家算法可分为几个主要的功能模块,其描述如下:
3.1初始化。
由用户输入数据,分别对运行的进程数、总的资源种类数、总资源数、各进程所需要的最大资源数量(max),已分配的资源数量赋值。
初始化算法流程图:
3.2安全性检查算法。
1)设置两个工作向量work=**ailable;finish=false;
2)从进程集合中找到一个满足下述条件的进程,finish==false;
need<=work;
如找到,执行(3);否则,执行(4)
3)设进程获得资源,可顺利执行,直至完成,从而释放资源。
work+=allocation;
finish=true;
4).如所有的进程finish= true,则表示安全;否则系统不安全。
安全性算法流程图:
3.3银行家算法。
在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。
银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。它是最具有代表性的避免死锁的算法。
设进程j提出请求request [i],则银行家算法按如下规则进行判断。
1).如果request [j] [i]<=need[j][i],则转(2);否则,出错。
2).如果request [j] [i]<=**ailable[j][i],则转(3);否则,出错。
**ailable[i]-=request[j][i];
allocation[j][i]+=request[j][i];
银行家算法课程设计
信息与计算科学。操作系统原理。课程设计报告。题目 银行家算法程序设计。班级 姓名 专业 银行家算法程序设计。1.绪论 2 2.需求分析 2 2.1 功能需求 2 2.2 数据需求 2 3.总体设计 2 3.1 功能模块设 2 3.2 系统设计方案 3 3.3 开发工具 4 4.详细设计 4 4.1 ...
银行家算法 课程设计
课程设计报告。操作系统原理。银行家算法。银行家算法。一 银行家算法原理。银行家算法是一种最有代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全状态 如果存在一个由系统中所有进程构成的安全序列p1,pn,则系统处于安全状态。安全状态一定是没有死锁发生。不安全状态 不...
银行家算法课程设计
银行家算法的模拟。1 实验目的。银行家算法是避免死锁的一种重要方法。通过编写一个模拟动态资源分配的银行家算法程序,进一步深入理解死锁 产生死锁的必要条件 安全状态等重要概念,并掌握避免死锁的具体实施方法。2 任务及要求。编程序模拟银行家算法,要求能体现算法的全过程。3 算法及数据结构。3.1 算法的...