C语言银行家算法的实现与应用
时间:2018-09-23 20:19 来源:毕业论文 作者:毕业论文 点击:次
摘要:银行家算法是一种能够避免死锁的经典算法,它通过模拟银行借贷系统的分配策略,来确保操作系统的安全运行。本文依据操作系统课程中死锁及银行家算法的相关知识,描述了它的数据结构和算法流程,并使用C语言具体实现了该算法。由于银行家算法中安全检查过程要求严格,导致系统开销过大,效率不高。对此,本文对它的性能做了改进。最后用改进后的银行家算法解决扶贫基金的有效分配问题,试验结果表明,使用该算法对扶贫基金进行分配可使扶贫基金的分配更合理,效率更高效,资产质量更优良。28514 毕业论文关键字:操作系统;死锁;进程;数据结构;银行家算法;资源分配 Implementation And Application of Banker’s Algorithm Abstract: Banker’s algorithm, a classical algorithm to avoid deadlock, is use to ensure the computer operating system to run safely through simulating the allocation strategy of the bank borrowing and lending system. The data structure and flow of work are described in the paper, and the algorithm is implemented by C language program according to the relevant knowledge about deadlock and banker’s algorithm. As the safety inspection process is strict, it leads to high system overhead and low efficiency. So we improve the performance of algorithm. In the end, the improved banker’s algorithm is applied to solve the effective distribution of poverty alleviation fund. The experience results show that using the algorithm of the poverty alleviation funds allocated to poverty alleviation fund allocation more reasonable, more efficient, more excellent asset quality. Key Words: The Operating System;Deadlock;Process;Data Structure;Banker’s Algorithm;The Allocation Of Resources 目 录 摘 要1 引言2 1.课题研究的目的和意义2 1.1 课题研究的目的2 1.2 课题研究的意义2 2.银行家算法的原理分析2 2.1 银行家算法的基本思想3 2.2 银行家算法中的数据结构和描述5 3.银行家算法的实现和改进6 3.1银行家算法的实现6 3.2银行家算法的改进9 4.银行家算法的应用10 4.1 基于银行家算法的扶贫基金的有效分配问题10 4.2 实例应用11 5.总结11 参考文献12 致谢13 银行家算法的实现与应用 引言 研究银行家算法就不得不提到死锁,在操作系统课程中,死锁做为一个重要概念在整个操作系统中占有举足轻重的地位。为了提高资源利用率和系统吞吐量,现代操作系统大量采用多任务并行调度策略,因此死锁在计算机软件和硬件都迅猛发展的当代依然广泛存在。在设计操作系统时,无法回避对死锁问题的考虑和处理。银行家算法做为一种经典的解决死锁问题的方案,其研究的意义和重要性都是不言而喻的。基于相关课程的学习,对银行家算法的具体实现和推广进行研究、分析并加以应用。 1.课题研究的目的和意义 1.1 课题研究的目的 就目前而言,尽管人们对银行家算法已经有了相当深入的认识和研究,并已经做为一个经典算法编入教科书。但是,仍然有继续深入研究的价值。就本文而言,通过研究银行家算法的具体实现和现实应用,第一可以更加深入的理解死锁的特性和危害,第二可以更加深刻的掌握处理死锁的策略以及银行家算法的基本思想和流程,第三基于对银行家算法深入的认识可以对它的局限性做一些改进也可以在解决实际问题中灵活地运用它们。 1.2 课题研究的意义 在计算机操作系统中银行家算法有重要的研究意义。第一,利用银行家算法,可以检测系统为进程分配资源的情况,决定系统是否响应某进程的请求并为其分配资源,从而很好的避免了死锁的发生。第二,在三种死锁的处理策略中,避免死锁的方法所施加的限制条件较弱,不需要特别的软硬件资源即可获得令人满意的系统性能。第三,现实生活中资源分配的例子很多,可借助于该算法进行合理分配,达到优化资源的目的。所以研究银行家算法是很有必要的,也是很有现实意义的。 (责任编辑:qin) |