欢迎来到天天文库
浏览记录
ID:47495541
大小:28.55 KB
页数:4页
时间:2020-01-12
《浅谈计算机操作系统中死锁题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、浅谈计算机操作系统中死锁题学院专业14xxxxxxxx一、死锁的基本理论(一)死锁的基本概念死锁,从字面意思看,就是一个不通的状态,而当其具体到计算机操作系统之中时,其则表示在一把包括多个进程在内的进程集合体中,每个进程都在等待相应事件的促发,而这些事件却又在等待另一类进程的完成,因此,这样一来进程之间一直处于一种等待的状态之中,无法得到顺利地执行。当然,这种不同的状态也就必然导致了资源空间的极大浪费,不需要占用的资源无法放出,需要的资源又无法得到利用,这对于计算机操作系统的运行来说,无疑是个不好的消息。因此,我们在进行实际的计算机操作系统设计和运行时,总是需要将其产生原因及形成机制有一个完整
2、的认识,并及时地采用相关措施加以应对。 (二)死锁的现象及其原因分析死锁是指在一个进程集合中,每个进程都在等待一些事件的发生,而这些事件又紧紧被同组中的另一些进程所触发,没有一个进程能够顺利运行下去,所有进程都永远相互等待。或者说,死锁现象是一个进程在等待另一个进程释放它所占有的资源,但另一个进程也不能获得其需要的资源,但另一个进程也不能获得其需要的自二、计算机操作系统死锁问题的形成机制事实上,就计算机操作系统的死锁问题而言,其虽然是如今给人类操作系统以及各个操作系统版本在实际的使用过程中经常出现的一类问题,并对用户的实际运用造成了一定的影响,而这种影响是不能凭空产生的,因为这种操作系统死锁问
3、题有着一定的的形成机制。一般来说,造成计算机操作系统死锁的原因主要包括有两个方面,一方面是多个进程在系统资源使用上的竞争,即系统中所具有的共享资源并不能满足相关进程的需要,从而出现争夺的现象,而这种资源又可以具体分为硬件资源以及包括数据在内的软件资源。另一方面则是进程在进行顺序的安排上是非法的,这样一种非法的顺序也就必然导致计算操作系统出现混乱以及卡壳的现象。 一般来说,计算机操作系统中的资源可以大致分为可剥夺性资源以及不可剥夺性资源,而就前者而言,当某一进程向系统请求要占用这一资源时,其完全可以为代替原先占用的那个进程,但是这种进程实际上又需要依赖相应的进程优先实现。即优先级高的可以剥夺优先
4、级低的,反之则不成立。而包括打印机以及磁带机在内的后者则不可能实现这一剥夺行为,而且也正是这种不可剥夺性,使得其死锁发生的概率大大增加。当然,包括信号量使用不当以及程序设计不合理等在内的因素也会直接导致计算机操作系统死锁问题的发生。例如,进程与进程之间都在互相等待双方传来的消息,而这种消息如果使用不当则会使得相关进程不能顺利地向前推进,从而陷入一种死锁状态。不过,死锁若要产生,其就必须就要符合多个条件,即每一个资源只能被一个进程使用、进程在取得资源后不能强行剥夺以及两个或两个以上进程之间形成一种循环式的等待资源关系。三、死锁产生的条件(一)进程数条件1.参与死锁的进程最少是两个; 2.参与死锁
5、的进程至少有两个已经占有资源;3.参与死锁的所有进程都在等待资源; 4.参与死锁的进程是当前系统中所有进程的子集。 (二)必要条件1.互斥条件:至少有一个资源必须处于非共享模式(即一次只有一个进程使用)。如果另一个进程申请该资源,那么申请进程必须延迟直到该资源释放为止,涉及的资源是非共享的。 2.不剥夺条件:资源不能被抢占(即只在进程完成其任务之后,才会释放其资源)。不能强行剥夺进程拥有的资源。3.请求和保持条件:一个进程必须占有至少一个资源,并等待另一资源,而该资源为其他进程占有进程在等待一新资源时继续占有已分配的资源。 4.环路等待条件:有一组进程{P0,P1,...,Pn},P0等待的资
6、源为P1所占有,P1等待的资源为P2所占有,Pn-1等待的资源为Pn所占有,Pn等待的资源为P0所占有,形成一个循环链。 四个条件必须同时满足才会出现死锁,或者说只要使上述四个必要条件中的某一个不满足,则死锁就可以解除。 四、计算机操作系统死锁问题的解决策略 当然,当我们意识到计算机操作系统中死锁问题重要性之时,我们总不能听之任之,让其一直持续下去,相反的,我们总会在充分发现其具体内涵及形成机制之后,对其发生的构成要素进行破坏和抑制,干扰其具体形成过程,才能真正意义上将这种死锁问题的发生概率以及发生率及其所造成的影响控制在最小范围之内。笔者在总结自身工作经验的过程中发现,常用的死锁问题解决
7、策略主要表现在以下几个方面: (一)死锁预防 通常的处理方式有以下三种:1.打破"不剥夺"条件:强迫那些请求新资源而没有立即得到满足的进程暂时释放它已保持的其它资源。这种方法实现起来非常复杂,通常适用于CPU和主存,缺点是反复地申请和释放资源,降低了整个系统的吞吐量;2.打破"部分分配"条件:对某进程所要求的资源一次性地分配完毕缺点是致使系统资源的严重浪费,可能有进程已占有的资源而很少使用;3.打
此文档下载收益归作者所有