
在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率并提高了系统的处理能力。然而,多个进程的并发执行也带来了新的问题--死锁。所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。
例如,某计算机系统中只有一台打印机和一台输入设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2所占用,而P2在未释放打印机之前,又提出请求使用正被P1占用着的输入设备。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。

(一)系统资源的竞争
在系统中有许多不同类型的资源,其中可以引起死锁的主要是,需要采用互斥访问的、不可以被抢占的资源,即在前面介绍的临界资源。
通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。
只有对不可剥夺资源的竞争才可能产生死锁,对可剥夺资源的竞争不会引起死锁。
(二)进程推进顺序非法
进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生死锁。例如,并发进程P1、P2执行都需要资源R1、R2,而进程P1拥有资源R1又申请资源R2,进程P2拥有资源R2又申请资源R1时,两者都会因为所需资源被占用而阻塞。
信号量使用不当也会造成死锁。进程间彼此相互等待对方发来的消息,结果也会使得这些进程间无法继续向前推进。例如,进程A等待进程B发的消息,进程B又在等待进程A发的消息,可以看出进程A和B不是因为竞争同一资源,而是在等待对方的资源导致死锁。
相关练习题
(2014-24)某系统有n台互斥使用的同类设备,三个并发进程分别需要3、4、5台设备,可确保系统不发生死锁的设备数n最小为( )。
A. 9
B. 10
C. 11
D. 12
四、参考答案
答案: B考研实用工具推荐
1、2022考研院校专业匹配查询系统
2、近4年全国各在招院校专业复试分数线查询
3、历年调剂信息查询
4、历年各院校专业目录查询
5、历年各院校报录比查询
6、历年各院校参考书目录查询
免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。





