研究计算机操作系统中死锁问题

2016-10-20 19:32韩丹高占江
高等教育 2016年4期
关键词:操作系统计算机

韩丹 高占江

摘 要:计算机在运行过程中,操作系统经常会出现故障,死锁问题是其中最为重要的一种。特别是在计算机资源使用最优基础下,死锁问题的解决已经迫在眉睫。计算机操作系统中的死锁问题并不是凭空产生的,需要一些必要的条件,这些条件则是解决计算机死锁问题的突破口。

关键词:计算机;死锁问题;操作系统

死锁就是一个不通状态,在计算机操作系统中发生死锁情况,表示的是在多个进程集合中,多个进程都在等待事件的发生,而被等待发生的事件又在等待其它事件的发生,这样进程之间始终处于等待状态,无法顺利执行。这种不同的状态会浪费大量的资源,需要的资源得到不到应用,不需要占用的资源无法被释放,这将会对操作系统的运行造成不良影响。

一、死锁发生的原因

对死锁的发生原因进行总结,可以总结为以下两点:1、计算机操作系统中的有限资源受到竞争。2、进程的推进顺序。

计算机操作系统供多个进程并发执行的共享资源无法满足各个进程在执行时的具体需求,如果执行的进程的推进非法,进程在执行过程中因为会对资源进行争夺,最终将会导致系统发生死锁。需要注意的是进程通信以及其它的一些原因也有可能会导致进程死锁情况的发生,通过分析总结,通常引起进程死锁的原因有以下几点:

1、资源竞争引起的死锁

因为竞争资源竞争而引起的死锁在计算机系统中会经常发生,主要满足死锁的所有条件死锁才会发生,缺少任意一个死锁条件,死锁都不会发生时。因此,也只有进程在对死锁进行争夺时,死锁现象才有可能发生。死锁的发生还取决与进程的推进速度和资源的请求顺序。

2、进程通讯引起的死锁

进程相会等待对方所发来的消息,结果导致进程无法前进,从而将会产生死锁。例如,进程A等待进程B发来消息,而此时进程B又在等待进程C发来消息,进程C又等待进程A发来消息,通过分析可以看出进程A、B、C并没有对同一资展开竞争,而是由于等待对方所资源而进入了死锁状态状态,此种类型的死锁在以消息为执行基础的系统中比较常见。

3、其余类型的死锁

在设计程序过程中,如果在设计上存在不合理情况,也会引起广义死锁。广义死锁比较常见的类型就是在程序应用过程中存在数据结构、变量等区域。在使用并发进程时,如果设计的程序存在不合理的情况,往往会错误的任务资源被其它程序所占用,彼此都在等待对方使用后,再对资源加以应用,结果发生死锁。

二、计算机操作系统死锁问题的解决

人们已经意思到了操作系统中存在死锁问题的严重性,因此要加强对其的分析,需要在充分了解其形成机制和具体内涵后,对其构成的因素进行抑制和破坏,干扰死锁的形成过程中,降低死锁的发生几率。通过对计算机操作系统和死锁进行详细分析,进行总结,常用的解决死锁的策略主要有以下几方面。

(一)预防死锁的发生

对死锁的问题的处理应当以预防为主,通过合理的预防,避免死锁现象的发生,从避免了不要的损失。通常来说,对死锁的预防可以从以下几个方面入手: 1、打破“不剥夺”,请求资源未得到满足进程要释放自身所占有的资源,该方法在计算机操作系统中实现起来比较复杂,因此通常在主存和CPU中使用,该方法的主要缺点为需要对资源进行反复的申请与释放,整个系统的吞吐量将会降低。

2、打破“环路等待”,系统中的资源都拥有自己特定的编号,并且每个进程在运行过程中对资源的请求都需要严格依据顺序进行。受动态分配资源影响,该分配方式的资源使用率更高。其缺主要为:(1)进程需要的资源如果与资源编号的顺序不符,资源的利用率将会下降。(2)资源序号不宜频繁发生变化。

3、打破“部分分配”,对经常所要求的资源通过一次性分配完成,该方式的主要缺点被进程所占用的资源的使用率很低,资源浪费情况较为严重。

(二)死锁的检测与恢复

死锁的检测与恢复与预防死锁相比更加主动积极。通过上文的分析,可以发现,死锁的预防主要是采取一系列的限制策略,避免计算机操作系统在运行过程中出现死锁,通过限制死锁发生所必须要存在的条件中的任意一个条件,避免死锁的发生。

1、死锁检测

在计算机操作系统运行过程中,只要存在可能,就向将资源分配给申请资源的进程。操作系统在运行过程中会周期性的对进程的运行情况检测,查看是否存在“环链等待”情况,如果发现该情况也就说明系统在运行过程中出现了死锁现象,则需要采取相应的措施消除死锁。

2、死锁恢复

当死锁发生并且已经被检测到时,可以采取以下措施接触死锁:(1)重新启动,将所有死锁进程全部撤销,不论是进程是否参与了死锁,这是解决死锁最常用的一种方式。(2)终止进程,通过对死锁进程的终止,将进程所占用的资源全部收回,在具体撤销过程中,可以分为逐步撤销死鎖进程和一次性撤销死锁进程两种不同的方式进行。(3)进程回退,回退进程至前一个检查点,然后再一次启动进程,此时原来的死锁现象有可能会再一次发生,但是因为并发处理通常存在不确定性,因此死锁现象通常不会再次发生。(4)剥夺资源,针对死锁进程的部分资源和全部资源被一次性或多次额剥夺直到解决死锁为止,在具体实施剥夺资源过程中,剥夺资源的方式和资源的特性有着一定关系。此外,在资源剥夺过程中还有可能会受到人工干预。

以上死锁的恢复方法都会损失进程已经完成的开销,因此撤销进程的次序上要考虑成本。因此,在程序的具体选择过程中,应当依据下列优先原则进行:①处理时间最少的进程。②处理运输工作量少的进程。③剩余时间最长的进程。④获取分配资源最少的进程。⑤优先级最先的进程。依据上述有限有原则,对死锁进行恢复,可以使操作系统运行的经济性达到最优,符合人们的要求。

结束语:

计算机操作系统在运行过程中出现死锁是避免不了的,因此应当采取合理的方式对死锁进行处理,使计算机中的资源的利用率能够得到最大化。通过分析,不难发现计算机操作系统在运行过程中出现死锁现象需要满足一定的条件,在对对死锁问题分析与处理时,需要从这些条件入手,更好的解决死锁问题。

参考文献:

[1]张海鹏,李曦. 操作系统中的死锁检测[J].计算机系统应用,2013,10:14-18.

[2]张君.操作系统中进程死锁的探讨[J].电脑知识与技术,2012,10:201-203.

[3]于平华,马连喜,李欣,李晓丽. 计算机操作系统的安全问题与防范对策[J]. 计算机光盘软件与应用,2014,17:165-167.

猜你喜欢
操作系统计算机
中国计算机报202007、08合刊
中国计算机报2019年48、49期合刊
中国古代的“计算机”
智能手机操作系统的分析与比较
国产桌面操作系统中虚拟化技术应用研究
基于单片机的嵌入式系统的开发研究
“操作系统原理”实验教学设置初探
随“声”随意 欧凡OA-G10 2.4G无线耳机
一体式,趋便携雅兰仕AL-225
计算机:看我72变等3则