操作系统(王道考研):死锁

本文详细阐述了死锁的概念,与饥饿、死循环的对比,以及死锁产生的四个必要条件。讨论了死锁发生的具体场景,并提出了预防死锁、避免死锁以及检测和解除死锁的不同策略,包括破坏必要条件、银行家算法和资源剥夺法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是死锁?

并发的环境下,各进程在竞争资源的情况下造成的一种互相等待对方占有的资源,导致各个进程发生阻塞,无法向前推进的现象,就是死锁

2、死锁、饥饿、死循环的区别和共同点?

共同点:进程无法顺利的向前推进(除了故意设计死循环)
区别:死锁是竞争资源,导致进程阻塞,进程无法向前推进的现象。
饥饿是长期得不到想要的资源,导致进程无法向前推进的现象。例如短进程优先算法中,长进程可能一直得不到资源,所以会发生长进程“饥饿”。
死循环:进程一直跳不出某一个循环,导致进程处于死循环状态,不过这个死循环的设计也许是程序员故意的,嘿嘿。

3、死锁产生的四个必要条件?

关键:只要四个必要条件中有一个不成立,死锁就不会发生!

必要条件一:互斥条件:必须对互斥的资源进行竞争抢夺才会可能导致死锁现象的发生。

必要条件二:不剥夺条件:进程所获得的资源在未使用完之前,不能由其他进程强行夺走,只能主动释放。

必要条件三:请求和保持条件:对已经占有的资源不释放,又提出了新的资源请求,此时发生了进程阻塞,但是还不释放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值