资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
操作系统课程设计报告操作系统课程设计报告题目:银行家算法设计与实现题目:银行家算法设计与实现院院 (系):(系): 计算机科学与工程学院计算机科学与工程学院 专专 业:业: 对日软件对日软件 班班 级:级: 学学 生:生: 学学 号:号: 指导教师:指导教师: 2010 年 12 月操作系统课程设计报告 1银行家算法设计与实现银行家算法设计与实现摘摘 要要银行家算法是一个用来预防系统进入死锁状态的算法,用它可以判断系统的安全性,如果系统当前处于安全状态,则可以为申请资源的进程分配资源,如果不是安全状态,则不能为申请资源的进程分配资源。银行家算法执行过程中,首先判断申请资源的进程所申请的资源数目是否合法,若是合法的,则可以为其进行试分配,再利用安全性算法求出安全序列,如果存在安全序列,则说明可以给申请资源的进程分配资源,分配成功,继续为其它进程服务。如果找不到安全序列,则说明为该进程分配资源后系统会进入不安全状态,所以不能为该进程分配资源,使该进程进入阻塞状态。若申请资源的进程申请的资源数目不合法,则不需要进行试分配,直接使其进入阻塞状态,处理其他申请资源的进程。论文首先对算法的设计从总体上进行了分析,然后分析各个细节,再对算法分模块设计,并对各个模块的算法思想通过流程图表示,分块编写代码,并进行调试和测试,最后进行组装测试及系统测试,使其成为一个可以用来判断系统安全状态的程序。关键词:可用资源关键词:可用资源 最大需求矩阵最大需求矩阵 分配矩阵分配矩阵 需求矩阵需求矩阵 请求向量请求向量 试分配试分配 安全性算法安全性算法 安全序列安全序列操作系统课程设计报告 2目目 录录银行家算法设计与实现.1摘 要.1目 录.21 绪论.51.1 课题背景.51.2 课题意义.51.3 运行环境.52 需求分析.12.1 问题描述.12.2 基本要求.12.3 概要分析.23 算法思想.33.1 安全性算法的算法思想.33.1.1 设置两个向量:.33.1.2 安全性检测.33.2 银行家算法的算法思想.4操作系统课程设计报告 33.2.1 银行家算法的思路.43.2.2 银行家算法.43.2.3 安全性检查算法.54 详细设计.64.1 银行家算法中用到的主要数据结构设计.64.2 算法整体设计与调用.64.3 模块设计与时间复杂度分析.84.3.1 int check_distribution(int* p,int k)函数.84.3.2 int check_safe()银行家算法.84.3.2 void print()输出函数.84.4 程序流程图.84.5.1 主函数 void main()函数流程图.94.5.2 判断试分配函数 int check_distribution(int* p,int k)流程图.94.5.3 银行家算法 int check_safe()流程图.104.5.4 输出函数 void print() 流程图.115 程序调试、分析与修改.125.1 分模块调试与分析.125.1.1 进程信息的输入与输出调试.125.1.2 进程请求资源输入出错提示信息处理.135.1.3 判断试分配函数 int check_distribution(int* p,int k).135.1.4 求安全序列函数 int check_safe().14操作系统课程设计报告 46 结论.157 小结.16参考文献.17附录(源代码).18绪论51 绪论绪论1.11.1 课题背景课题背景在预防死锁的各种算法中,总的来说,都是施加了较强的限制条件,从而使实现简单,但却严重地损害了系
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号