何为死锁?
若系统中存在一组(两个或多个),它们中每个进程都占用了某种资源,又都在等待已被该进程中的其他进程占用的资源,如果这种等待永远不能结束,则说系统出现了死锁,或者说这组进程处于死锁状态。
注意,要特别指出的是,由于以下两种情况造成的进程永远等待,不属于我们要讨论的死锁问题。
(1)由于某个进程申请了系统中不存在的资源或申请的资源数超过了系统拥有的最大资源数而引起的等待。
(2)由于硬件故障或程序性错误而引起的循环等待。
所以在讨论操作系统设计中可能出现的死锁问题时,应避免与硬件故障及其他程序性错误纠缠在一起。为此我们假定:
任何一个进程要求资源的最大数量不超过系统能提供的最大资源数量。
若任何一个进程在执行中所申请的资源能得到满足,那么它一定能在有限时间内执行结束,且归还它所占的全部资源。
一个进程只有在它所申请的资源得不到满足时,才处于等待资源状态。
在这些假定下,如果出现死锁,则是由于操作系统对资源管理不当引起的,否则另当别论。死锁的必要条件
系统出现思锁必须同时保持下列四个必要条件
互斥地使用资源:每个资源每次只能给一个进程使用。
占有且等待资源:一个进程占有了某些资源后又申请新资源而得不到满足时,处于等待资源的状态,且不释放已占资源。
不可抢夺资源:任何一个进程不能抢夺另一个进程所占的资源,即已被占用的资源只能由占用进程自己来释放。
循环等待资源:存在一组进程P1,P2,P3,…Pn,其中每个进程分别等待另一个进程所占用的资源,即p1在等p2占用的资源,
操作系统之死锁
最新推荐文章于 2023-06-11 10:05:59 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)