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

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

ID:61489185

大小:30.00 KB

页数:6页

时间:2021-02-05

银行家算法操作系统实验报告.doc_第1页
银行家算法操作系统实验报告.doc_第2页
银行家算法操作系统实验报告.doc_第3页
银行家算法操作系统实验报告.doc_第4页
银行家算法操作系统实验报告.doc_第5页
资源描述:

《银行家算法操作系统实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、操作系统实验报告一、实验内容简要描述1.实验目标:加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。2.实验要求:银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。用银行家算法实现资源分配。设计五个进程{p0,p1,p2,p3,p4}共享三类资源{A,B,C}的系统,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释

2、放资源,系统按进程的申请动态地分配资源,要求程序具有显示和打印各进程的某一个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。二、报告主要内容1.设计思路A、设计进程对各在资源最大申请表示及初值确定。B、设定系统提供资源初始状态。C、设定每次某个进程对各类资源的申请表示。D、编制程序,依据银行家算法,决定其申请是否得到满足。2.主要数据结构假设有M个进程N类资源,则有如下数据结构:MAX[M*N]M个进程对N类资源的最大需求量AVAILABLE[N]系统可用资源数AL

3、LOCATION[M*N]M个进程已经得到N类资源的资源量NEED[M*N]M个进程还需要N类资源的资源量3.主要代码结构voidmain()voidshowdata()voidchangdata(int)voidrstordata(int)intchkerr(int)1.主要代码段分析#include"string.h"#include"iostream.h"#defineM5//总进程数#defineN3//总资源数#defineFALSE0#defineTRUE1//M个进程对N类资源最大资源需求量intMAX[

4、M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};//系统可用资源数intAVAILABLE[N]={10,5,7};//M个进程已经得到N类资源的资源量intALLOCATION[M][N]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};//M个进程还需要N类资源的资源量intNEED[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};intRequest[N]={0,0,0};voidm

5、ain(){inti=0,j=0;charflag='Y';voidshowdata();voidchangdata(int);voidrstordata(int);intchkerr(int);showdata();while(flag=='Y'

6、

7、flag=='y'){i=-1;while(i<0

8、

9、i>=M){cout<<"请输入需申请资源的进程号(从0到"<>i;if(i<0

10、

11、i>=M)cout<<" 输入的进程号不存在,重新输入!"<

12、请输入进程"<>Request[j];if(Request[j]>NEED[i][j]){cout<<" 进程"<AVAILABLE[j]){cout<<" 进程"<

13、申请的资源数大于系统可用"<

14、

15、flag=='y'){changdata(i);if(chkerr(i)){rstordata(i);showdata();}elseshowdata();}elseshowdata();cout<>flag;}}

16、voidshowdata(){inti,j;cout<<" 系统可用的资源数为:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。