文档详情

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

发布:2017-06-01约字共11页下载文档
文本预览下载声明
实验二实验报告 实验源码: #include stdio.h #include iostream.h #include string.h #define False 0 // 定义False #define True 1 // 定义True int Max[100][100] = {0}; // 各进程所需各类资源的最大需求 int Avaliable[100] = {0}; // 系统可用资源 char name[100] = {0}; // 资源的名称 int Allocation[100][100] = {0}; // 系统已分配资源 int Need[100][100] = {0}; // 还需要资源 int Request[100] = {0}; // 请求资源向量 int temp[100] = {0}; // 存放安全序列 int Work[100] = {0}; // 存放系统可提供资源 int M = 100; // 作业的最大数为100 int N = 100; // 资源的最大数为100 // 显示资源矩阵 void showdata() { int i,j; printf(\n此时刻的资源分配情况为:\n); // 显示表头 printf( Max Allocation Need Avaliable\n); printf(PCB ); // 显示作业名称 for(j = 0;j 4;j++){ for(i = 0;i N;i++) printf(%c ,name[i]); printf( ); } printf(\n); // 显示当前作业资源分配情况 for(i = 0;i M;i++){ printf( %d ,i); for(j = 0;j N;j++) printf(%d ,Max[i][j]); printf( ); for(j = 0;j N;j++) printf(%d ,Allocation[i][j]); printf( ); for(j = 0;j N;j++) printf(%d ,Need[i][j]); if(i == 0){ printf( ); for (j = 0;j N;j++) printf(%d ,Avaliable[j]); } printf(\n); } } // 进行资源分配 int changdata(int i) { int j; for (j = 0;j M;j++) { Avaliable[j] = Avaliable[j] - Request[j]; Allocation[i][j] = Allocation[i][j] + Request[j]; Need[i][j] = Need[i][j] - Request[j]; } return 1; } // 安全性算法 int safe() { int i,d,k = 0,m,h,s,apply,Finish[100] = {0}; int j; int flag = 0; for(i = 0;i N;i++) Work[i] = Avaliable[i]; printf( 安全性检查 \n); printf( Work Need Allocation Work+Allocation Finish\n); printf(PCB ); // 显示作业名称 for(j = 0;j 4;j++){ for(i = 0;i N;i++) printf(%c ,name[i]); printf( ); } printf(\n); // 显示当前作业资源分配情况 for(i = 0;i M;i++){ apply = 0; for(j = 0;j N;j++){ if (Finish[i] == False Need[i][j] =
显示全部
相似文档