银行家算法课程设计报告

发布 2022-10-01 22:38:28 阅读 5596

课程设计报告。

课程设计名称: 银行家算法模拟实现。

系别: 二系。

姓名: 曹睿。

班级: 信科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 算法的...