- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计(论文)
题 目: 银行家算法
院 (系): 信息与控制工程系
专业班级:
姓 名:
学 号:
指导教师:
2016年 1 月 15日西安建筑科技大学华清学院课程设计(论文)任务书
专业班级: 学生姓名: 指导教师(签名):
一、课程设计(论文)题目
银行家算法:1】汤小丹、梁红兵、哲凤屏、汤子瀛 编著.计算机操作系统(第三版).西安:西安电子科技大学出版社,2007.5
【2】史美林编.计算机操作系统教程.北京:清华大学出版社,1999.11
【3】徐甲同编著.操作系统教程.西安:西安电子科技大学出版社,1996.8
【4】Clifford,A.Shaffer编著.数决结构与算法分析(C++版).北京:电子工业出版社,2005.7
【5】蒋立翔编著.C++程序设计技能百练.北京:中国铁道出版社,2004.1 五、审核批准意见
教研室主任(签字)
设计总说明
我们可以把操作系统看成是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配,若没超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配,否则也要推迟。
关键字:死锁,安全序列,银行家算法进程
目录
1.设计目的 1
2.问题描述 2
3.需求分析 2
4.概要设计 2
5.详细设计 3
6.调试分析 7
7.使用说明 7
8.设计总结 9
9.参考文献 10
10.程序源代码 11
《操作系统》课程设计
银行家算法
1.设计目的
“操作系统”是计算机专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论、原理和方法的重要的实践环节。
操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握提高学生实际编程的能力void showdata(); //显示主界面函数
int safe(); //安全性算法函数
void share(); //银行家算法
int main(); //主函数
4.3 函数间的关系
此系统各个函数之间相互是有联系的,比如在主函数中会调用其他的函数,在share函数中也对前面两个函数进行了调用。
4.4 系统功能模块图
图4-4-1 系统功能模块图
5.详细设计
5.1 结构体的详细定义
int Available[50]={0};
int Max[50][50]={0};
int Allocation[50][50]={0};
int Need[50][50]={0};
int Request[50]={0};
int Work[50]={0};
char name[100]={0};
int temp[50]={0};
int Finish[50]={0};
5.2 系统函数详细介绍
void showdata()
此函数主要是在确定好资源和进程以及各进程的最大需求量和已分配的资源后,显示的此刻资源的分配情况。
void share()
此函数对申请的资源进行判定,如果合法,则予以分配;如果出错,则不给分配。
int safe()
此函数当为进程分配资源以后,检查这个状态是不是安全的,如安全,则确认分配;否则不予分配。
5.3 系统功能模块介绍
显示模块:此模块主要是显示某时刻的资源分配情况。
银行家算法模块:由银行家算法对资源进行分配,算法如下:
(1)如果Requesti[j]or=Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2)如果Requesti[j]or=Available[j], 便转向步骤3,否则,表示尚无足够资源,Pi需等待。
(3)系统试探着把资源分配给进程Pi
文档评论(0)