- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成绩
课程设计报告
题 目 银行家算法程序设计
课 程 名 称 操作系统课程设计
院 部 名 称 信息技术学院
专 业 计算机科学与技术
班 级 09计算机科学与技术(单)
学 生 姓 名 瞿丹蕾
学 号 0905205007
课程设计地点 A206
课程设计学时 20
指 导 教 师 何 健
金陵科技学院教务处制
课程设计的目的和要求
银行家算法是避免死锁的一种重要方法,本设计要求用C语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。通过对这个算法的设计,让学生能够对书本知识有更深地理解,在操作和其他方面有更高的提升,同时对程序设计的水平也有所提高。
二、课程设计环境要求
1、硬件环境
处理器Intel(R) Pentium(R) Dual;CPU: E2180 @ 2.00 GHz; 2.00 GHz,0.99 GB的内存。
2、软件环境
Microsoft Windows XP操作系统;装有Turbo C 2.0及VS2008软件。
三、设计任务介绍及系统需求分析
1、设计任务介绍
设计一个n个并发进程共享m个系统资源的程序实现银行家算法。要求包含:
简单的选择界面。
前系统资源的占用和剩余情况。
为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分配并且提示分配不成功。
撤销作业,释放资源。
2、系统需求分析
当系统在进行资源管理时,如果对进程资源分配不当,可能会使系统进入死锁状态,因而后面到来的进程也无法顺利执行。银行家算法中,要对当前申请资源的进程申请资源的数目进行判断,如果可以试分配,则试求出一个安全序列,如果可以求出,则说明这个进程分配资源后系统不会进入不安全状态,将该进程申请的资源分配给他,若求不出安全序列,则说明将资源分配给该进程生系统会进入不安全状态,所以就使该进程进入阻塞状态,等待以后可以分配资源时再执行该进程,然后系统继续服务其它进程。通过这样一个过程,可以有效避免系统进入死锁状态。
四、概要设计
避免死锁将系统状态分为安全状态和不安全状态两种。所谓安全状态指的是系统按照某进程顺序(1,2,3,......n)(称1,2,3,......n序列为安全序列),来为每个进程i分配其所需资源,直至满足每个进程对资源的最大需求,使每个简称都可以顺利完成。如果系统无法找到一个这样的安全序列,则称系统处于不安全状态。避免死锁就是通过一套完整的机制,让系统时时刻刻都处于安全状态。
(1)t0时刻系统通过算法检测当前系统是否安全,即是否可以找到一个安全序列使当前所有进程顺利完成,若找到则称系统安全,并按照序列继续进程的执行,并执行步骤(2);若找不到则称系统不安全即系统已进入死锁状态,立刻停止进程的执行,通过挂起一些进程来让系统进入安全状态,当系统处于安全状态后转向执行步骤(2)。
(2)当t1时刻有进程对系统提出自愿请求时,系统先检测当前进程资源请求是否大于此进程最大需求,若大于则不执行;若不大于,再检测当前的资源要求是否大于系统当前可分配数,若大于则不予分配,若不大于则进行步骤(3)。
(3)系统假设将进程i要求的资源分配给i,通过安全性算法检测将资源分配给进程后系统是否还处于安全状态,若处于则分配资源,若不处于则不予分配。
银行家算法程序总体结构图:
mainprintcheck
main
print
check
五、详细设计
一.功能模块设计
check()函数是用来检测已知进程的状态是否安全;print()函数是用来输入系统可用资源数。主函数主要实现了对整个程序的运行控制和对相关功能模块的调用。
总任务流程图如下:
资源请求request[i] rquest [
资源请求request[i]
rquest [ j ]是否大于need[i][j]
是
请求资源超过最大资源
否
request[j]是否小于need[i][j]并且request[j]是否大于available[j]
没有足够的可用资源
是
试探将资源分配给i,并修改相应数据结构
进行安全性检测
能否找到安全序列?
正式分配资源
否
是
否
Check()函数流程图如下:
把
把available[j]赋值给work[j]
k=n
fi
您可能关注的文档
- 销售业务毕业实习报告.docx
- 销售员顶岗实习报告范文.doc
- 银保工作述职报告.doc
- 银行 个人贷后检查报告书.doc
- 银行(信用社)“合规文化建设年”的自查报告.doc
- 银行(信用社)合规文化建设自查报告.doc
- 银行(信用社)员工个人述职报告.doc
- 银行(信用社)员工个人自查报告.doc
- 银行(信用社)支持小城镇建设情况调研报告.doc
- 银行(信用社)主任年度述职报告.doc
- 2025年2023政治理论考试题库及答案.doc
- 2025年淅川县隆晟新材料有限公司介绍企业发展分析报告模板.docx
- 广东省肇庆市高要区2023-2024学年八年级上册期末学业水平检测物理试题(含答案).pdf
- 2025年中国汽车运输船(PCTC)行业市场现状分析及未来趋势研判报告.docx
- 临时硬防护施工方案.pdf
- 2025年2021英语b级考试试题及答案.doc
- 酒泉市教育系统2026年高层次人才引进171人备考题库及参考答案详解一套.docx
- 2025年初级统计考试题库及答案.doc
- 2025年江阴鸿博睿新材料有限公司介绍企业发展分析报告模板.docx
- 2025年江苏墨阳复合材料科技有限公司介绍企业发展分析报告模板.docx
原创力文档


文档评论(0)