1、 操作系统操作系统 课程设计报告课程设计报告 系系 别:别: 信息科学与技术系信息科学与技术系 专业班级:专业班级: 学生姓名:学生姓名: 指导教师:指导教师: 2 目目 录录 一、课程设计目的和意义一、课程设计目的和意义 3 二、课程设计题目描述及算法二、课程设计题目描述及算法 3 三、课程设计报告内容三、课程设计报告内容 3 1.算法描述 3 2.数据结构 4 3.主要函数说明 4 4.算法流程图 5 5.运行结果及说明 7 6.附录清单及分析 8 四四、总结、总结 14 3 一、课程设计目的和意义一、课程设计目的和意义 了解掌握银行家算法,学会模拟实现资源分配,同时有要求编写和调试一个
2、系统分配资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效 的防止和避免死锁的发生 二、课程设计题目描述及二、课程设计题目描述及算法算法 题目:银行家算法设计 设计要求:编制银行家算法通用程序,并检测所给状态的系统安全性。设进 程 I 提出请求 RequestN,则银行家算法按如下规则进行判断。 (1)如果 RequestNneed1 Work0=22已分配资源数 5,可分配 17,则总可分配资源数 22 后面的同理。 图 3 为申请资源 选择 1 则进行随机资源分配,选择 2 则进行手动资源分配。 图 4 手动分配 为保证程序只在选择的数为 0、1 或 2 时继续进行,使用 If
3、语句进行判断, 不是选择的这三个进程数时终止程序并提示重新输入。 图 5 给 p0 手动配后生成的图形 与 图 6 随机分配生成的图形 比较 当手动输入的数小于所需资源数时,所需数减小,已分配数增多,p0 原需 要 4 3 1, 手动分配 1 2 1 后,为 3 1 0,已分配变为 7 6 9,p1 、p2 同理;当手 8 动资源数为 4 4 2 时,need 为 0 0 0,但 allocation为 10 8 11,并不等于 10 7 9 , 出现错误。 图 7 随机分配 当选择 1 时,进行随机分配,随机分配的资源数为 3 2 1,无法满足需要, 产生错误。 6.附录清单及分析 #inc
4、lude #include #include #define M 3 #define N 3 int NeedMN,AllocationMN,AvalibleN,MaxMN,finishN; /Need :进程需要的资源数 Allocation:进程已分配的资源; Avalible:进程可供分配 的资源 void display(int *a,int n) /显示一维数组 int i; for(i=0;i=M) printf(“-have an safe list-n“); for(i=0;i“,sri); else printf(“p%dn“,sri); return 1; else printf(“after check there no safe list.n“); printf(“cant apply resoucen“); return