处理机调度与死锁资料教程.ppt

3.5.1 产生死锁的原因   产生死锁的原因可归结为如下两点:   (1) 竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。   (2) 进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。 1.竞争资源引起进程死锁 1) 可剥夺和非剥夺性资源 可剥夺性资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。CPU和主存均属于可剥夺性资源。 不可剥夺性资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。 2) 竞争非剥夺性资源 在系统中所配置的非剥夺性资源,由于它们的数量不能满足诸进程运行的需要,会使进程在运行过程中,因争夺这些资源而陷入僵局。 设系统中有打印机、磁带机各一台,进程A、B的申请如下: 磁带机R2 进程 P1 进程 P2 占用 占用 请求 请求 阻塞 阻塞 死锁 打印机R1 图3-13 I/O设备共享时的死锁情况 3) 竞争临时性资源 永久性资源: 指可顺序重复使用型资源,如打印机资源。 临时性资源: 指由一个进程产生,被另一进程使用一短暂时间后便无用的资源,故也称之为消耗性资源,它也可能引起死锁。如信号量,中断信号,同步信号等。 进程 P2 进程 P3 进程 P1 临时性 资源

文档评论(0)

1亿VIP精品文档

相关文档