毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

操作系统上机报告银行家算法并解决死锁问题

更新时间:2007-10-4:  来源:毕业论文

操作系统上机报告银行家算法并解决死锁问题|上机实验实习报告|计算机上机实习报告

  操作系统上机报告

一,上机实验内容:银行家算法

二,银行家算法描述如下:令RRi是进程Pi的资源请求量,如果RRi[j]=k,则进程Pi希望请求分配的j类资源k个,当进程Pi向系统提交一个资源请求向量RRi时,系统调用银行家算法。

三,熟练掌握银行家算法,并解决死锁问题。

流程图请联系站长QQ752018766

四,源程序

# include<stdio.h>

void main()

{ int max_need[5][3]={{3,2,2},{7,5,3},{9,0,2},{2,2,2},{4,3,3}};

int allocation[5][3]={{2,0,0},{0,1,0},{3,0,2},{2,1,1},{0,0,2}};

int i,j,k,l=0,count=0,m=0;

int still_need[5][3]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}};

int result[5]={-1,-1,-1,-1,-1};

int current_available[3]={3,3,2};

int tempCount=0;

printf("银行家总共拥有的各类资源的总数: \n A B C\n  10  5  7\n");

printf("银行家目前剩下的各类资源的总数: \n A B C\n   3  3  2\n");

printf("各进程对各类资源的最大需求量:   \n A B C\n");

for(i=0;i<5;i++)

{ printf("P%d: ",i);

  for(j=0;j<3;j++)

  { printf("%d",max_need[i][j]=max_need[i][j]-allocation[i][j]);

  }

  printf("\n");

}

printf("各进程已分配到的各类资源:\n A B C\n");

for(i=0;i<5;i++)

{ printf("P%d: ",i);

  for(j=0;j<3;j++)

          printf("%d",still_need[i][j]);

  printf("\n");

}

 

while(tempCount<=count&&count<5)

{ tempCount++;

  for(k=0;k<5;k++)

         if(result[k]==-1)

         { m=0;

           for(j=0;j<3;j++)

              if(still_need[k][j]<=current_available[j]&&still_need[k][j]>=0)

              { current_available[j]=current_available[j]+allocation[k][j];

              m++;

              if(m==3)

              { result[k]=1;

                m=0;

                printf("P%d->",k);

                count++;

              }

              }

              else break;

         }

}

if(count==5)

{ printf("\n 系统安全!上行所示为其中一个进程安全序列 \n");

}

else

printf("\n 找不到一个安全序列,系统不安全!\n");

}

五,运行结果

 

操作系统上机报告银行家算法并解决死锁问题下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。