计算机操作系统实验课实验报告
cout<<\请输入每个进程最多所需的各资源数,按照\矩阵输入\
for(i=0;i
cout<<\请输入每个进程已分配的各资源数,也按照\矩阵输入\
for(i=0;i cin>>fenpei[i][j]; need[i][j]=MAX[i][j]-fenpei[i][j]; if(need[i][j]<0) { cout<<\您输入的第\个进程所拥有的第\个资源数错误,请重新输入:\ continue; } } } cout<<\请输入各个资源现有的数目:\ for(i=0;i { cin>>keyong[i]; } cout<<\剩余需求矩阵:\for(i=0;i { cout< if(j==n-1) } cout<<\各资源现有数量:\ for(i=0;i cout< cout< 计算机操作系统实验课实验报告 cout< bool Safe() /*安全性算法*/ { int i,j,k; for(i=0;i { FINISH[i]=false; //判断进程i就是否已执行 } for(i=0;i if(FINISH[i]==true) { continue; } else { for(j=0;j { if(need[i][j]>Work[j]) { break; } } if(j==n) { FINISH[i]=true; for(k=0;k { Work[k]+=fenpei[i][k]; //进程i执行完后回收资源} p[l++]=i; i=-1; } else { continue; 计算机操作系统实验课实验报告 } } if(l==m) { cout<<\系统就是安全的\ cout<<\安全序列:\ for(i=0;i cout< cout<<\ } } cout<<\ return true; } } cout<<\会发生死锁,发生死锁的进程就是:\ for(i=0;i if(FINISH[i]==false) cout< cout< return false; } void jc() { int i,j,k,q; i=0; while(i 计算机操作系统实验课实验报告 { for(j=0;j { } } keyong[j]+=fenpei[i][j]; //回收 fenpei[i][j]=0; } if(Safe()) else i++; cout<<\死锁已解除\ Safe(); 输入 进程 1 2 3 4 5 已拥有资源数 (0、0、1、2) (2、0、0、0) (0、0、3、4) (2、3、5、4) (0、3、3、2) 总需求资源数 (0、0、1、2、) (2、7、5、0) (6、6、5、6) (4、3、5、6) (0、6、5、2) 计算机操作系统实验课实验报告 四、心得体会 通过这次实验,我了解了有关资源申请分配、检测以及避免死锁等概念,了解死锁与避免死锁的具体实施方法。死锁的解除实质上就就是如何让释放资源的进程能够继续运行、为了解除死锁就要剥夺资源, 实验四 存储管理 一、实验名称 储存管理 二、实验目的 1、掌握物理内存与虚拟内存的基本概念,理解绝对地址与相对地址; 2、了解Windows中内存管理机制,掌握页式虚拟存储; 3、掌握虚拟存储管理中有关缺页处理方法等内容,巩固有关虚拟存储管理的教学内容; 4、理解内存分配原理、特别就是以页面为单位的虚拟内存分配原理; 5、掌握常用的页面置换算法。 三、实验结果分析 #define MAXSIZE 20 #include