操作系统综合性实验_死锁避免银行家算法

操作系统综合性实验_死锁避免银行家算法

ID:41668328

大小:216.02 KB

页数:11页

时间:2019-08-29

操作系统综合性实验_死锁避免银行家算法_第1页
操作系统综合性实验_死锁避免银行家算法_第2页
操作系统综合性实验_死锁避免银行家算法_第3页
操作系统综合性实验_死锁避免银行家算法_第4页
操作系统综合性实验_死锁避免银行家算法_第5页
资源描述:

《操作系统综合性实验_死锁避免银行家算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、华南农业大学信息(软件)学院《操作系统》综合性、设计性实验成绩单开设时间:2010学年第1学期专业班级学号姓名实验题II死锁避免一一银行家算法自我评价这个实验主要是按照课卩上银行家算法的思路写出来的。虽然功能比较简单,但是也是经过努力才编写出來的程序,实验报告也写得很认真。对我來说,它是个比较完善的程序。教师评语评价指标:•题目要求完成情况优口良口屮口差口•对算法原理的理解程度优口良口中口差口•程序设计水平优口良口中口差口•实验报告结构清晰优口良口中口差口•流程图及内容表述清楚优口良口中口差口•实验总结和分析详

2、尽优口良口中口差口成绩教师签名一、需求分析1、系统目的:通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,模拟死锁避免的实现,加深对死锁避免,系统安全状态等的理解,体会和了解死锁和避免死锁的具体实施方法。并采用适当的算法,有效地防止和避免死锁地发牛。2、数据:本程序开始运行时,资源全部可用,此处的资源是已经定义好的矩阵内容,运行时,随机产生新的“进程资源需求向量”。3、木题目的简化假设是:(1)程序运行开始吋,资源全部可用。资源种类约10种,每种资源数目为1~10。(2)不断随机产生或手工输

3、入新的“进程资源需求向量”,并填写到故大需求矩阵。(3)在各进程的授大需求数量范围内(因此需作是否超出范围的检验),为各进程随机牛成或手工输入资源请求。经银行家算法厉输出系统是否安全的信息。当一个进程的资源请求全部发完后,认为它结束。二、概要设计1、定义:利川二维数组定义好最大分配需求矩阵、已分配矩阵、现在需求矩阵,用一维数组的形式存放好现可利川矩阵。2、本程序共10个模块,分别如下:random_num()initO_data()proc_require0()over_need()over_avail()ap

4、ply_success()check_security()banker()output()main()(1)生成确定范围内的随机数(2)初始化数据(3)进程请求(4)请求资源超过需求资源(5)请求资源超过可利用资源(6)资源申请成功(7)安全性检查(8)银行家算法主体(9)显示输出(10)主函数3、各程序模块之间的层次(调用)关系voidbanker(){check_security()}intmain(){initO_data();output();proc_requireO();apply_success(

5、over_need(),over_avail())banker();4、程序模块之间流程图三、详细设计1、定义变量:intmaxi[5][10]/最大分配需求矩阵/intallocation1[5J[10]/已分配矩阵/intneedl[5][10J/现在需求矩阵/intavailable1[10]/现可利用矩阵/intmax[20][20],allocation[20][20],need[20][20],available[20];intn_proc;/进程数/inttype_src;/资源种类数/intre

6、quest[20][20];/进程请求资源/intwork[20];/nj-供进程继续运行所需资源的向量/intfinish[20];/标识是否有足够的资源分配给进程/intindex[20];/用于记录进程顺序/intt=0;/记录当前的进程数/intserial_proc=0;/当前请求进程/2、初始化数据initO_data()输入值:无返回值:无操作变量:max[i][j];allocation[i][j];need[i][j];availablejj];index[i]调用模块:无详细设计:for(范

7、围不超过进程数)for(范围不超过资源种类数)maxfi][j]=初始化分配需求矩阵for(范围不超过进程数)foi•(范鬧不超过资源种类数)allocation[i][j]=初始化分配矩阵;for(范围不超过进程数)for(范围不超过资源种类数)need[i][j]=初始化需求矩阵for(范围不超过资源种类数)availablc[j]=初始化可用矩阵for(范围不超过进程数)index[i]=初始化进程顺序3、进程请求proc_requireO()输入值:无返回值:无操作变量:scrial_proc;imp;

8、调用模块:无详细设计:if(当前请求进程vO或当前请求进程〉进程数){输出错误重新调用)初始化tmpfor(范围不超过资源种类数)tmp+=need[senal_proc][j];if(!tmp){输出该进程处于完成状态重新调用输出进程,各资源耍求for(范闌不超过资源种类数)输入request[senal_proc][j]4、请求资源超过需求资源over_need()输入值:无返回值

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。