《操作系统》课程设计报告(死锁观察与避免).doc

《操作系统》课程设计报告(死锁观察与避免).doc

ID:56184451

大小:159.50 KB

页数:7页

时间:2020-03-18

《操作系统》课程设计报告(死锁观察与避免).doc_第1页
《操作系统》课程设计报告(死锁观察与避免).doc_第2页
《操作系统》课程设计报告(死锁观察与避免).doc_第3页
《操作系统》课程设计报告(死锁观察与避免).doc_第4页
《操作系统》课程设计报告(死锁观察与避免).doc_第5页
资源描述:

《《操作系统》课程设计报告(死锁观察与避免).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《操作糸统》课程设计卖训报告任务名称:死锁观察与避免指导教师:XXXXX专业:09信息技术(网络)班级:1学生姓名:XXX学号:XXXXXXX完成口期:2011⑹30一、《操作系统》课程设计的目的与要求1、目的死锁会引起进程僵死,严重的话会造成整个系统瘫痪。因此,死锁现彖是操作系统特别是人型系统中必须设法防止的。学生应独立的使用C语言(或其它程序设计语言)编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效的防止死锁的发生。从而更直观地了解死锁的起因,初步掌握防止死锁的简单方法,加深理解课堂上讲授过的知

2、识。2、要求(1)设计一个由n个并发进程共亨m个系统资源的系统。系统中进程可动态地申请资源和释放资源。系统按各进程的申请动态地分配各资源。(2)系统应能显示各进程屮请和释放资源以及系统动态分配资源的过程,便于用八观察和分析。(3)系统应能选择是否采用防止死锁算法或选用何种防止算法(如有多种算法)。在不采用防止算法时观察死锁现象的发生过程。在使用防止死锁算法时,了解在同样申请条件下,防止死锁的过程。二、简述课程设计内容、主要功能和实现环境银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法屮允许进程动态地屮请资源,但系统在进行资源分配

3、之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。这次课程设计是在c语言的环境下实现的。三、任务的分析、设计、实现和讨论1、任务的分析首先要理解死锁1、死锁概念:在多道程序系统中,多个进程的并发执行,可改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险一死锁。所谓死锁,是指多个进程在运行中因争夺资源而造成的一种僞局,当进程处于这种僞持状态时,若无外力作用,它们都将无法再向前推进。一组进程中,毎个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组

4、进程就称为死锁进程。2、关于死锁的一些结论:参与死锁的进程最少是两个;参与死锁的进程至少有两个已经占有资源;参与死锁的所有进程都在等待资源;参与死锁的进程是当前系统中所有进程的子集。如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。银行家算法的思路:1)进程一•开始向系统提出最大需求量.2)进程每次提岀新的需求(分期贷款)都统计是否超出它事先提出的最大需求量.3)若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的剩余资源量,若不超出,则分配,否则等待.我们可以把操隹垂统看作是银行家,操作系统管理的资源相当于银行家管理

5、的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量;(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.操作系统按照银行家制定的规则为进程分配资源,半进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按

6、半前的中请量分配资源,否则就推迟分配。肖进程在执行屮继续申请资源吋,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按半前的申请量分配资源,否则也要推迟分配。2、任务的设计与实现(分别给出系统总控和本人负责实现的算法流程图与说明)输入选择标志OPTION输入各进程动态申请资源数组AP输入各进程最大资源需求量数组VPMAXCLAIM开始最大资源需求量超过系统资源数岀岀错信息我在程序中负责的是avoid算法这一块东西。如果程序发生死锁弟戈就要释放其中的资源,使其可以运作然后输出ok或者erroro口找

7、岀一个未完成的进程作为现行进程3操作过程和结果分析程序中使用的数据结构和变量名说明如下:i束.如果4程结束.OPTION选择标志ADVANC1找岀一个耒此成加防-将锁”琲新进程已完成进程作为规行途樫“防跟死锁”算侨有请求?输入a[i]l22代表现有怨数。然后输入b[I]299代表最人需求资源。然后输入opnion的值。申请量超ftfeT8死锁处需求量?w理程序程序£

8、动判断其是否为死锁,并处理显示答案。4、思考题的解答和讨论死锁的防止是比较复杂的。虽然可用防死锁的方法或是用检测死锁然厉予以恢复的方法来解决死锁问题,但花费的代价是很人的。其

9、屮需要用到许多计数器。把资源是否是安全的都统计出來才能判断其是否为死锁。简化过程:先设法满足请求边,使它变成分配边,然后把只有分配边而无请求边的节点的所有分配边撤销(相当于解放U全部满足某进程

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

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

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