美文网首页
银行家以及哲学家算法

银行家以及哲学家算法

作者: Catcher07 | 来源:发表于2018-07-23 10:05 被阅读0次

死锁

死锁:死锁是指多个资源之间互相等待对方的资源,而在得到对方的资源之前又不释放自己的资源,这样,造成循环等待的一种现象,如果所有进程都在互相等待一个不可能发生的事件,则进程就死锁了。

死锁产生的必要条件:

  1. 互斥条件:进程对资源进行排他性使用,即在一段时间内对某资源仅为一个进程所占用。
  2. 请求和保持条件:当进程因请求资源而阻塞时,对已获得得资源保持不放。
  3. 不可剥夺条件:进程已获得得资源子啊未使用之前,不能被剥夺,只能够在使用完时由自己释放。
  4. 环路等待条件:各个进程组成封闭的环形链,每个进程都在等待下一个进程所占用的资源。

防止死锁办法:

  1. 资源一次性分配(破坏请求和保持条件)
  2. 可剥夺资源(破坏不可剥夺条件)
  3. 资源有序分配法*(破坏循环等待条件)

死锁避免

  1. 预防死锁的几种策略,会严重损坏系统性能(比如一次性分配资源)。因此在避免死锁时,要施加较弱的限制,从而获得满意的性能。
  2. 由于在避免死锁的策略中,允许近场动态地申请资源。因而,系统在分配资源之前会预先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程,否则,进程等待。其中最具有代表性的避免死锁的算法是银行家算法

哲学家问题

问题描述

有五个哲学家,他们的生活方式是交替地进行思考和进餐。他们共用一张圆桌,分别坐在五张椅子上。在圆桌上有五个碗和五支筷子,平时一个哲学家进行思考,饥饿时便试图取用其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕,放下筷子又继续思考。

解决方案

  • 方法一:至多只允许四位哲学家同时去拿左筷子,最终能保证至少有一位哲学家能进餐,并在用完后释放两只筷子供他人使用。
  • 方法二:仅当哲学家的左右手筷子都拿起时才允许进餐。
  • 方法三:规定奇数号哲学家先拿左筷子再拿右筷子,而偶数号哲学家相反。

参考地址
https://blog.csdn.net/qq_28602957/article/details/53538329

银行家算法

  1. 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可以接纳该顾客。
  2. 客户可以分期贷款,但贷款总数不能超过最大需求量。
  3. 当银行家现有的资金不能满足顾客尚需的贷款总额时,对顾客的贷款可推迟支付,但总能是顾客在有限的时间里获得贷款。
  4. 当顾客得到所需要的全部资金后,一定能在有限的时间里归还所有的资金。

参考

https://www.cnblogs.com/chuxiuhong/p/6103928.html
https://blog.csdn.net/qq_42070071/article/details/80503179
https://blog.csdn.net/qq_28602957/article/details/53538329

相关文章

  • 银行家以及哲学家算法

    死锁 死锁:死锁是指多个资源之间互相等待对方的资源,而在得到对方的资源之前又不释放自己的资源,这样,造成循环等待的...

  • 银行家算法

    银行家算法是一种预防死锁的算法。具体算法步骤可以参考百度百科:银行家算法 例子:某系统有A、B、C、D , 4类...

  • 第二章 数据查找与资源分配算法——银行家算法

    2.4 银行家算法 银行家算法时一种资源分配算法,在操作系统理论中它是一个避免死锁的算法,是以银行借贷系统的分配策...

  • 银行家算法

    银行家算法是避免进程死锁的方法之一。那什么是银行家算法呢? 银行家,他们想的是我把钱贷出去,能不能收的回来,能不能...

  • 死锁的预防算法

    银行家算法银行家算法是一种最有代表性的避免[死锁]的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源...

  • 银行家实现C++算法网络爬虫无死锁调度!

    一、银行家算法与死锁 银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在...

  • 第三章 调度算法和死锁

    银行家算法 当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全性算法判断分配后的系统...

  • 银行家算法

    看一下 你就会了 银行家算法

  • 操作系统复习(自用)1

    2012级:操作系统 第一题是用英文解释概念 比如进程线程等等 还有死锁以及死锁检测和死锁预防算法 就是那个银行家...

  • 多资源银行卡算法

    可以把银行家算法进行推广以处理多个资源。图6-12说明了多个资源的银行家算法如何工作。 在图6-12中我们看到两个...

网友评论

      本文标题:银行家以及哲学家算法

      本文链接:https://www.haomeiwen.com/subject/noydmftx.html