2.4 操作系统死锁(死锁的概念、产生、防止、预防、避免)

文章目录

  • 一、死锁的概念
    • 1.1 死锁、饥饿、死循环对比
      • 1.1.1 死锁(Deadlock)
      • 1.1.2 饥饿(Starvation)
      • 1.1.3 死循环(Infinite Loop)
    • 1.2 死锁产生的条件
  • 二、预防死锁
  • 三、避免死锁
  • 四、死锁的检测和解除
    • 4.1 资源分配图和死锁定理
    • 4.2 死锁的检测和恢复

一、死锁的概念

1.1 死锁、饥饿、死循环对比

1.1.1 死锁(Deadlock)

教科书解释:
死锁是操作系统中的一种状态,指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象。每个进程都占用着一些资源而又等待着其它进程所占有的资源,导致所有进程都无法向前推进,整个系统因此陷入停滞。(至少有两个及以上的进程同时发生死锁)

通俗易懂的解释
想象几个小朋友围坐一圈,每个人手里拿着一个玩具,同时又想要隔壁小朋友的玩具。没有一个小朋友愿意先放弃手中的玩具,大家都等着别人先给,结果就是所有人都没法得到新玩具,大家都不玩了。这就是死锁,每个人都卡住了,啥事也干不了。

1.1.2 饥饿(Starvation)

教科书解释
饥饿是指一个或多个进程由于系统资源分配策略的原因,无法获得足够的资源来完成其任务,尽管这些资源是可用的。长时间下来,这些进程无法取得进展,就像人长时间不吃东西会饿一样。(可能只有一个进程会发生饥饿)

你可能感兴趣的:(操作系统学习笔记,操作系统)