ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 死锁 - **定义**: 如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程就是死锁的。 或者在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。 通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。 - 原因: 1. 竞争资源 2. 程序推进顺序不当 ## 必要条件: * **互斥条件(Mutual exclusion)**:资源不能被共享,只能由一个进程使用。 * **请求与保持条件(Hold and wait)**:已经得到资源的进程可以再次申请新的资源。 * **非抢占条件(No pre-emption)**:已经分配的资源不能从相应的进程中被强制地剥夺。 * **循环等待条件(Circular wait)**:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 ## 处理死锁基本方法: 1. 预防死锁(摒弃除1以外的条件) 2. 避免死锁(银行家算法) 3. 检测死锁(资源分配图) 4. 解除死锁 1. 剥夺资源 2. 撤销进程 死锁概念处理策略详细介绍:[https://wizardforcel.gitbooks.io/wangdaokaoyan-os/content/10.html](https://wizardforcel.gitbooks.io/wangdaokaoyan-os/content/10.html)