- 10
- 0
- 约7.18千字
- 约 15页
- 2021-11-26 发布于河北
- 举报
《操作系统--课程设计报告》银行家算法
姓 名:
学 号:
专 业:
指导老师:
目录
TOC \o 1-5 \h \z \o Current Document 一、设计目的 1..
\o Current Document 二、设计要求 1..
\o Current Document 三、设计内容和步骤 1..
\o Current Document 四、算法描述 4..
\o Current Document 五、实验结果 1..1.
\o Current Document 六、实验心得 1..2.
一、设计目的
银行家算法是避免死锁的一种重要方法, 本实验要求用高级语言编写和调试
一个简单的银行家算法程序。 加深了解有关资源申请、 避免死锁等概念, 并体会
和了解死锁和避免死锁的具体实施方法。
二、设计要求
在了解和掌握银行家算法的基础上, 能熟练的处理课本例题中所给状态的安
全性问题,能编制银行家算法通用程序,将调试结果显示在计算机屏幕上。
具体程序的功能要求:
1.设定进程对各类资源最大申请表示及初值确定。
2.设定系统提供资源初始状况(已分配资源、可用资源) 。
3.设定每次某个进程对各类资源的申请表示。
4.编制程序,依据银行家算法,决定其申请是否得到满足。
三、设计内容和步骤
设计内容
银行家算法的思路:先对用户提出的请求进行合法性检查,即检查请求的
是不大于需要的,是否不大于可利用的。若请求合法,则进行试分配。最后对试
分配后的状态调用安全性检查算法进行安全性检查。若安全,则分配,否则,不
分配,恢复原来状态,拒绝申请。
设计步骤
1、为实现银行家算法,系统中需要设置若干数据结构,用来表示系统中各
进程的资源分配及需求情况。
假定系统中有M个进程,N类资源。进程数和资源数由程序中直接定义
#define M 5 // 总进程数
#define N 3 // 总资源数
银行家算法中使用的数据结构如下:
(1)可利用资源Available。这是一个含有 m个元素的数组,其中的每 一个元素代表一类资源的空闲资源数目, 其初值是系统中所配置的该类资源的数
目,其数值随该类资源的分配和回收而动态的改变。如果 Available[j]=k ,表
示系统中 Rj 类资源有 k 个。
(2)最大需求矩阵Ma%这是一个n*m的矩阵,它定义了系统中每一个 进程对各类资源的最大需求数目。如果 Max[i , j]=k ,表示进程 Pi 对 Rj 类资源
的最大需求数为 k 个。
(3)分配矩阵 Allocation 。这是一个 n*m 的矩阵,它定义了系统中当前
已分配给每一个进程的各类资源。如果Allocation[i,j] =k,表示进程Pi当前 已分到 Rj 类资源有 k 个。
(4)需求矩阵Need这是一个n*m的矩阵,它定义了系统中每一个进程 还需要的各类资源的数目。如果 Need [i , j]=k ,表示进程 Pi 需要 Rj 类资源有
k 个,才能完成任务。
int Max[5][3]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};// 每 个 进
程对每类资源的最大需求
int Allocation[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};//
系统已分配资源
int Avaliable[3]={3,3,2}; // 系统可利用资源
int Need[5][3]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};// 还需要
资源
int Request[3];
2、实现过程
主函数
void main()// 主函数
{ int choice;
showdata();
safeAlgorithm();
do
{ printf(\n 输入接下来你要进行的操作 1 :分配资源 2: 显示资源
否则按任意键退出 );
scanf(%d,choice); switch(choice)
{ case 1: bankerAlgorithm(); break;
case 2: showdata(); break; default: break;
}
}while((choice==1)||(choice==2));
} 其中用到的函数操作有三个 showdata();// 显示资源矩阵 safeAlgorithm();// 安全性检测算法
bankerAlgorithm();// 利用银行家算法对申请资源对进行判定
3、安全性检查
程序中安全性算法的描述如下:
设置如下两个工作向量:
Work:表示系统可提供给进程继续运行的各类资源的空闲资源数目,它含有
您可能关注的文档
- 定密工作研究.docx
- 定时器中断程序设计实验(20210715150734).docx
- 定时器中断程序设计实验.docx
- 宠物商店的设计与实现.docx
- 对“跨越卡夫丁峡补”设想之研究的再思考.docx
- 导光板hotspot及亮暗线研究分析-.docx
- 导流洞基础处理施工组织设计.docx
- 导线应力弧垂研究分析.docx
- 层次研究分析法在大学生就业选择问题应用.docx
- 屋盖钢结构设计1503-2.docx
- 良肢位摆放在骨科康复中的应用.ppt
- 2026精选人教版一年级上册数学期末考试试卷(3套含答案解析).docx
- 2026新版人教版三年级上册语文期末考试试卷(3套含答案解析).pdf
- 2026精选人教版四年级上册英语期末考试试卷(3套含答案解析).pdf
- 2026新版人教版三年级上册数学期末考试试卷(3套含答案解析).pdf
- 2026新版人教版三年级下册数学期末考试试卷(3套含答案解析).docx
- 2026精选人教版四年级上册英语期末考试试卷(3套含答案解析).docx
- 2026新版人教版三年级上册语文期末考试试卷(3套含答案解析).docx
- 良肢位摆放与康复训练的结合.ppt
- 良肢位摆放在儿童康复中的应用.ppt
最近下载
- 欧感设备说明书 -.pdf
- 纳米压印技术.pptx VIP
- 人教版高中英语新教材词汇表 必修三单词默写汉译英.pdf VIP
- DB21_T 1690-2026 红松无性系果林培育技术规程.pdf VIP
- DB21_T 2508-2026 生猪生产监测技术规范.docx VIP
- DB21_T 2508-2026 生猪生产监测技术规范.pdf VIP
- 增值税一般纳税人选择简易办法征收备案表.pdf VIP
- 气体报警控制器-北京安赛克科技有限公司.DOC VIP
- 党支部2025年度组织生活会班子对照检查材料.docx VIP
- DB21_T 1647-2026 复州牛DB21_T 1647-2026 复州牛.pdf VIP
原创力文档

文档评论(0)