银行家算法课程设计报告 (1)操作系统 下载本文

内容发布更新时间 : 2024/5/16 8:17:46星期一 下面是文章的全部内容请认真阅读。

目录

1. 设计目的……………………………………………………………………1 2. 问题描述……………………………………………………………………1 3. 需求分析……………………………………………………………………1 3.1 数据需求………………………………………………………………1 3.2 基本功能需求…………………………………………………………1 3.3 非功能性需求…………………………………………………………1 4. 概要设计……………………………………………………………………1 4.1 数据结构………………………………………………………………1 4.2 系统功能模块介绍……………………………………………………2 4.2.1 数据定义…………………………………………………………2 4.2.2 输出矩阵…………………………………………………………2 4.2.3 试分配资源………………………………………………………2 4.2.4 安全性检测………………………………………………………2 4.3 系统功能模块图………………………………………………………2 5. 详细设计……………………………………………………………………2 5.1 系统函数详细介绍……………………………………………………2 5.2 银行家算法……………………………………………………………3 5.3 安全性算法……………………………………………………………4 5.4 程序流程图……………………………………………………………4 6. 调试分析……………………………………………………………………6 7. 使用说明……………………………………………………………………8 8. 设计总结……………………………………………………………………8 9. 参考文献……………………………………………………………………9 10.程序源代码…………………………………………………………………9

西安建筑科技大学华清学院课程设计(论文)

1.设计目的

通过银行家算法设计与实现,可以加深学生对死锁的理解,掌握死锁的预防、避免、检测和解除的基本原理,重点掌握死锁的避免方法—银行家算法。使学生初步具有研究、设计、编制和调试操作系统模块的能力。

2.问题描述

设计一个进程动态请求资源的模拟系统,实现随机产生进程请求资源的数量;资源安全性检查算法;资源的分配算法;以及输出显示每次请求的结果和系统资源的状态。

3.需求分析

3.1数据需求

字符范围:0,1,2……n

3.2基本功能需求

为进程随机产生请求资源的数量,系统通过资源安全性检查,检查是否满足安全要求。若安全,则才分配资源;不安全时,系统恢复申请前的状态;只有当进程满足全部的资源需求时,该进程执行结束,释放所占的资源。

3.3非功能性需求

用户界面需求:简洁、易用、易懂、友好的用户界面。 硬件需求:Windows 7系统,VC++6.0开发工具。

4.概要设计

4.1数据结构

主要用到的数据结构: (1) 最大需求矩阵Max[][] (2) 已分配矩阵Allocation[][]

(3) 仍需求矩阵Need[][]=Max[][]-Allocation[][]

1

西安建筑科技大学华清学院课程设计(论文)

(4) 可利用资源向量Available[] (5) 申请各类资源向量Request[] (6) 工作向量 work[] , Finish[]

4.2系统功能模块介绍

4.2.1数据定义

int Max[MaxResource]

int Allocation[MaxResource] int Need[MaxResource] 4.2.2试分配资源

据用户输入的数据进行试分配 4.2.3输出矩阵

据输入数据输出对应矩阵,并计算出需求矩阵 4.2.4安全性检测

进程间是安全的时候则可以输出相应的安全序列。如果错误,则可以回到数据的初始化状态

4.3系统功能模块图 银行家算法

数据定义 试分配 输出矩阵 安全性检测 图4.3-1 功能模块图

5.详细设计

5.1系统函数详细介绍

int Max[MaxResource]

// 表示某个进程对某类资源的最大需求

int Allocation[MaxResource] // 表示某个进程已分配到某类资源的个数 int Need[MaxResource] // 表示某个进程尚需要某类资源的个数 int mark[MaxResource] //在使用FreeRecourse是以确定是否释放资

2