1、 操作系统课程设计报告操作系统课程设计报告 课程设计题目:模拟实现银行家算法 学 院:高职院 专 业:计算机应用 班 级:计算机应用 1 班 一、 目的和要求目的和要求 银行家算法是死锁避免的重要算法, 本次课程设计要求用高级语 言编写和调试一个简单的银行家算法程序。通过本次课程设计, 加深对死锁以及避免死锁概念的理解, 并体会银行家算法的具体 实施办法。 二、二、 具体内容具体内容 (1)设置各类资源的最大数目以及各个进程所需的资源的最 大数目。 (2)初始设置各资源的分配情况,且为安全状态。 (3)某个进程提出对各资源的申请,通过银行家算法决定是 否答应该申请。 三、三、 实验要求实验要求
2、 (1)需写出设计说明。 (2)设计实现代码及说明。 (3)运行结果。 四、主要实验步骤四、主要实验步骤 (1)分析银行家算法结构; (2)画出银行家算法的流程图,即设计说明; (3)根据画出的流程图使用 C+语言编写相应的代码;程序 主要由 main 函数和以下几个函数组成: void input();用户输入银行家算法的初始数据; void output();输出当前系统资源分配情况; void change();当请求资源满足要求时,进行分配,系统资源 发生改变; int check();安全性算法,检查是否存在安全序列; void outputsafe();输出安全序列的资源分配表。
3、(4)检查代码,将编出的代码编译、链接,验证其正确性。 开始开始 输入银行输入银行 家算法初家算法初 始数据始数据 执行安全性算执行安全性算 法法 数据是否正确数据是否正确 是否存在安全序列是否存在安全序列 输入进程输入进程 PiPi发出的发出的 请求向量请求向量 请求资源是否请求资源是否 小于需求资源小于需求资源 系统将资源分配给系统将资源分配给PiPi 执行算法的执行算法的 是否为初始数据是否为初始数据 结束结束 资源分配无资源分配无 效效,恢复分配恢复分配 前的系统资源前的系统资源 情况情况 输出当前资输出当前资 源分配表源分配表 N N Y Y N N Y Y N N Y Y 输出安全
4、序列输出安全序列 的资源情况的资源情况 是否有进程是否有进程 发出请求向量发出请求向量 N N Y Y N N Y Y 请求资源是否请求资源是否 小于系统资源小于系统资源 Y Y 进程Pi需等待 N N Y Y 五、实验环境五、实验环境 PC 兼容机、Windows 操作系统、编译语言等。 六六、程序代码、程序代码 #include /本实验中使用到的库函数 #include #include int max53; /开始定义银行家算法中需要用到的数据 int allocation53; int need53; int available3; int request53; char *finish5; int safe5; int n,i,m; int k=0; int j=0; int work3; int works53; void line() /美化程序,使程序运行时更加明朗美观 printf(“-