没有合适的资源?快使用搜索试试~ 我知道了~
操作系统实验报告PDF
需积分: 11 2 下载量 157 浏览量
2021-01-05
08:04:01
上传
评论
收藏 853KB PDF 举报
温馨提示
试读
24页
操作系统实验报告PDF
资源推荐
资源详情
资源评论
课程设计报告书
题目:银行家算法的实现
院 (部) 计算机科学与技术学院
专 业 软件工程
学生姓名 程双喜
学生学号 2007441126
指导教师 张阳
课程名称 操作系统课程设计
课程代码 08160074
课程学分 1
起始日期 2021.1.2-2021.1.5
《操作系统课程设计》任务书
一、目的任务
通过编程实现银行家算法,加深对操作系统死锁避免、进程资源分配、进
程调度等概念的理解。同时,通过实践,加强对编程技能的训练,强化专业文
档写作。
二、设计内容
用任意语言实现银行家算法。银行家算法是一个避免死锁的著名算法,它以
银行借贷系统的分配策略为基础,判断并保证系统的安全运行。具体要求如下:
1、 程序包括初始化模块,实现系统初始资源的给定。
2、 安全性检查模块,判断系统状态是否安全。
3、 信息显示模块,显示当前系统状态。
4、 在报告中给出程序设计流程图、程序用到的主要数据结构和函数。
5、 在报告中给出程序测试方案和测试结果,测试应包含程序的每一个选择
分支。
6、 按要求规范完成设计报告。
三、时间安排
2021 年 1 月 2 日至 1 月 5 日(第 17 教学周)
四、设计工作要求
1、 程序设计简洁高效,结构和逻辑清晰,功能模块相对独立;
2、 规范且完备的测试;
3、 报告格式符合要求。
五、参考文献
1、https://blog.csdn.net/qq_36260974/article/details/84404369
目录
银行家算法的实现 ..........................................................................................................................0
一、 算法原理............................................................................................................................0
二、 详细设计............................................................................................................................1
1. 设计流程图............................................................................................................................. 1
2. 主要功能模块 ......................................................................................................................... 4
银行家算法中的数据结构 ........................................................................................................... 4
银行家算法 ................................................................................................................................. 4
安全性算法 ................................................................................................................................. 5
三、 程序测试............................................................................................................................6
1. 初始化模块测试 ..................................................................................................................... 6
2. 银行家算法模块测试 .............................................................................................................. 7
3. 死锁检测模块测试 .................................................................................................................. 8
四、 总结与分析 ........................................................................................................................9
1. 总结 ....................................................................................................................................... 9
2. 分析 ....................................................................................................................................... 9
五、 参考文献.......................................................................................................................... 11
六、 附录................................................................................................................................. 12
0
银行家算法的实现
一、 算法原理
Dijkstra 提出的银行家算法是最有名的避免死锁的策略,这种策略是以银行系
统所采用的借贷策略为基础建立模型的。银行只有有限数目的资金——资源,可以
用于贷给不同的借用者——进程。如果所有客户都能得到他们的最大的贷款金额,
并偿还借款,那么客户满意了,银行也是安全的。
银行家算法只要有资源请求不符合安全检测部分两部分。对于资源请求部分,
首先检查进程的本次请求是否超过它最初的资源要求总量。如果本次进程请求有效,
下一步确定系统是否可以满足进程的这次请求,如果不能满足,挂起线程;如果可
以满足,调用安全检测算法。
在操作系统中,由于多个进程对资源的争夺,对系统的安全造成威胁可能造成
死锁。而死锁产生的必要条件分别为互斥条件、请求和保持条件、不可抢占条件、
循环等待条件。为了解决死锁这一问题,目前处理死锁的方法为:预防死锁、避免
死锁、检测死锁、解除死锁。
本次主要设计的是死锁避免和检验的算法实现。死锁避免的主要的内容是银行
家算法,它包括对申请进程的预分配以及安全性检测。死锁检验的内容主要是对资
源有序图的简化,当且仅当资源分配图是不可简化时,则说明系统存在死锁。
在设计银行家算法时要定义 Available(可利用的资源量)、Allocation(已分配
的资源量)、Need(所需求的资源量)、Max(最大需求量),还会使用到数组,有利于
各个变量矩阵的运算。
死锁避免算法的结果可以动态低显示系统为每个进程分配资源时各个资源矩阵
的变化,结果显示为是否处于安全状态,若处于安全状态,则出现安全序列,否则
显示系统处于不安全状态。死锁检测算法动态地显示有向边的资源分配图的简化过
程,结果显示当前环境不会发生死锁。
剩余23页未读,继续阅读
资源评论
双喜不脱发
- 粉丝: 41
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功