欢迎来到天天文库
浏览记录
ID:57648128
大小:17.67 KB
页数:18页
时间:2020-08-30
《操作系统实验:死锁避免-内存分配-页面置换.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.死锁避免#includeusingnamespacestd;#defineMAX_P10//最多的进程数#defineMAX_R20//最多的资源intAvai[MAX_R];//可利用资源向量intMax[MAX_P][MAX_R];//最大需求矩阵intAllo[MAX_P][MAX_R];//分配矩阵intNeed[MAX_P][MAX_R];//需求矩阵intRequest[MAX_P][MAX_R];//请求矩阵boolFinish[MAX_P];intp[MAX_P];intm,n;v
2、oidBank();//银行家boolSafeTest();//定义一个安全序列检测函数intmain(){inti,j,neednumber;cout<<"输入进程数和资源数"<>m>>n;cout<<"输入最大需求矩阵MAX:"<>Max[i][j];cout<<"输入分配矩阵Allocation:"<>Allo
3、[i][j];Need[i][j]=Max[i][j]-Allo[i][j];}}cout<<"输入当前可使用的资源:"<>Avai[i];SafeTest();Bank();return0;}voidBank(){inti,neednumber;charagain;while(1){cout<<"输入请求进程"<>neednumber;cout<<"输入要分配的资源"<>Request[needn
4、umber][i];for(i=0;i5、"<6、/先把每个Finish赋初值falsefor(i=0;iWork[j])break;//出现资源不够}if(j==n){Finish[i]=true;//如果能满足资源每个finish为true并把释放的资源加起来for(k=0;k7、下安全序列:"<";}cout<<""<usingnamespacestd;intaviliable=1024;intC[1024];//创建内存intm[10]={0,0,0,0,0,0,0,0,0,0};//intfenpei_and_re8、lease(ints);structNode{intflag;//标识0表示释放(空闲)intlength;//分区长度intC_name;//进程作业号intstartAdd;//起始地址intused_of_neicun;//使用的空间Node*next;//};intmenu(){inti;cout<<"(1)
5、"<6、/先把每个Finish赋初值falsefor(i=0;iWork[j])break;//出现资源不够}if(j==n){Finish[i]=true;//如果能满足资源每个finish为true并把释放的资源加起来for(k=0;k7、下安全序列:"<";}cout<<""<usingnamespacestd;intaviliable=1024;intC[1024];//创建内存intm[10]={0,0,0,0,0,0,0,0,0,0};//intfenpei_and_re8、lease(ints);structNode{intflag;//标识0表示释放(空闲)intlength;//分区长度intC_name;//进程作业号intstartAdd;//起始地址intused_of_neicun;//使用的空间Node*next;//};intmenu(){inti;cout<<"(1)
6、/先把每个Finish赋初值falsefor(i=0;iWork[j])break;//出现资源不够}if(j==n){Finish[i]=true;//如果能满足资源每个finish为true并把释放的资源加起来for(k=0;k7、下安全序列:"<";}cout<<""<usingnamespacestd;intaviliable=1024;intC[1024];//创建内存intm[10]={0,0,0,0,0,0,0,0,0,0};//intfenpei_and_re8、lease(ints);structNode{intflag;//标识0表示释放(空闲)intlength;//分区长度intC_name;//进程作业号intstartAdd;//起始地址intused_of_neicun;//使用的空间Node*next;//};intmenu(){inti;cout<<"(1)
7、下安全序列:"<";}cout<<""<usingnamespacestd;intaviliable=1024;intC[1024];//创建内存intm[10]={0,0,0,0,0,0,0,0,0,0};//intfenpei_and_re
8、lease(ints);structNode{intflag;//标识0表示释放(空闲)intlength;//分区长度intC_name;//进程作业号intstartAdd;//起始地址intused_of_neicun;//使用的空间Node*next;//};intmenu(){inti;cout<<"(1)
此文档下载收益归作者所有