处理机调度与死锁(三)——死锁

死锁

一、资源问题

1.可重用性资源和消耗性资源

(1)可重用性资源:可供用户重复使用多次的资源
性质:
每一个可重用资源中的单元只能分配给一个进程使用,不允许多个进程共享
进程在使用可重用性资源时,需按照这样的顺序:请求->使用->释放
系统中的每一类可重用资源中的单元数目是相对固定的,进程在运行期间即不能创建也不能删除它。
(2)可消耗性资源:在进程运行期间,由进程动态的消耗和创建
性质:
每一类可消耗资源的单元数目在进程运行期间是不断被变化的;
进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该类资源的缓冲区中,以增加该资源类的单元数目;
进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中。

2.可抢占资源和不可抢占资源

(1)可抢占资源
可把系统中的资源分成两类,一类是可抢占资源,指某进程在获得这类资源后,该资源可以被其他进程或系统抢占。
CPU和主存均属于可抢占性资源。对于这类资源是不会引起死锁的。
(2)不可抢占资源
另一类是不可抢占资源,一旦系统把某资源分配给该进后,就不能将它强行收回,只能在进程用完后自行释放。
磁带机、打印机也都属于不可抢占性资源。

二、计算机系统中的死锁

1.竞争不可抢占性资源引起死锁

例如,系统中有两个进程P1,P2,它们都准备写两个文件F1,F2,这两者都属于可重用而不可抢占性资源。代码:

P1 P2
Open(f1, w); Open(f2, w);
Open(f2, w); Open(f1, w);

当P1在打开F1的同时,P2去打开F2,每个进程都占有一个打开的文件,此时就会出现问题。因为当P1试图去打开F2,P2试图去打开F1时,这两个进程都会因文件已被打开而阻塞,谁也无法运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值