欢迎来到天天文库
浏览记录
ID:35617667
大小:293.00 KB
页数:25页
时间:2019-04-02
《课程设计报告--死锁解除中银行家算法的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机科学与工程学院课程设计报告题目全称:死锁解除中银行家算法的实现课程名称:计算机操作系统指导老师:XXX职称:讲师序号学生姓名学号班号成绩12345678910(注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。)指导老师评语:签字:25目录1背景介绍11.1对银行家算法的介绍21.2死锁32需求分析42.1问题分析52.2设计要求63概要设计43.1银行家算法中的课程设计53.2银行家算法63.3安全性检查64详细设计44.1程序的结构54.2程序的数据结构64.3本程序所定义
2、的函数及声明64.4本程序的主函数main()及功能64.5程序流程图64.6程序源代码65测试数据45.1测试数据65.2对各种请求的检测及安全性分析66课程设计小结与心得体会4252525251背景介绍1.1对银行家算法的介绍我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。 为保证资金的安全,银行家规定: (1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2)顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3)当银行家现有的资金不能满足顾客尚需的贷款数额时,
3、对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.1.2死锁所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。2需求分析2.1问题分析251背景介绍1.1对银行家算法的介绍我们可以把操作系统看作是银行家,操
4、作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。 为保证资金的安全,银行家规定: (1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2)顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.1.2死锁所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去
5、。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。2需求分析2.1问题分析25为了避免死锁,系统在进行资源分配前,应先检查当前状态是否安全,即是否有一组安全序列。若有,则等待进程提出资源分配申请,系统试探则把资源分配给进程,并进行安全性检查,若有一组安全序列,则把资源分配给进程,否则,则拒绝分配进程申请的资源。2.2设计要求(1)设计用来保存:可利用资源向量Available、最大需求矩阵Max、分配矩阵A
6、llocation、需求矩阵Need。(2)编写银行家算法,安全性检测算法。要求在不安全时输出错误信息。(3)编写输出函数,能对进程申请后的系统状态进行输出。3概要设计3.1银行家算法中的数据结构:(1)可利用资源向量Available[m]。其中每一个元素代表一类可利用资源的数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。(2)最大需求矩阵Max[n][m]。表示系统中n个进程中每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源最大数目为K个。(3)分配矩阵Allocation[n][m]。表示系统中每一类资源当前已
7、分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已得到Rj类资源为K个。(4)需求矩阵Need[n][m]。表示每一进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成任务。上述三个矩阵间存在着如下关系:Need[i,j]=Max[i,j]-Allocation[i,j]253.2银行家算法:设Request[i,j]是进程Pi的请求向量,如果Request[i,j]=K,表示进程i需要K个Rj类型的资源。当Pi发出资源请求后,系统
此文档下载收益归作者所有