《操作系统》课程设计
题 目 银行家算法
学 院 计算机学院
专 业 网络工程
姓 名 唐颖杰
2018 年 1 月 12 日
目录
一、设计要求.....................................................................................................................................1
二、概要设计.....................................................................................................................................1
2.1 设计思路...............................................................................................................................1
2.2 安全性算法设计...................................................................................................................2
2.3 银行家算法设计...................................................................................................................4
2.4 数据结构...............................................................................................................................5
2.5 程序模块...............................................................................................................................6
2.5.1 主要模块....................................................................................................................6
2.5.2 各模块的主要功能说明............................................................................................7
三、详细设计.....................................................................................................................................9
3.1 系统主要过程流程图...........................................................................................................9
3.2 安全性算法流程图.............................................................................................................11
3.3 银行家算法流程图.............................................................................................................12
四、程序清单...................................................................................................................................13
4.1 主函数.................................................................................................................................13
4.2 银行家算法.........................................................................................................................13
4.3 安全性算法.........................................................................................................................14
4.4 添加新进程.........................................................................................................................15
4.5 更改进程.............................................................................................................................15
4.6 撤销进程.............................................................................................................................16
4.7 更新显示.............................................................................................................................16
4.8 资源量的比较判断.............................................................................................................18
五、程序的运行情况.......................................................................................................................20
5.1 程序初始化界面.................................................................................................................20
5.2 添加资源界面.....................................................................................................................21
5.3 输入进程界面.....................................................................................................................21
5.4 安全性检查界面.................................................................................................................23
5.5 更改进程界面.....................................................................................................................23
5.6 请求资源界面.....................................................................................................................24
5.7 撤销进程界面.....................................................................................................................25
六、实验的检查结果.......................................................................................................................26
6.1 输入银行家算法之例.........................................................................................................26
6.1.1 T0 时刻的安全性.....................................................................................................27
6.1.2 P1 请求资源.............................................................................................................27
6.1.3 P4 请求资源.............................................................................................................29
6.1.4 P0 请求资源.............................................................................................................30
6.2 其他操作的结果检查.........................................................................................................31
6.2.1 更改进程操作..........................................................................................................31
6.2.2 撤销进程操作..........................................................................................................32
6.2.3 重置所有操作..........................................................................................................33
6.2.4 退出系统操作..........................................................................................................34
七、设计心得及总结.......................................................................................................................34
八、用户使用说明...........................................................................................................................37
九、参考文献...................................................................................................................................40
一、设计要求
设计一个 n 个并发进程共享 m 个系统资源的程序以实现银行家算法。要求:
1) 简单的选择界面;
2) 能显示当前系统资源的占用和剩余情况;
3) 为进程分配资源,如果进程要求的资源大于系统剩余的资源,不予
分配并且提示分配不成功;
4) 撤销作业,释放资源。
编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,
并采用适当的算法,有效地防止和避免死锁的发生。
二、概要设计
2.1 设计思路
首先是进行进程的输入,在输入进程时先检查输入的已分配资源量是否小
1