关于操作系统-银行家算法的阐述:

本文详细介绍银行家算法的解题步骤及应用。通过明确Need[], Max[], Allocation[], Available[], Request[]等概念, 并通过一系列判断条件确保系统的安全性。具体包括需求验证、资源分配模拟以及安全性算法执行等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容是笔者整合网络资源以及个人理解所得:

银行家算法解题步骤:

先明确几个概念:Need[ ] = Max[ ] - Allocation[ ];

                            Available[ ] //当前系统可用的该种资源个数

                            //Need:宣布当前所需要的资源个数;Max:进程需要的最大资源;Allocation:已分配的资源个数。

                            Request[ ]:是进程所发出的请求向量个数。

①:while(Request[ ]>=Need[ ])    //请求的资源量和你声明的Need-----------------大小关系是否相符。(如果>则进程说谎,不予执行)

②:while(Request[ ]>=Available)//如果小于,则wait进入等待队列?

③:试探性修改数据结构:(模拟假设分配成功后)

              Available=available[ ] - request[ ];

                allocation= allocation[ ] + request[ ];

                    Need = Need[ ] - Request[ ];


④:执行安全性算法:

能够找一组安全的序列是指完成任务。具体步骤:

定义:Work[]=Allocation[];

boolean Finish[]=flase;

for(int i:总共的进程数){

    while(Need[]<=Work[]){

        Work[ ] = Work[ ]+Need[ ]

    }

}


Finish[ ] = true;

//如果全部Finish[ ]=true执行成功


//系统判定可以分配




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值