操作系统原理学习笔记(十五)-死锁概述

操作系统原理学习笔记目录

资源问题

  • 可重用性资源:
    每个资源仅能分配给一个进程使用,不允许共享。
    使用资源时,先请求资源,再使用资源,最后释放资源。
    系统中该资源数目固定,进程运行时不能创建与删除。
  • 可消耗性资源:
    在进程运行时可变化。
    进程运行时可创建。
    进程运行时可消耗。
    资源一般由生产者创建,消费者消耗,典型的是进程间通信的消息。
  • 可抢占性资源:该资源可被抢占,如处理机的抢占。
  • 不可抢占性资源:不可被抢占的资源。

计算机系统中的死锁

死锁现象于P115页有图解。

  • 竞争不可抢占性资源引起死锁:两个进程同时访问一不可抢占性资源,且都希望对方关闭该文件,因此会无限期等待,陷入死锁。
  • 竞争可消耗资源引起死锁:有两个进程向对方发送消息后再接受对方的消息,此时可以正常运行。但当进程要求先收消息再发消息时,会陷入死锁。
  • 进程推进顺序不当引起死锁:进程A的执行是先请求MN资源,后释放MN资源,进程B也是请求MN资源,后释放MN资源,当A运行后再执行B,会正常运行。但当进程A未结束,进程B开始运行,此时可能出现MN资源同时被请求,此时运行出错。

死锁的定义

一组进程发生死锁时,该组进程中每个死锁进程都在等待另一个死锁进程占用的资源。
导致这组进程无限制等待下去。

产生死锁的必要条件

四个必要条件都满足,才会产生死锁。

  • 互斥条件:占用的资源是互斥的。
  • 请求和保持条件:进程占用了一临界资源,又请求了一新的临界资源。
  • 不可抢占条件:进程占用的资源仅可在进程使用完后释放。
  • 循环等待条件:死锁的进程会存在资源的循环链,如A需求B资源,B需求C资源,C需求A资源。

处理死锁的方法

  • 预防死锁:设置某些限制条件,防止四个条件同时满足。
  • 避免死锁:同样是实现预防策略,是在资源的动态分配过程中,用某方法防止进程进入不安全状态。
  • 检测死锁:无需预防,在检测机构检测到死锁后,采取适当措施处理。
  • 解除死锁:检测到死锁时,通过撤销进程,回收资源来解除死锁。

四种方法从上到下对死锁的防范程度逐渐减弱,资源利用率提高,进程因资源因素而阻塞的频度下降(并发程度提高)。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注