欢迎来到天天文库
浏览记录
ID:20976601
大小:263.76 KB
页数:8页
时间:2018-10-18
《计算机操作系统教程课程实验报告7》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机操作系统教程课程实验报告实验目的1)加深对死锁概念及死锁处理各部分内容的理解。2)熟悉死锁处理中主要数据结构的设计和相应算法实施。实验内容调试并实现银行家算法系统通过安全检测算法可实现死锁避免实验要求(1)给出程序中使用的数据结构及符号说明。(2)给出程序流程图和源程序,源程序中要有详细的注释。(3)设置合理的参数以满足算法需求。(4)可根据输入的资源进行安全性检测,能打印程序运行时的初值和运行结果,如安全则需给出安全序列。实验步骤(1)数据结构及符号说明①可利用资源向量Available[M]。Available[j]=K表示系统中有j类资源
2、K个。②最大需求Max[N][M]。Max[i][j]=K表示进程i需要j资源的最大数目为K个。③分配矩阵Allocation[N][M]。Allocation[i][j]=K表示进程i已经得到j资源K个。④需求矩阵Need[N][M]。Need[i][j]=K表示进程i还需要j资源K个来完成任务。输入资源种数(2)程序流程图输入资源名称输入资源数量输入进程数输入最大需求矩阵输入已分配矩阵判断已分配是否大于最大需求大于最大需求小于最大需求进行预分配安全性算法预分配失败,资源不足通过成功分配,输出安全序列源程序及部分注释:#include3、am>#include#include#defineFalse0#defineTrue1usingnamespacestd;intMax[100][100]={0};//各进程所需各类资源的最大需求;intAvaliable[100]={0};//系统可用资源;charname[100]={0};//资源的名称;intAllocation[100][100]={0};//系统已分配资源;intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量;inttem4、p[100]={0};//存放安全序列;intWork[100]={0};//存放系统可提供资源;intM=100;//作业的最大数intN=100;//资源的最大数voidshowdata()//显示资源矩阵{inti,j;cout<<"系统可用资源[Available]:"<5、endl;cout<<"进程名";for(j=0;j<3;j++)//MAXALLOCATIONNEED共列{for(i=0;i6、cout<7、};intj;for(inti=0;i8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
3、am>#include#include#defineFalse0#defineTrue1usingnamespacestd;intMax[100][100]={0};//各进程所需各类资源的最大需求;intAvaliable[100]={0};//系统可用资源;charname[100]={0};//资源的名称;intAllocation[100][100]={0};//系统已分配资源;intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量;inttem
4、p[100]={0};//存放安全序列;intWork[100]={0};//存放系统可提供资源;intM=100;//作业的最大数intN=100;//资源的最大数voidshowdata()//显示资源矩阵{inti,j;cout<<"系统可用资源[Available]:"<5、endl;cout<<"进程名";for(j=0;j<3;j++)//MAXALLOCATIONNEED共列{for(i=0;i6、cout<7、};intj;for(inti=0;i8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
5、endl;cout<<"进程名";for(j=0;j<3;j++)//MAXALLOCATIONNEED共列{for(i=0;i6、cout<7、};intj;for(inti=0;i8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
6、cout<7、};intj;for(inti=0;i8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
7、};intj;for(inti=0;i8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
8、名i=-1;//让i跳出资源层循环时回到初始状态k++;//安全序列下标前进位}}}}for(inti=0;
此文档下载收益归作者所有