欢迎来到天天文库
浏览记录
ID:58831369
大小:95.00 KB
页数:13页
时间:2020-09-24
《网络操作系统课程设计报告模板.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《网络操作系统》课程设计报告书题目:银行家算法学号:学生姓名:周金英专业:网络工程指导教师:史军勇2014年5月30日目录1功能描述31.1银行家算法31.1.1银行家算法实现功能32系统设计32.1银行家算法流程图...........................................................................................................42.1.1安全性检查流程图.......................................
2、...................................................................53系统实现54系统测试与分析10教师评分表121功能描述系统中设置若干数据结构,避免死锁。1.1银行家算法操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若超过则拒绝分配资源,若能
3、满足则按当前的申请量分配资源,否则推迟分配。1.1.1银行家算法进程i发出请求资源申请(1)如果Request[j]<=need[i,j],转向步骤(2),否则认出错,所需资源数已经超过最大值。(2)如果Requesti[j]<=available[i,j],转向步骤(3),否则表示无足够资源,进程i需等待。(3)若以上两个条件都满足,则系统试探着将资源分配给申请的进程,并修改下面数据结构中的数值:Available[i,j]=Available[i,j]-Request[j];Allocation[i][j]=Allocatio
4、n[i][j]+Request[j];need[i][j]=need[i][j]-Request[j];(4)试分配后,执行安全性检查,调用check函数检查此次资源分配后系统是否处于安全状态。否则本次试探分配作废,恢复原来的资源分配状态,该进程等待。2系统设计开始输入进程个数no1输入资源类数no2输入进程最大需求矩阵Max、已分配矩阵Allocation和可利用资源矩阵Available Need[][]=Max[][]-Allocation[][] 输出资源分配情况输入申请资源进程该进程申请的资源量N Request[]>N
5、eed[][]?YRequest[]>Available[][]?预分配调用check()函数进行安全性检查退出退出图1安全性算法流程图调用check()函数 work[]=available[]finish[]=false Nneed[][]<=work[] finish[]=false ? Ywork[]=work[]+allocation[][] finish[]=true 所有进程的finish[]==true? YN输出安全序列,并打印出当前输出提示:系统不安全 资源分配情况 调用结束3系统实现#include6、dio.h>#include#include#defineboolint#defineTRUE1#defineFALSE0#definem50intno1;//进程数intno2;//资源数intr;intallocation[m][m],need[m][m],available[m],max[m][m];charname1[m],name2[m];//定义全局变量voidmain(){voidcheck();voidprint();inti,j,p=0,q=0;charc;intreques7、t[m],allocation1[m][m],need1[m][m],available1[m];printf("请输入进程总数:");scanf("%d",&no1);printf("请输入资源种类数:");scanf("%d",&no2);printf("请输入Max矩阵:");for(i=0;i8、)for(j=0;j
6、dio.h>#include#include#defineboolint#defineTRUE1#defineFALSE0#definem50intno1;//进程数intno2;//资源数intr;intallocation[m][m],need[m][m],available[m],max[m][m];charname1[m],name2[m];//定义全局变量voidmain(){voidcheck();voidprint();inti,j,p=0,q=0;charc;intreques
7、t[m],allocation1[m][m],need1[m][m],available1[m];printf("请输入进程总数:");scanf("%d",&no1);printf("请输入资源种类数:");scanf("%d",&no2);printf("请输入Max矩阵:");for(i=0;i8、)for(j=0;j
8、)for(j=0;j
此文档下载收益归作者所有