MST

星途 面试题库

面试题:并发与同步:多核环境下操作系统死锁的常见原因及检测方法

在多核环境中,操作系统产生死锁的常见原因有哪些?请简要阐述,并说明至少一种检测死锁的方法。
24.5万 热度难度
操作系统并发与同步

知识考点

AI 面试

面试题答案

一键面试

死锁常见原因

  1. 资源竞争:多个进程竞争有限的资源,如打印机、内存等。若资源分配不当,每个进程都占有部分资源并等待其他进程释放其所占资源,就可能形成死锁。例如,进程A占有资源R1并等待资源R2,进程B占有资源R2并等待资源R1,这种循环等待会导致死锁。
  2. 进程推进顺序不当:进程的执行顺序不合理也可能引发死锁。即使资源充足,如果进程按照特定的顺序请求和释放资源,也可能陷入死锁状态。比如,进程P1、P2、P3,若P1请求资源R1,P2请求资源R2,P3请求资源R3,然后P1请求R2,P2请求R3,P3请求R1,这种推进顺序就可能导致死锁。

死锁检测方法

  1. 资源分配图算法
    • 构建资源分配图,图中节点分为进程节点和资源节点,边表示资源分配关系和请求关系。例如,有进程P1、P2,资源R1、R2,若P1占有R1并请求R2,P2占有R2并请求R1,就在图中画出相应的边。
    • 尝试通过算法简化资源分配图,若最终图中所有边都能被消除,说明系统无死锁;若存在无法消除的环,则表示系统发生死锁,环中的进程即为死锁进程。这种方法直观且能准确找到死锁进程和死锁资源。