收藏 分享(赏)

操作系统实验报告三-银行家算法.doc

上传人:精品资料 文档编号:8452043 上传时间:2019-06-28 格式:DOC 页数:14 大小:206.38KB
下载 相关 举报
操作系统实验报告三-银行家算法.doc_第1页
第1页 / 共14页
操作系统实验报告三-银行家算法.doc_第2页
第2页 / 共14页
操作系统实验报告三-银行家算法.doc_第3页
第3页 / 共14页
操作系统实验报告三-银行家算法.doc_第4页
第4页 / 共14页
操作系统实验报告三-银行家算法.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、银行家算法 1操作系统实验三银行家算法姓名:杨益林 学号:71115215报告日期:2017.06.07银行家算法一、实验目的通过实验, 加深对多实例资源分配系统中死锁避免方法银行家算法的理解,掌握 Windows 环境下银行家算法的实现方法,同时巩固利用 Windows API 进行共享数据互斥访问和多线程编程的方法。二、实验内容1.在 Windows 操作系统上,利用 Win32API 编写多线程应用程序实现银行家算法。2.创建 n 个线程来申请或释放资源,只有保证系统安全,才会批准资源申请。3.通过 Win32 API 提供的信号量机制,实现共享数据的并发访问。三、实验步骤(一)设计思路

2、:银行家算法可分为个主要的功能模块,其描述如下:1.初始化由用户输入数据,分别对运行的进程数、总的资源种类数、总资源数、各进程所需要的最大资源数量(Max) ,已分配的资源数量赋值。2.安全性检查算法(1)设置两个工作向量 Work=AVAILABLE;FINISH=false;(2)从进程集合中找到一个满足下述条件的进程,银行家算法FINISH=false;NEED#include#include#include#define False 0#define True 1using namespace std;int Max100100 = 0 ;/各进程所需各类资源的最大需求int ReMa

3、x100100 = 0 ;int Avaliable100 = 0 ;/系统可用资源int ReAvaliable100 = 0 ;char name100 = 0 ;/资源的名称int Allocation100100 = 0 ;/系统已分配资源int ReAllocation100100 = 0 ;int Need100100 = 0 ;/还需要资源int ReNeed100100 = 0 ;int Request100 = 0 ;/请求资源向量int temp100 = 0 ;/存放安全序列int Work100 = 0 ;/存放系统可提供资源int M = 100;/进程的最大数量为1

4、00int N = 100;/资源的最大数量为100void showdata()/显示资源矩阵int i, j;cout “;cout i;/输入须申请的资源号cout Requestj;/输入需要申请的资源for (j = 0; jNeedij)/判断申请是否大于需求,若大于则出错cout Avaliablej)/判断申请是否大于当前资源,若大于则 /出错cout Avaliablei;cout n;N = n;cout mingnumber;namei = ming;/cout number;Avaliablei = number;cout m;M = m;cout Maxij;dofl

5、ag = 0;cout Allocationij;if (AllocationijMaxij)flag = 1;Needij = Maxij - Allocationij;Avaliablej = Avaliablej - Allocationij;if (flag)cout choice;switch (choice)case 1: changeresources(); break;case 2: share(); break;case 3: showdata(); break;case 0: choice = 0; break;default: cout “请正确选择功能号(0-3)!“ endl; break;cout “您已成功退出程序!“ endl;return 1;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报