- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 银行家算法
实验内容简要描述
实验目标:
加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算
法,有效的防止和避免死锁的发生。
实验要求:
银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算
法程序。
用银行家算法实现资源分配。
设计五个进程 {p0,p1,p2,p3,p4} 共享三类资源 {A,B,C}的系统, 例如, {A,B,C}的资源数量分别为 10 ,5 ,
7 。进程可动态地申请资源和释放资源,系统按进程的申请动态地分配资源,要求程序具有显示
和打印各进程的某一个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号
以及为某进程分配资源后的有关资源数据。
报告主要内容
设计思路
设计进程对各在资源最大申请表示及初值确定。
设定系统提供资源初始状态。
设定每次某个进程对各类资源的申请表示。
编制程序,依据银行家算法,决定其申请是否得到满足。
主要数据结构
假设有 M 个进程 N 类资源,则有如下数据结构:
MAX[M*N] M 个进程对 N 类资源的最大需求量
AVAILABLE[N] 系统可用资源数
ALLOCATION[M*N] M 个进程已经得到 N 类资源的资源量
NEED[M*N] M 个进程还需要 N 类资源的资源量
银行家算法:
设进程 I 提出请求 Request[N] ,则银行家算法按如下规则进行判断。
(1)如果 Request[N]=NEED[I ,N] ,则转 (2) ;否则,出错。
(2)如果 Request[N]=AVAILABLE,则转 (3) ;否则,出错。
(3)系统试探分配资源,修改相关数据:
AVAILABLE=AVAILABLE-REQUEST
ALLOCATION=ALLOCATION+REQUEST
NEED=NEED-REQUEST
系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
安全性检查:
(1)设置两个工作向量 WORK=AVAILABLE;FINISH[M]=FALSE
(2)从进程集合中找到一个满足下述条件的进程,
FINISH[i]=FALSE
NEED=WORK
如找到,执行 (3) ;否则,执行 (4)
(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。
WORK=WORK+ALLOCATION
FINISH=TRUE
GO TO 2
(4)如所有的进程 Finish[M]=true ,则表示安全;否则系统不安全。
主要代码
源程序:
#include iostream
using namespace std;
#define MAXPROCESS 50 /* 最大进程数 */
#define MAXRESOURCE 100 /* 最大资源数 */
int AVAILABLE[MAXRESOURCE]; /* 可用资源数组 */
int MAX[MAXPROCESS][MAXRESOURCE]; /* 最大需求矩阵 */
int ALLOCATION[MAXPROCESS][MAXRESOURCE]; /* 分配矩阵 */
int NEED[MAXPROCESS][MAXRESOURCE]; /* 需求矩阵 */
int REQUEST[MAXPROCESS][MAXRESOURCE]; /* 进程需要资源数 */
bool FINISH[MAXPROCESS]; /* 系统是否有足够的资源分配 */
int p[MAXPROCES
您可能关注的文档
- 仓库各类操作流程图(非常实用).pdf
- 仓库管理的实习报告.pdf
- 仓库管理工作总结与计划.pdf
- 仓库管理规章制度.pdf
- 仓库管理面试自我介绍.pdf
- 仓库管理实务课程重点资料.pdf
- 仓库管理系统c语言程序设计分析报告.pdf
- 仓库管理系统概要设计说明书.pdf
- 仓库管理系统数据库课程设计.pdf
- 仓库管理系统项目开发计划.pdf
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)