考研帮 > 数学 > 每日一练

2.8 死锁

2.8.2 死锁概念及特征

  计算机系统中有许多独占资源,它们在任一时刻都只能被一个进程使用,如磁带机、绘图仪等独占型外围设备,或进程表、临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一资源的能力。一个进程需要使用独占型资源必须通过以下的次序:
  申请资源;
  使用资源;
  归还资源。
  若申请时资源不可用,则申请进程等待。对于不同的独占资源,进程等待的方式是有差异的,如申请打印机资源、临界区资源时,申请失败将意味着阻塞申请进程;而申请打开文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。值得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。
  在许多应用中,一个进程需要独占访问不止一个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。例如,两个进程分别等待对方占有的一个资源,于是两者都不能执行而处于永远等待。这种现象称为“死锁”。
  当若干个进程竞争使用资源时,如果每个进程都占有了一定的资源,又申请使用已被另一进程占用且不能抢占的资源,则所有这些进程都纷纷进入封锁状态,不能继续运行。这种情况称为死锁。这与交通阻塞有些类似,两股方向相反的车辆流都想通过已被对方占有的道路,结果双方都不能前进。显然,避免死锁的发生或限制它的作用范围是设计操作系统时应该注意的。
  死锁的定义及其特征如下。
  (1)定义
  系统中两个或两个以上的进程无限期地等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁。
  (2)死锁产生的原因
  系统资源不足:系统缺少足够的资源供进程使用。
  进程推进的顺序不合适:对互斥资源的共享与并发执行的顺序不当。
  资源分配不当:有些进程资源太多,而有些资源则严重匮乏。
  (3)产生死锁的四个必要条件
  互斥条件:任一时刻只允许一个进程使用资源。
  不剥夺条件:进程已经占用的资源,不会被强制剥夺。
  请求和保持条件:进程在请求其余资源时,不主动释放已经占有的资源。
  环路条件:环路中每一条边是进程在请求但被另一进程已经占有的资源。

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭