操作系统课程设计报告

操作系统课程设计报告

ID:863725

大小:302.03 KB

页数:25页

时间:2017-09-21

操作系统课程设计报告_第1页
操作系统课程设计报告_第2页
操作系统课程设计报告_第3页
操作系统课程设计报告_第4页
操作系统课程设计报告_第5页
资源描述:

《操作系统课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、枣庄学院计算机科学系课程设计任务书题目:银行家算法与实现学号:200912230360姓名:张海专业:计算机网络课程:操作系统指导教师:李刚职称:讲师完成时间:2011年06月----2011年06月枣庄学院计算机科学系制2011年月日正文1课程设计简介1.1课程设计题目银行家算法的模拟实现。应用银行家算法验证进程安全性检查及分配资源。1.2课程设计目的本设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。A、了解进程产生死锁的原因,了解为什么要进行死锁的避免。B、掌握银行家算法的数据结构,了解算

2、法的执行过程,加深对银行家算法的理解。1.3课程设计内容此次课程设计的主要内容时模拟实现动态资源分配。同时要求编写和调试一个系统动态分配资源有效的防止和避免死锁的发生的简单模拟程序。设计一个n个并发进程共享m个系统资源的系统。进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源。要求采用银行家算法实现。2实验原理分析2.1算法的来源及基本思想银行家算法,顾名思义是来源于银行的借贷业务,通过这个算法可以用来解决生活中的实际问题,如银行贷款等。一定数量的本金要应多个客户的借贷周转,为了防止银行加资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中

3、研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。2.2死锁产生的条件银行家算法是用来避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的产生,必须同时满足四个条件:A、即一个资源每次只能由一个进程使用;B、第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,单它仍继续宝石已得到的所有其他资源;C、第三个为非

4、剥夺条件,即在出现死锁的系统中一定有不可剥夺使用的资源;D、第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。银行家算法是避免死锁的方法中,施加的限制条件较弱的,有利于获得令人满意的系统性能的方法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。2.3模拟进程申请资源把一个进程需要和已占有资源的情况记录在进程控制中,假定进程控制块PCB其中“状态”有就绪态、等待态和完成态。当进程在处于等待态时,表示系

5、统不能满足该进程当前的资源申请。“资源需求总量”表示进程在整个执行过程中总共要申请的资源量。显然,,每个进程的资源需求总量不能超过系统拥有的资源总数,银行算法进行资源分配可以避免死锁.3程序结构分析3.1程序流程图程序流程图是人们对解决问题的方法、思路或算法的一种描述。流程图的优点:(a)采用简单规范的符号,画法简单;(b)结构清晰,逻辑性强;(c)便于描述,容易理解。流程图采用规范的符号(1)起始框(2)终止框(3)执行框(4)判别框本次制作流程图省略了起始框和终止框。安全性算法流程:银行家算法流程:注:程序初始化流程包含在银行家流程中但未画出。3.2程序模块划分A.输

6、出资源分配情况B.输出资源分配后后的情况C.银行家算法:设进程i提出请求Request[n],则银行家算法按如下规则进行判断。1)如果Request[n]>Need[i,n],则报错返回。2)如果Request[n]>Available,则进程i进入等待资源状态并返回。3)假设进程i的申请已获批准,于是修改系统状态:Available=Available-RequestAllocation=Allocation+RequestNeed=Need-Request4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。D.安全性检查1)设置两

7、个工作向量Work=Available;Finish[M]=False2)从进程集合中找到一个满足下述条件的进程,Finish[i]=FalseNeed<=Work如找到,执行(3);否则,执行(4)3)设进程获得资源,可顺利执行,直至完成,从而释放资源。Work=Work+AllocationFinish=TrueGOTO2(4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。4数据结构分析算法用到的主要数据结构和C语言说明。(1)、可利用资源向量INTAVAILABLE[M]M为资源的类型。(2)、最

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

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

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