银行家算法
2017-04-04 17:58:49 0 举报
银行家算法是一种避免死锁的经典算法,它是由艾兹格·迪杰斯特拉在1965年提出的。该算法主要通过模拟资源分配过程来防止系统进入不安全状态。在运行过程中,银行家算法会不断地检查系统中是否有足够的资源满足所有进程的需求,如果发现有进程无法得到所需资源,则该进程将被阻塞,直到系统有足够的资源满足其需求。此外,银行家算法还会根据当前系统状态调整各进程的请求资源量,以确保系统始终处于安全状态。总之,银行家算法通过合理的资源分配和状态控制,有效地避免了多道程序系统中的死锁问题。
作者其他创作
大纲/内容
true
系统处于不安全状态
设置两个临时变量Work=avaliable;Finish[i]=false
false
i=0;j=0;
i=0;
提出Requesti资源申请
jm
p 进程集合r 资源集合n 进程数量m 资源种类w 各类可用资源request[i]申请各类资源的数量矩阵Need(t)dij 进程pi还需j类资源的数目Allocation(t)aij pi已占有j类资源的数目max=Allocation(t)+Need(t)n个进程对于资源总的需求矩阵i j临时变量检测安全变量safe,初始化为0
Avaliable:=Avaliable-RequestiAllocation[i]:=Allocation[i]+ReauestiNeed[i]:=Need[i]-Requesti
safe==n;
RequestiNeed[i]
系统处于安全状态
输入最大需求量max 和已分配资源Allocation
j++;
输入 n和m
in
输入可用资源Avaliable
RequestiAvaliable
j++
i++&&im
初始化各个变量
Need[i][j]=Max[i][j]-Allocation[i][j]
i++&&im; safe++
输入进程Pi
pi需等待
0 条评论
下一页