欢迎来到天天文库
浏览记录
ID:48161723
大小:289.51 KB
页数:21页
时间:2020-01-22
《银行家算法设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1绪论基于银行家算法的研究摘要1.研究的目的和意义加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的产生,必须同时满足四个条件,即一个资源每次只能由一个进程占用:第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其他资源:第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。通过这个算法可用解决生活中的实际问题,如银行贷款等.2.研究的内容及方法银行家算法是最有代表性的避免死锁的算法
2、,由于该算法能用于银行系统现金贷款的发放而得名。其实现思想是:允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。关键词:银行家算法安全死锁1绪论目录摘要………………………………………………………………i1绪论……………………………………………………………11.1前言…………………………………………………………………11.2本文主要研究内容…………………………………………………
3、…12需求分析………………………………………………………22.1死锁的概念……………………………………………………………22.2关于死锁的一些概念…………………………………………………22.3资源分类………………………………………………………………22.4产生死锁的必要条件…………………………………………………22.5死锁预防………………………………………………………………32.6银行家算法……………………………………………………………33概要设计………………………………………………………43.1设计思路………………………………………………………………43.2数据结构…
4、……………………………………………………………43.3主要函数说明…………………………………………………………54详细设计…………………………………………………………64.1算法描述…………………………………………………………………64.1.1银行家算法……………………………………………………………64.1.2安全性检查算法………………………………………………………74.2函数的实现过程…………………………………………………………74.3程序流程图………………………………………………………………95测试结果…………………………………………………………106结果分析………
5、…………………………………………………127总结……………………………………………………………13源程序清单…………………………………………………………141绪论2需求分析1绪论1.1前言银行家算法是避免死锁的一种重要方法。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否
6、满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。银行家算法确实能保证系统时时刻刻都处于安全状态,但它要不断检测每个进程对各类资源的占用和申请情况,需花费较多的时间。现在的大部分系统都没有采用这个算法,也没有任何关于死锁的检查。 1.2本文主要研究内容(1)设计银行家算法,能够检测系统某一时刻是否安全,输出安全序列。(2)实现安全性检测算法。即在某一进程在某时刻提出Request时,检测系统是否能够满足该进程的请求,并得到一个安全序列,若能够得到一个安全序列,则系统能够满足它的请求,同意分配资源。若不能够满足,则回到请求前状态。(3)对于此
7、次课程设计通过需求分析、概要设计、详细设计、测试与分析、总结、源程序清单等模块进行全面分析,以加深对死锁概念的理解,以及银行家算法避免死锁的过程。能够利用银行家算法,有效避免死锁的发生,或检测死锁的存在。2需求分析操作系统课程设计2需求分析2.1死锁的概念所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到
此文档下载收益归作者所有