分析linux中的死锁处理策略

分析linux中的死锁处理策略

汪建国

摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法。

关键词:死锁;死锁产生的原因;死锁产生的条件;死锁的解除与预防;银行家算法。

Deadlock handling strategy analysis linux

Wangjianguo

Abstract: the the process deadlock problem is one of the main problems in the operating system, many scholars and experts have been studying how to solve this problem. This paper discussed the deadlock problem in operating system to explain the reason of the deadlock appeared four necessary conditions for deadlock processing methods.

Keywords: deadlock; the cause of the deadlock; deadlock conditions; deadlock lift and Prevention; banker's algorithm.

1.死锁的概述

死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出的。所谓死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

2.产生死锁的原因

因为系统资源不足;进程运行推进的顺序不合适;资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁

3.产生死锁的四个必要条件:

互斥条件:一个资源每次只能被一个进程使用。请求与保持条件(占有等待):一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件(不可抢占):进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

4.死锁的解除与预防:

理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。

⑴有序资源分配法。

这种算法资源按某种规则系统中的所有资源统一编号(例如打印机为1、磁带机为2、磁盘为3、等等),申请时必须以上升的次序。

采用有序资源分配法:R1的编号为1,R2的编号为2;PA:申请次序应是:R1,R2;PB:申请次序应是:R1,R2;这样就破坏了环路条件,避免了死锁的发生。

⑵银行算法。

避免死锁算法中最有代表性的算法是DijkstraE.W于1968年提出的银行家算法。该算法需要检查申请者对资源的最大需求量,如果系统现存的各类资源可以满足申请者的请求,就满足申请者的请求。这样申请者就可很快完成其计算,然后释放它占用的资源,从而保证了系统中的所有进程都能完成,所以可避免死锁的发生。

5.死锁排除的方法

撤消陷于死锁的全部进程;逐个撤消陷于死锁的进程,直到死锁不存在;从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失;从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态。死锁是网络中最容易发生的故障之一,即使在网络负荷不很重时也会发生。死锁发生时,一组节点由于没有空闲缓冲区而元法接收和转发分组,节点之间相互等待,既不能接收分组也不能转发分组,并一直保持这一僵局,严重时甚至导致整个网络的瘫痪。 常用的实施方法是撤消或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态以继续运行。(1)剥夺资源。从

其它进程剥压足够数量的资源给死锁进程,以解除死锁状态;(2)撤消进程。最简单的撤消进程的方法是使全部死锁进程都夭折掉;稍为温和一点的方法是按照某种顺序逐个地撤消进程,直至有足够的资源可用,死锁状态消除为止。

六、总结

合理的分配计算机资源是操作系统主要工作之一,有效的处理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解决死锁问题的方法。

七、参考文献

[1]张尧学,史美林.计算机操作系统教程[M].北京:清华大学出版社,2000

[2]甄志龙 于远诚 OS中死锁问题的状态模型探讨 [J]通化师范学院学报 2005.

[3]汤子赢.计算机操作系统[M].西安:西安电子科技大学出版社,1999

分析linux中的死锁处理策略

汪建国

摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法。

关键词:死锁;死锁产生的原因;死锁产生的条件;死锁的解除与预防;银行家算法。

Deadlock handling strategy analysis linux

Wangjianguo

Abstract: the the process deadlock problem is one of the main problems in the operating system, many scholars and experts have been studying how to solve this problem. This paper discussed the deadlock problem in operating system to explain the reason of the deadlock appeared four necessary conditions for deadlock processing methods.

Keywords: deadlock; the cause of the deadlock; deadlock conditions; deadlock lift and Prevention; banker's algorithm.

1.死锁的概述

死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出的。所谓死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

2.产生死锁的原因

因为系统资源不足;进程运行推进的顺序不合适;资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁

3.产生死锁的四个必要条件:

互斥条件:一个资源每次只能被一个进程使用。请求与保持条件(占有等待):一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件(不可抢占):进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

4.死锁的解除与预防:

理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。

⑴有序资源分配法。

这种算法资源按某种规则系统中的所有资源统一编号(例如打印机为1、磁带机为2、磁盘为3、等等),申请时必须以上升的次序。

采用有序资源分配法:R1的编号为1,R2的编号为2;PA:申请次序应是:R1,R2;PB:申请次序应是:R1,R2;这样就破坏了环路条件,避免了死锁的发生。

⑵银行算法。

避免死锁算法中最有代表性的算法是DijkstraE.W于1968年提出的银行家算法。该算法需要检查申请者对资源的最大需求量,如果系统现存的各类资源可以满足申请者的请求,就满足申请者的请求。这样申请者就可很快完成其计算,然后释放它占用的资源,从而保证了系统中的所有进程都能完成,所以可避免死锁的发生。

5.死锁排除的方法

撤消陷于死锁的全部进程;逐个撤消陷于死锁的进程,直到死锁不存在;从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失;从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态。死锁是网络中最容易发生的故障之一,即使在网络负荷不很重时也会发生。死锁发生时,一组节点由于没有空闲缓冲区而元法接收和转发分组,节点之间相互等待,既不能接收分组也不能转发分组,并一直保持这一僵局,严重时甚至导致整个网络的瘫痪。 常用的实施方法是撤消或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态以继续运行。(1)剥夺资源。从

其它进程剥压足够数量的资源给死锁进程,以解除死锁状态;(2)撤消进程。最简单的撤消进程的方法是使全部死锁进程都夭折掉;稍为温和一点的方法是按照某种顺序逐个地撤消进程,直至有足够的资源可用,死锁状态消除为止。

六、总结

合理的分配计算机资源是操作系统主要工作之一,有效的处理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解决死锁问题的方法。

七、参考文献

[1]张尧学,史美林.计算机操作系统教程[M].北京:清华大学出版社,2000

[2]甄志龙 于远诚 OS中死锁问题的状态模型探讨 [J]通化师范学院学报 2005.

[3]汤子赢.计算机操作系统[M].西安:西安电子科技大学出版社,1999


相关内容

  • 网络工程师企业面试问题
  • 企业网管必备技术入门 公司面试模拟试题 如果你去一个企业面试网管,可能会碰到这样的技术考题.先自我测量一下吧,答案回复可见. 1. 路由器的基本功能? 2. win2000有那两种远程访问方法? 拨号远程访问和VPN(虚拟专用网络) 3. 出两道英文题,比如:What about your comp ...

  • linux死锁检测的一种思路
  • 前言: 上一篇博文讲述了pstack的使用和原理. 和jstack一样, pstack能获取进程的线程堆栈快照, 方便检验和性能评估. 但jstack功能更加的强大, 它能对潜在的死锁予以提示, 而pstack只提供了线索, 需要gdb进一步的确定. 那Linux下, 如何去检测死锁, 如何让死锁的 ...

  • 进程调度算法简介
  • 姓名:王思文 物电学院通信一班 学号:[**************]5 进程调度算法简介 进程调度算法就进程来分,分为三类:批处理.交互式.实时.下面将分别进行描述. 批处理系统 先到先服务 这种调度算法属于非抢占式,只有当前进程主动放弃处理器别的进程才会有机会运行.这个算法只有一个运行队列,一个 ...

  • 国家电网公司信息运维人员技术资格考试大纲
  • 附件2 国家电网公司信息运维人员 技术资格考试大纲 信息网络管理 一.考试范围 主要针对信息网(包括信息内网,信息外网),按照电网安全运行以及<国家电网公司信息网骨干网运行管理暂行规定>的要求,对路由器.交换机等硬件设备.网络链路.网管系统的维护及网络运行状态.网络性能的监控等. 二.技 ...

  • 多处理机系统的死锁检测方法[综述]
  • 多处理机系统的死锁检测方法 摘要:在多处理机系统中,并发性得到了有效利用,但并发程序的不确定性使得死锁检测十分困难.针对现有的工作集中在使用分析.验证或测试的单一途径来检测死锁这一问题,本文通过分析现有工具的死锁检测能力,提出了综合使用工具的死锁检测方法.同时根据分析.验证和测试途径的不同特点,给出 ...

  • 3-1处理机调度与死锁-作业
  • 第三章 处理机调度与死锁 1.选择题 1.下列算法中,操作系统用于作业调度的算法是. A.先来先服务算法 B.先进先出算法 C.最先适应算法 D.时间片轮转算法 2.在批处理系统中,周转时间是指 A.作业运行时间 B.作业等待时间和运行时间之和 C.作业的相对等待时间 D.作业被调度进入内存到运行完 ...

  • 百度2016校招笔试题(含答案.解析)
  • 解析来源:七月题库APP 1.vsftpd配置本地用户传输速率的参数( ) A:anon_max_rate B:user_max_rate C: max_user D: local_max_rate 答案:D 解析:vsftpd 是一个在类UNIX 操作系统上运行的FTP服务器,它是一个完全免费的. ...

  • 歌尔声学笔试
  • 1 pwm是什么? 2 usb按照传输速率分哪几种,作用是什么 3 volatile的作用是什么? 4 改错:char *p="hello":char *q="world";char *k=strcat(p,q); 最后一道编程题,20分. 脉冲宽度调制(PW ...

  • 操作系统模拟题
  • 计算机操作系统模拟试题一 一.选择题(选择最确切的一个答案,将其代码填入括号中,每空2分,共20分) 1.把逻辑地址转变为内存的物理地址的过程称做( ). A. 编译 B.连接 C. 运行 D. 重定位 2.进程和程序的一个本质区别是( ). A. 前者分时使用CPU ,后者独占CPU B .前者存 ...