操作系统饥饿现象_操作系统学习笔记(七) 死锁

一、资源

把需要排他性使用的对象称为资源。资源可以是硬件也可以是软件,比如打印机或者数据库中的一个加锁记录。

资源可以分为两类:可抢占资源和不可抢占资源。

可抢占资源:可以从拥有它的进程中抢占而不产生副作用。

不可抢占资源:不引起相关的计算失败的情况下,无法把它从占有它的进程处抢占过来。

抢占这个词,在进程和线程调度时就提到了这个概念,那时是进程或者线程可以抢占CPU,即抢占式调度。存储器也可以抢占,如内存换页。

一般来说,可抢占资源不会引起死锁,可以在进程间重新分配资源而得到解决。

二、死锁

死锁的概念:如果一个进程集合中,每个进程都在等待只能由该集合中其他进程才能引发的事件,那么该进程集合就是死锁的。

死锁并不仅仅发生在资源上,资源死锁只是一种。

资源死锁的四个必要条件:

(1)互斥条件。每个资源要么已经分配给了一个进程,要么就是可用的。

(2)占有和等待条件。已经得到了某个资源的进程可以再请求新的资源。

(3)不可抢占条件。已经分配给一个进程的资源不能被抢占,只能由占有它的进程显式地释放。

(4)环路等待条件。死锁发生时,系统中一定有由两个或以上的进程组成的一条环路,该环路中的每个进程都在等待着下一个进程所占有的资源。

可以用一个有向图来表示资源分配的情况。用圆形节点表示进程,方形表示资源。从资源节点到进程节点的有向边表示该资源被请求、并被进程占用。由进程到资源节点的有向边表示进程正在请求该资源,并且因为请求资源而导致进程被阻塞,处于等待该资源的状态。

这样,根据环路等待条件&#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值