美文网首页
死锁 互斥 同步

死锁 互斥 同步

作者: 元素周期表的十七君 | 来源:发表于2017-08-21 10:03 被阅读0次

操作系统中的互斥,同步与死锁

死锁

两个及以上进程,因每个进程都在等待其他进程做完某事(如释放资源),而不能继续执行

死锁的充要条件:

1.互斥:一个资源只能够供一个进程使用,已分配给进程的资源,不可以在分配给其他的进程;

2.占有且等待:当进程等待其他进程释放资源的时候,他申请的并且已经获得的资源是继续占有已经获得的资源的;

3. 不可抢占:不可以抢占进程已经占有的资源;

4.循环等待:存在一个封闭的进程链,是每一个进程至少占有此链中下一个进程所需要的一个资源。


死锁避免

是允许三个必要条件,但是不允许出现循环等待的状况,这样会允许处理更多的并发请求。死锁避免需要知道将来的进程资源需求的情况。在死锁的避免中,是否同意资源的请求是通过判断该请求是否可能造成死锁来决定的。如果一个进程的启动会造成死锁的话,则不启动该进程;如果一个进程增加资源请求的话,会造成死锁,则不分配给他资源。

银行家算法(资源分配拒绝策略)和拒绝启动进程的算法。

1.拒绝启动的算法

R表示系统资源,V表示未分配的资源,C[i][j]表示进程i对资源j的需求,A[i][j]表示的是进程i中已经分配了资源j的数目。根据这个矩阵的关系,定义了一个死锁避免的策略:如果一个新进程的资源需求会导致死锁,则拒绝启动这个新的进程

2.银行家算法:

一系列的进程已经运行,R表示总的资源数目,V表示当前未分配的资源,C表示需求的资源,A表示当前已经给进程分配的资源,那么C-A矩阵就是新的资源分配需求,V需要满足至少一条C-A否则不会分配资源给进程。然后再可以执行的进程结束的时候,回收掉该进程的所有资源

相关文章

  • 死锁 互斥 同步

    操作系统中的互斥,同步与死锁 死锁: 两个及以上进程,因每个进程都在等待其他进程做完某事(如释放资源),而不能继续...

  • 并发 :线程间同步、锁、可重入锁及互斥锁

    线程间同步 线程间同步涉及线程互斥锁; 锁(Lock)容易导致死锁,可重入锁(RLock)则不会导致死锁,但每次 ...

  • 同步 互斥锁 死锁

    同步 不是生活中的同步 而是 按照预定的先后次序进行运行 。比如:你先说,我再说。 "同"字从字面上容易理解为一起...

  • 多线程

    实例:实时播放可以用到死锁:互斥锁+信号量:---》出现死锁互斥锁+条件量:---》不会死锁 。

  • OpenMP多线程——Parallel for

    多线程——线程同步 数据竞争问题 线程互斥同步——critical 线程互斥同步——atmoic 线程互斥同步——...

  • Java多线程常识

    死锁并发特性线程状态转换基本机制同步与互斥线程池常用工具类(JUC) 死锁 1. 定义 指两个或两个以上的进程在执...

  • 死锁

    死锁四个条件: 死锁例子: 解读上述代码: 1.synchronized 就是满足死锁条件----互斥条件----...

  • 理解JVM(六):线程安全和锁优化

    线程安全的实现方法 互斥同步 互斥是因,同步是果;互斥是方法,同步是目的。 synchronized关键字 syn...

  • 4操作系统

    考点分部 进程管理:进程三态图、前趋图、同步与互斥、PV操作、死锁和线程存储管理:分页存储管理、分段存储管理设备管...

  • 多线程二

    一、死锁 最容易导致死锁的一个情况信号锁 + 互斥锁 ,没处理好,导致死锁,NSConditionLock 解决死...

网友评论

      本文标题:死锁 互斥 同步

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