MST
星途 面试题库

面试题:并发与同步:死锁避免与资源利用率的权衡策略

在实际操作系统中,死锁避免机制可能会影响资源利用率。请分析在追求高资源利用率和避免死锁之间,有哪些常见的权衡策略?如何在设计系统时,通过对资源分配策略、进程调度策略等方面的调整,来尽量平衡死锁避免与资源利用率之间的关系?
26.0万 热度难度
操作系统并发与同步

知识考点

AI 面试

面试题答案

一键面试

常见权衡策略

  1. 资源分配图算法:使用资源分配图算法(如银行家算法),在分配资源前检查系统是否处于安全状态。虽然这能有效避免死锁,但每次资源请求都需进行复杂计算,可能降低资源分配速度,影响利用率。权衡在于在保证安全(避免死锁)前提下,优化算法性能以减少对资源利用率的影响。
  2. 资源预分配:进程启动时就分配其所需的全部资源。这样可保证进程不会因资源不足而死锁,但会导致资源长时间被占用,其他进程无法使用,严重降低资源利用率。权衡是针对资源需求可预测且相对稳定的进程使用该策略,对需求变化大的进程不采用,以此平衡死锁避免和资源利用率。
  3. 死锁检测与恢复:不进行实时死锁避免,而是定期检测死锁,发现死锁后采取回滚进程、剥夺资源等方式恢复。此方法可提高资源利用率,因为资源能更灵活分配,但死锁发生后处理成本高。权衡在于合理设置检测周期,周期短检测频繁影响性能,周期长死锁存在时间久,对系统影响大。

设计系统时的平衡方法

  1. 资源分配策略调整
    • 动态分配与静态分配结合:对于短期使用且需求明确的资源采用动态分配,提高利用率;对长期使用且需求稳定的资源采用静态分配,避免死锁。
    • 分级分配:将资源按重要性和使用频率分级,优先保证重要资源的分配,对不重要资源可采用更灵活的分配策略,在避免死锁同时提高整体资源利用率。
  2. 进程调度策略调整
    • 优先级调度:给重要进程、资源需求少的进程更高优先级。重要进程优先获得资源,避免因等待资源长时间阻塞影响系统功能;资源需求少的进程快速执行完毕释放资源,提高资源周转率,从而在一定程度上平衡死锁避免与资源利用率。
    • 公平调度:确保每个进程都有机会获得资源,避免某些进程因资源长期被占用而饿死,降低死锁风险,同时维持系统资源的公平使用,保障整体资源利用率。