课 程 设 计
课程名称_____操作系统 ____
题目名称_ 银行家算法 _
学生学院_____计算机学院_________
专业班级_
学 号____ _ ___ ___
学生姓名____ ______ _
指导教师______= ___________
1
2013 年 1 月 14 日
2
操作系统 课程设计任务书
学生姓名 专业班级 学号
题 目
银行家算法
指导教师 林穗 题目编号 2012 秋-13
主要内容
1)了解多道程序系统中,多个进程并发执行的资源分配。
2)掌握银行家算法,了解资源在进程并发执行中的资源分配情况。
3)掌握预防死锁的方法,系统安全状态的基本概念。
任务要求
设计一个 n 个并发进程共享 m 个系统资源的程序以实现银行家算法。要
求:
1) 简单的选择界面;
2) 能显示当前系统资源的占用和剩余情况。
3) 为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分
配并且提示分配不成功;
4) 撤销作业,释放资源。
编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条
件,并采用适当的算法,有效地防止和避免死锁的发生。
参考文献
[1] 计算机操作系统, 汤小丹等 ,西安电子科技大学出版社
[2] 操作系统实验指导书,傅秀芬,广东工业大学(自编)
[3] 计算机操作系统教程 ( 第二版 ), 张尧学、 史美林,清华大学出版社
[4] 现代操作系统,A.S.Tanenbaum 著,陈向群等译机械工业出版社
审查意见
指导教师签字:
系主任签字: 年 月 日
说明:本表由指导教师填写,由系主任审核后下达给选题学生,装订在设计(论文)首页
3
目录
1 设计思想说明…………………………………………………………………………………1
1.1 设计环境………………………………………………………………… ………………1
1.2 设计思想………………………………………………………………… ………………1
2 系统结构………………………………………………………………………………………1
3 数据结构说明………………………………………………………………… ………………1
4 算法流程图…………………………………………………………………… ………………1
4.1 安全算法…………………………………………………………………………………… 2
4.2 银行家算法………………………………………………………………………………… 3
5 主要函数列表……………………………………………………………………………………3
6 测试与分析………………………………………………………………………………………4
7 用户使用说明………………………………………………………………………………… 8
8 附录…………………………………………………………………………………………… 9
4
正文
1 设计思想说明
1.1 设计环境
Win7 visual C++ 6.0
1.2 设计思想
操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进
程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量
分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的
资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能满足则按当前的申
请量分配资源,否则也要推迟分配。
2 系统结构
3 数据结构的说明
1)可利用资源向量 Available
是个含 有 m 个 元 素的数组 ,其中的 每 一 个元 素 代 表一 类 可 利用的资 源 数 目。如果
Available[j]=K,则表示系统中现有 Rj 类资源 K 个。
2)最大需求矩阵 Max
这是一个 n×m 的矩阵,它定义了系统中 n 个进程中的每一个进程对 m 类资源的最大需求。
如果 Max[i,j]=K,则表示进程 i 需要 Rj 类资源的最大数目为 K。
3)分配矩阵 Allocation
这也是一个 n×m 的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。
1