操作系统死锁

死锁

死锁的发生,归根结底是因为对资源的竞争。

死锁的描述

在一个多道编程的环境里,一个系统里存在多个线程,而这些线程共享该计算机系统里的资源。因为资源竞争而造成系统无法继续推进就难以避免了,这种对资源的抢占而导致系统无法正常工作的现象就是死锁。
如果有一组线程,每个线程都在等待一个事件的发生,而这个事件只能由该组线程里面的另一线程发出,则称这组线程发生了死锁。

死锁的四个必要条件

条件1:死锁发生的必要条件是资源有限。这个条件也称资源互斥条件。即资源不能共享,在一个时候只能由一个线程使用。
条件2:死锁的另外一个必要条件是持有等待。即一个线程在请求新的资源时,其已经获得的资源并不释放,而是继续持有。
条件3:死锁的另外一个条件是不能抢占。
条件4:循环等待条件

死锁的例子

哲学家围坐在一个圆桌边,每个人的左右两边均放着一根筷子。如果要吃饭,需要获得左右两边的筷子(不能用一根筷子吃饭)

死锁的应对

静态防止、动态避免、不予理睬和检测修复

消除死锁的必要条件

(1)消除资源独占条件
(2)消除保持和请求条件
(3)消除非抢占条件
(4)消除循环等待条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值