云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统,银行家算法

操作系统,银行家算法

  • 62 次阅读
  • 3 次下载
  • 2025/6/2 1:11:33

4 详细设计

该算法中用到了较多的数据,基于程序的易实现和较好的结构,决定采用结构链表,以进程为单位(结点)。 (2)数据结构设计

typedef struct my_process {

int num; //进程标号

int Max[M]; // 表示某个进程对某类资源的最大需求 int Allocation[M]; // 表示某个进程已分配到某类资源的个数 int Need[M]; // 表示某个进程尚需要某类资源的个数 struct my_process* next; //指向下一个结点(进程) }process;

int Available[M]={0};// 其中每一个数组元素表示当前某类资源的可用数

目,初始化为系统所提供的资源的最大数目

int Request[M]={0}; //请求向量

int Record_work[N][M]={0};//存储当前work[]的值,以便输出 int Safety[N]={0}; //存储安全序列,以便后面排序

(3)算法整体设计与调用

主函数void main()主要分四大块:

(1)首先需要初始化Init_process(process **head,int m,int* count),存储系统当前状态信息;

(2)调用安全算法Safety_Algorithm,检测当前系统安全状态,若安全则进行下一步,否则打印相关信息,程序退出。

(3) 调用试分配函数Attempt_Allocation,进行试分配,若试分配成功,修改相关数据结构,打印当前系统资源分布图,转下一步,否则,打印提示信息,接收其他请求向量。

(4) 再次调用安全性算法,检查试分配以后的系统安全性,若安全打印安全性序列和当前系统资源分布图,并进入新一轮的执行。否则之前的试分配作废,恢复试分配之前的数据结构,输出相关提示信息,接收下一个进程请求 。

结束语

通过本次论文设计我了解到银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。通过本次课程设计,我对软件的开发的过程有了较为深入的了解,虽然只是对一个问题的简单模拟,但麻雀虽小五脏俱全,我对相关问题的解决已经有了一定的认识,对软件技术这门课程也有了更为透彻的感悟。本次课程设计,锻炼了我分析问题和解决问题的能力,为今后相关问题的解决积累了宝贵经验,也增强了自己的耐心与自信,受益匪浅。

参考文献

[1] 严蔚敏,吴伟民.数据结构. 北京:清华大学出版社,2006.

4 详细设计

[2] 汤小丹 梁红兵 哲凤屏 汤子嬴, 计算机操作系统(第三版)西安电子科技大学出版社;

[3] 汤子瀛 梁红兵 哲凤屏 汤子灜.《计算机操作系统(第三版)》.西安西安电子科技大学出版社2007.5

搜索更多关于: 操作系统,银行家算法 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

4 详细设计 该算法中用到了较多的数据,基于程序的易实现和较好的结构,决定采用结构链表,以进程为单位(结点)。 (2)数据结构设计 typedef struct my_process { int num; //进程标号 int Max[M]; // 表示某个进程对某类资源的最大需求 int Allocation[M]; // 表示某个进程已分配到某类资源的个数 int Need[M]; // 表示某个进程尚需要某类资源的个数 struct my_process* next; //指向下一个结点(进程) }proces

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com