基本概念
死锁的定义:一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远
无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。如果死锁发生,会浪费大量
系统资源,甚至导致系统崩溃。
从死锁的定义中可以得到几个推论:
1. 参与死锁的所有进程都在等待资源。
2. 参与死锁的进程是当前系统中所有进程的子集。
死锁的产生的原因:资源数量有限、锁和信号量错误使用都可能导致死锁,锁和信号量的使用
可能是开发人员编程导致的。
下面着重介绍一下有限资源导致的死锁问题:
在操作系统中资源使用的一般模式是:进程提出申请,操作系统进行相应的分配, 如果
进程所需要的资源不能满足的话,这个进程就进入阻塞或者等待状态,如果可以满足的 话进程就
直接使用资源,当进程使用完毕之后就释放资源。由于资源的使用方式就是申请 - 分配 - 使用 - 释放,
因此有些进程得不到资源就会处理阻塞等待状态,资源有限的话就有可能 出现死锁。