操作系统-银行家算法课设

本文介绍了银行家算法,一种用于避免操作系统中死锁的策略。通过分析进程的需求和资源分配,系统在分配资源前会检查是否会导致不安全状态。银行家算法涉及数据结构设计和安全性算法模块,确保系统在分配资源后仍能保持安全。文章还包含了程序概要设计和部分代码测试。
摘要由CSDN通过智能技术生成

1.需求分析

       死锁是当多个进程因竞争资源而造成的一种僵局(每个进程所需资源被另一个进程所占用),若无外力作用,这些进程都无法向前推进。死锁的出现无疑会对用户产生影响,出于方便用户使用的目的,银行家算法就被用来避免死锁的产生。需要注意的是,避免死锁同样是属于事先预防的策略,并不是事先采取某种限制措施来破坏产生死锁的必要条件,而是在资源动态分配中防止系统进入不安全状态,以避免发生死锁。

        银行家算法是将待分配的资源进行预分配,对接下来多个进程能否顺利地发生进行评估。当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程。若有,再进一步计算在将这些资源分配给进程后,是否会是系统处于不安全状态。如果不会,才将资源分配给它,否则让进程等待。

       此系统需要注意的问题和可以完成的功能如下:

(1)进程的已分配数量和需要的数量相加不能超过此类资源的总数、在进行输入时,每一项的Max和Allocation依次输入,中间用空格隔开。

(2)系统会自动输出Need矩阵,若安全,系统会显示安全并给出安全序列若不安全则显示不安全。

     (3)能判断给出的进程是否安全并给出安全序列,若此时有进程提出新的需求,还可以继续判断。

2 概要设计

(1)数据结构:

数组存储各变量矩阵

#define False 0

#define True 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值