分布式系统中死锁的处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1死锁现象机器原因分析 (2)
1.1死锁概念 (2)
1.2死锁的必要条件 (3)
1.3死锁产生的原因 (3)
2解决死锁的方法 (3)
2.1预防死锁 (3)
2.2避免死锁 (3)
2.3检测和系统恢复 (3)
3预防死锁的方法 (3)
3.1阻碍互斥现象 (3)
3.2破坏保持和请求条件 (4)
3.3对不可剥夺条件进行破坏 (4)
3.3.1方法一 (4)
3.3.2方法二 (4)
3.3.3对循环等待进行破坏 (4)
4结语 (4)
分布式系统中死锁的处理
摘要:死锁是计算机故障中常见的问题之一,想要最优化使用计算机操作统,首要任务就是解决死锁问题。当然死锁故障不是无缘无故产生的,它连带着自身的必然条件,而这些必然条件是解决死锁问题的突破点,介绍计算机死锁问题,分析死锁现象的发生条件,并提出可实行的解决方法。
关键词:计算机;操作系统;死锁问题
1死锁现象机器原因分析
所谓的死锁就是不通状态,计算机中的死锁会影响整个操作系统的进程。在计算机系统中,资源是有限的,并且许多的资源都是独占性资源,在任何时刻都只能被一个进程使用。另一方面,对于一个进程而言,在其整个生命周期中一般不可能仅使用一个资源,而是请求使用多个资源。对于集中式操作系统是如此,对于网络操作系统和分布式操作系统更是如此。现代操作系统(包括集中式操作系统、网络操作系统和分布式操作系统)的重要特征是并发处理、资源共享和进程在CPU上的执行时间的不确定性,这些特征是相辅相成的。没有资源共享就不可能并发执行,并发执行的结果必然造成进程执行的不确定性。资源共享的目的是为了提高资源的利用率,提高用户程序的执行速度和整个计算机系统的性能。但是,资源共享和多个进程的并发执行就必然出现进程对资源的竞争,有竞争就有可能出现多个进程的死锁。死锁一直是操作系统中始终没有根本解决的问题,因而始终是学习和研究操作系统的重点问题之一。本文就死锁的概念和发生死锁的原因及可能发生死锁的问题进行讨论。每个进程都需要相应要求指导,而这些要求指导又需要不同类别进程来提供,死锁会耽误计算机进程的顺利进行。这种状态造成计算机资源的浪费,需要的资源利用不上,不需要的资源无法释放,对操作系统来说有着不利的影响。由此可见,我们应研究计算机操作系统中的死锁问题,科学采用合理的解决方案。
死锁概述
1.1死锁概念
计算机操作系统中,进程需要相互访问,例如:想要把磁盘中的文件打印出来,进程会同时访问打印机和磁盘驱动器,并且阻}卜其它进程访问他们。当系
统中只有一个进程时,此进程可任意要求它所需的资源进行工作;当系统中有多个进程时,这些进程共同利用系统资源,提高系统处理能力,但也有可能发生死锁现象。
1.2死锁的必要条件
互斥的条件:一个资源只能被一个进程应用。保持和请求的条件保持原占用资源,再请求新资源。不可剥夺的条件:只有占有这个资源的进程可以释放它,其它进程不可剥夺。环路等待的条件:系统处于进程环形链情况时,每个进程都会占据一些资源,并且等待其它进程占据的资源。
1.3死锁产生的原因
第一,资源的竞争产生死锁。当计算机操作系统资源有限时,有可能发生死锁,但是此时的死锁要满足四个必要条件,缺一不可。第二,通信的进程产生死锁。进程之间不会占用同一个资源,它们会等待彼此的消息,因此这些进程不能连续运转,造成死锁。第三,其它类型的死锁。一个程序设计的不合理,会产生广义的死锁,经常发生在程序运用的数据结构、存储区和变量上而。不合理的设计程序,造成操作系统以为是别的进程在使用,其实都在等待对方的消息。
2解决死锁的方法
2.1预防死锁
这是一种静态方法,死锁有四个必然条件(四个必然条件见下文叙述),破坏其中一条来限制计算机操作系统进程占用资源的活动,从而预防死锁。
2.2避免死锁
这是一种动态方法,检查进程占用所需资源的命令,而不是限制进程占用所需资源的命令,根据检查结果合理分配资源。确定分配资源的安全,预防分配资源中产生死锁的现象。
2.3检测和系统恢复
检测计算机操作系统是否处于环路等待现象,一旦检测到死锁,应及时解除死锁,恢复到正常的系统应用。
3预防死锁的方法
3.1阻碍互斥现象
破坏第一个必然条件,让资源被同时访问,并且他们之间不互相排斥,但是
进程工作时很多资源是不可以被同时访问利用的,因此这种简单方法有时是不可应用的,只有在资源可被共享的情况下使用。
3.2破坏保持和请求条件
一个进程在申请利用某个资源时,便不能在占用其它的资源,这是一种静态分配的方法。在进程工作之前,让它一次性的申请出所有需要应用的资源,如果系统资源充足,就可以把进程所需的所有资源分配给它,所以在进程工作中就不会在提出应用资源的申请,这样就破坏了请求等待条件。如果系统资源分配过程中,有一种资源无法满足进程的需求,那么就不分配给它任何资源,让它一直等待,以此破坏保持条件,避免死锁现象的发生。
3.3对不可剥夺条件进行破坏
3.3.1方法一
一个进程在占用其它资源,还要继续申请资源被拒绝时,那么该进程就必须释放原本所占用的资源,以后需要资源可以再次申请。简单来讲就是,已占用资源的进程在运行时,会将原本占用的资源释放,也就是说权利被剥夺,因此破坏了不可剥夺的条件。
3.3.2方法二
一个进程正在申请的资源被其它进程占用时,可以利用操作系统去抢占资源,这种方法要建立在不同优先级别的两个进程上,如果两个进程的优先级别相同,就不能防}卜死锁。优点:方便保留状态和恢复资源。缺点:陕复代价较高,实现起来比较困难,容易导致循环的重启和不必要的抢占。
3.3.3对循环等待进行破坏
规则编号,定序排练所有资源,进程只能根据递增的方式占用资源,如果进程想要占用某个资源,就必须释放所有比此资源编号大的资源。优点:分配资源可以逐步进行,资源的利用率被提高,方便检查。缺点:限制资源的顺序,不能增加资源占用,当系统规定和资源顺序不同时,其利用率较低,不可抢占。
4结语
综上所述,我们可以清楚地认识到死锁在计算机操作系统中的影响,对死锁的必然条件和预防方法、解决方法基本了解。我们还要经常检测计算机操作系统是否发生死锁,一旦发现死锁现象,要及时采取相应的解决方法,确保计算机的