chapter06_死锁_1_资源

  • 资源的一种分类

    (1) 可抢占资源: 可以从拥有它的进程中抢占而不产生其他副作用

    例如: 存储器

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

    例如: 光盘刻录机

    但是打印机比较特殊,物理打印机本身是不可抢占资源,但是假脱机打印是可抢占资源

  • 死锁和不可抢占资源相关,因为可抢占资源直接抢就是了,不是必须要等

  • 有时,请求资源的__顺序__可能会导致死锁的发生

    示例

    进程A

      void process_A() {
    
          down(&resource_1);
          down(&resource_2);
          use_two_resources(&resource_1, &resource_2);
          up(&resource_2);
          up(&resource_1);
      }
    

    进程B

      void process_A() {
    
          down(&resource_2);
          down(&resource_1);
          use_two_resources(&resource_1, &resource_2);
          up(&resource_2);
          up(&resource_1);
      }
    

    此时就有可能出现死锁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值