进程死锁

作者: Temple_Li | 来源:发表于2017-09-11 16:04 被阅读9次

进程死锁原因:

进程有三态:执行状态,就绪状态,等待状态。进程因等待资源的时候而睡眠进入等待状态,只有资源到来的时候才会唤醒进入就绪状态,进程死锁就会发生在这个阶段(等待态),如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,就会发生进程死锁,也就是进程不同步。

原因有两方面:1.系统能够提供的资源个数比要求该资源的进程少,即系统资源不足 2.进程推进顺序非法。

进程死锁发送条件(4):

1.互斥条件:资源不能被共享,只能由一个进程使用。

2.请求与保持条件:已经得到资源的进程可以再次申请新的资源。

3.非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺。

4.循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。

解决方案

第一:根据互斥条件和请求和保持条件,我们可以采用资源静态分配策略,破坏"部分分配"条件

第二:允许进程剥夺使用其他进程占有的资源,从而破坏"不可剥夺"条件

第三:采用资源有序分配法,破坏"环路"条件

相关文章

  • 死锁

    第11章:死锁和进程通信 死锁概念 死锁处理方法 死锁预防(Deadlock Prevention) 死锁避免(D...

  • 如何去检测死锁

    如何检测死锁 死锁预防 让线程获取锁的顺序一致 死锁检测 jps 查看java 进程信息 jstack +进程号 ...

  • 线程中的死锁

    死锁定义:若一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的 产生死锁的...

  • 死锁

    一、定义 在一组进程发生死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占用的资源。或者说每个进...

  • 【面向校招】操作系统 —— 死锁

    死锁 1、死锁、饥饿、死循环的区别 死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。 饥...

  • Mysql死锁的解决方案

    show processlist找到死锁的进程编号KILL 这个进程的编号如果有多个死锁,请将他们全部KILL

  • oracle数据库查看死锁

    查看死锁语句 杀死死锁进程(110为sid,48505为serial)

  • 进程死锁

    进程死锁原因: 进程有三态:执行状态,就绪状态,等待状态。进程因等待资源的时候而睡眠进入等待状态,只有资源到来的时...

  • 死锁

    死锁 什么是死锁 死锁是指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。 ...

  • 操作系统--死锁

    什么是死锁状态? 一组进程在等待其它进程占有且永不会释放的资源。死锁原因就是资源被占有,且不释放,如果其它进程也要...

网友评论

    本文标题:进程死锁

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