关于进程中死锁问题的设计研究

关于进程中死锁问题的设计研究

ID:26694025

大小:216.50 KB

页数:9页

时间:2018-11-28

关于进程中死锁问题的设计研究_第1页
关于进程中死锁问题的设计研究_第2页
关于进程中死锁问题的设计研究_第3页
关于进程中死锁问题的设计研究_第4页
关于进程中死锁问题的设计研究_第5页
资源描述:

《关于进程中死锁问题的设计研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、..WORD.格式整理..关于进程中死锁问题的研究摘要死锁问题是Dijkstra于1965年研究银行家算法时首先提出的,也是计算机操作系统乃至并发程序设计中非常重要但又最难处理的问题之一。实际上死锁问题是一种具有普遍性的现象。不仅在计算机系统中,就是在其它各个领域乃至日常生活中,也都是屡见不鲜的。掌握对死锁的处理方法,对于指导我们的现实生活,都会有积极地意义。本文研究的是操作系统进程中的死锁问题。从理论上说,死锁问题的研究涉及到计算机科学中一个基本问题,即并行程序的终止性问题。本文将通过对死锁的基本概念、产生

2、的原因和产生死锁的四个必要条件的了解,找出合理的预防、避免、检测和解除的有效方法,并将其运用到实际问题中去。关键字:死锁的预防死锁的避免银行家算法死锁的检测死锁的解除一、死锁的基本概念1.1死锁的概念当两个或两个以上的进程因竞争系统资源而无休止的相互等待时,我们就称这些进程是死锁的,或者说它们处于死锁状态。1.2死锁产生的原因1、各进程竞争有限的资源。2、进程推进顺序不当。1.3产生死锁的四个必要条件1、互斥条件。指在一段时间内,一个资源只能由一个进程独占使用,若别的进程也要求该资源,则须等待直至其占用者释放

3、。2、请求和保持条件。指进程已经保持了至少一个资源,但又提出新的请求,而该资源已被其他进程占用,此时请求进程阻塞,但又不释放自己已获得的资源。3、不可剥夺条件。进程所获得的资源在未使用完之前,不能被其他进程强行夺走,而只能由其自身释放。..专业.知识.分享....WORD.格式整理..4、环路条件。指存在一个等待进程集合,正在等待一个占用的资源,正在等待一个占用的资源,…,正在的等待一个由占用的资源。这些进程及其请求的资源构成一个“进程——资源”的有向循环图。二、死锁的处理2.1死锁的预防死锁的预防是排除死锁

4、的静态策略,因为我们已经知道了导致死锁产生的四个必要条件,那么我们只须破坏这四个条件中的一个即可预防死锁。为此介绍如下4种方法。1、共享使用法允许一个资源部件可以由多个进程“同时”使用。这种方法在早期曾使用过,但实践证明这种方法对有些资源是行不通的。如对宽行就是由各个进程“同时”使用,结果在打印纸上交替出现了不同进程的不同信息,从而给用户带来很大的不便,故对此类资源一般都采用独占方式。由于对大多数资源来说互斥使用是完全必要的,所以通过破坏互斥条件来防止死锁是不现实的。2、预先静态分配法在进程调度程序选择进程时

5、,仅当进程所需要的全部资源都能满足时,才调度它进入内存运行。或者说,在进程尚处于运行前的静态情况下,就为它分配了所需要的全部资源。显然这是一种简单而安全的预防死锁的方法,但是,若资源搭配不当,就会导致进程将延迟运行,资源利用率低。3、采用剥夺式调度法这种方法主要用在处理器和存储器资源调度上,是调度进程自身的开销,以及主存和磁盘的对换进程、数据的开销。但对于需要由操作员装卸私有数据的外围设备,此法就不宜使用。这种方法实现起来比较复杂,且要付出很大的代价,还可能导致反复地请求和释放资源,而使进程的执行无限延迟。这

6、不仅延长了进程的周转时间,还增加了系统的开销,降低了系统的吞吐量。4、有序资源使用法..专业.知识.分享....WORD.格式整理..系统设计者把系统中所有资源都赋予一个唯一的编号。如令输入机为1,打印机为2,穿孔机为3,磁带机为4,等等。此法要求每个进程均应按照严格递增的次序请求资源,并且除非前一要求得到满足,否则不允许做进一步请求。这种方法较前一种方法提高了资源的利用率。特别是只要系统把比较重要或稀少的资源安排为较高的序号,便可能使最有价值的资源的利用率大大提高。但是,因为进程实际需要资源的次序并不一定与

7、系统规定的次序相符,因此可能提前分配了暂时不需要的小序号资源,从而造成资源的浪费。2.2死锁的避免死锁的避免是一种排除死锁的动态策略,允许进程动态地申请资源,但系统在分配资源之前,要先计算资源分配的安全性,若此次分配不会导致系统进入不安全状态,便将资源进行分配,否则不予以分配。Dijkstra的银行家算法是最具代表性的避免死锁的算法,这种方法是以银行系统所采用的借贷策略为基础建立的模型。下面将详细介绍银行家算法。1、银行家算法中的数据结构(1)可利用资源向量Available这是一个含有个元素的数组,其中的每

8、一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目。如果,则表示系统中现有类资源个。(2)最大需求矩阵Max这是一个的矩阵,它定义了系统中个进程中的每一个进程对类资源的最大需求。如果,则表示进程需要类资源的最大数目为。(3)分配矩阵Allocation这也是一个的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果,..专业.知识.分享....WORD.格式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。