MST
星途 面试题库

面试题:并发与同步:基于系统模型分析死锁对系统性能的影响

假设给定一个简单的操作系统系统模型,包含进程资源分配图,请详细分析死锁发生后对系统整体性能(如响应时间、吞吐量等)产生的影响,并说明如何通过对系统模型的调整来减轻这些影响。
36.3万 热度难度
操作系统并发与同步

知识考点

AI 面试

面试题答案

一键面试

死锁对系统性能的影响

  1. 响应时间
    • 死锁发生后,涉及死锁的进程无法继续推进,它们会一直占用资源且等待其他进程释放资源,导致这些进程的响应时间无限延长。例如,一个交互式进程若陷入死锁,用户操作将得不到任何回应,因为进程处于停滞状态。
    • 其他未陷入死锁的进程也可能因系统资源被死锁进程占用而受到影响,资源竞争加剧,响应时间也会相应增加。
  2. 吞吐量
    • 系统的吞吐量会显著下降。由于死锁进程占用资源却无法完成任务,新的进程可能因资源不足无法启动,已运行的进程也可能因资源瓶颈而停滞,使得单位时间内系统完成的任务数量大幅减少。例如,在一个批处理系统中,死锁会导致作业堆积,无法按时完成处理。

通过调整系统模型减轻影响的方法

  1. 资源分配策略调整
    • 采用银行家算法:在资源分配前,系统检查此次分配是否会导致系统进入不安全状态。如果会进入不安全状态则拒绝分配,从而避免死锁的发生。例如,系统有三个进程 P1、P2、P3,分别需要不同数量的资源,银行家算法会根据当前资源可用情况和进程需求预测分配的安全性。
    • 剥夺式分配:当检测到死锁时,从一些进程中剥夺资源分配给其他进程,以打破死锁。比如,可以剥夺优先级较低进程的资源给优先级高且陷入死锁的进程,前提是被剥夺资源的进程可以在后续重新获取资源继续运行。
  2. 死锁检测与恢复
    • 死锁检测算法:定期运行死锁检测算法,如资源分配图算法,检测系统是否存在死锁。通过分析进程资源分配图,找到死锁环。例如,通过深度优先搜索等算法遍历资源分配图,判断是否存在环,若存在环则说明有死锁。
    • 恢复机制:一旦检测到死锁,选择合适的恢复策略。可以终止死锁进程,释放它们占用的资源,重新分配给其他进程。或者将死锁进程回滚到某个安全状态,使其可以重新运行,减少因终止进程带来的损失。
  3. 进程调度优化
    • 优先级调度:为重要的进程分配较高的优先级,确保这些进程在资源竞争时优先获取资源,减少死锁对关键业务的影响。例如,对于实时系统中的关键进程,如控制设备的进程,给予高优先级,使其在资源紧张时也能正常运行。
    • 时间片轮转结合优先级:在时间片轮转调度的基础上,结合优先级。高优先级进程获得较长时间片,低优先级进程获得较短时间片,这样既保证了公平性,又能优先处理重要进程,提高系统整体性能。