一、进程的死锁问题
-
在计算机系统中有各种互斥资源(如磁带机、打印机和绘图仪等)和软件资源(如进程表、临界区等),若两个进程互相要求对方已占用的资源,或同时进入临界区则会出现问题
-
所谓死锁,是指两个以上的进程互相都要求使用对方已经占有的资源而导致无法继续运行的现象
(一)死锁问题的产生
进程管理是操作系统的核心,设计不当就会出现死锁问题
进程推进顺序不当、同类资源分配不当、PV操作使用不当等情况都可能造成死锁
如果一个进程在等待一件不可能发生的事,则进程就死锁了
而如果一个或多个进程产生死锁,就会造成系统死锁
(二)死锁举例
1、例:进程推进顺序不当引起的死锁。设系统中有一台读卡机A,一台打印机B,它们被进程P1和P2共享,进程P1和P2并发执行时按下列顺序请求和释放资源
假如按P1<a>P2<a>P1<b>P2<b>的次序执行,则系统发生死锁
因为进程P1执行Request(A)时,由于读卡机未被占用,所有请求可以得到满足;进程P2执行Request(B)时,由于打印机未被占用,所以请求也可以得到满足;接着进程P1执行Request(B)时,由于打印机被占用,所有请求得不到满足,P1等待;进程P2执行Request(A)时&#