银行家算法课程设计

发布 2022-10-01 22:30:28 阅读 7696

银行家算法。

一, 银行家算法原理说明。

我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。

为保证资金的安全,银行家规定:

(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;

(2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量;

(3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;

(4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。

操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配。

二, 银行家算法的数据结构。

1)可利用资源向量**ailable

是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果**ailable[j]=k,则表示系统中现有rj类资源k个。

2)最大需求矩阵max

这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果max[i,j]=k,则表示进程i需要rj类资源的最大数目为k。

3)分配矩阵allocation

这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果allocation[i,j]=k,则表示进程i当前已分得rj类资源的数目为k。

4)需求矩阵need。

这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果need[i,j]=k,则表示进程i还需要rj类资源k个,方能完成其任务。

need[i,j]=max[i,j]-allocation[i,j]

二, 银行家算法流程图。

四 ,**实现。

#include<>

#include<>

#include<>

#define true 1定义 ture =1

#define false 0定义 false=0

int **ailable[10可使用资源向量。

int max[10][10最大需求矩阵。

int allocation[10][10]=

for(i=1;i<=m;i++)

void request() 进程提出新申请。

printf("请输入申请资源的进程:")

scanf("%d",&a);

for(i=1;i<=n;i++)

for(i=1;i<=m;i++)

for(g=1;g<=m;g++)

if(finish[i]==false&&b==n)

finish[i]=true;

printf("$d ",i);/依次输出进程安全序列之一中每个元素。

printf("");

for(i=1;i<=m;i++)

if (f==m)else

void print()

printf("当前的系统状态");

printf目前占有量最大需求量尚需要量 进程");

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

for(j=1;j<=n;j++)

printf("系统剩余资源量。

for(i=1;i<=n;i++)

printf("");

void main()

switch(k)

case 1:enter();break;

case 2:request();break;

case 3:print();break;

银行家算法课程设计

信息与计算科学。操作系统原理。课程设计报告。题目 银行家算法程序设计。班级 姓名 专业 银行家算法程序设计。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 算法的...