操作系统实验报告-银行家算法

操作系统实验报告-银行家算法

ID:23407857

大小:253.51 KB

页数:10页

时间:2018-11-07

操作系统实验报告-银行家算法_第1页
操作系统实验报告-银行家算法_第2页
操作系统实验报告-银行家算法_第3页
操作系统实验报告-银行家算法_第4页
操作系统实验报告-银行家算法_第5页
资源描述:

《操作系统实验报告-银行家算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、南昌大学实验报告---(3)编程实现银行家安全算法学生姓名:张虹学号:6100409033专业班级:电Ⅲ091班实验类型:□验证■综合□设计□创新实验日期:实验成绩:一、实验目的通过实验加强对银行家安全算法的理解和掌握。二、实验内容熟悉避免死锁发生的方法,死锁与安全序列的关系,编程实现银行家算法,要求输出进程的安全序列。三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤1、分析银行家算法结构;2、画出银行家算法的流程图,即设计说明;3、根据画出的流程图使用C语言编写相应的代码

2、(代码过长,放到最后);程序主要由main函数和以下几个函数组成:voidinput();用户输入银行家算法的初始数据;voidoutput();输出当前系统资源分配情况;voidchange();当请求资源满足要求时,进行分配,系统资源发生改变;intcheck();安全性算法,检查是否存在安全序列;voidoutputsafe();输出安全序列的资源分配表。4、检查代码,将编出的代码编译、链接,验证其正确性。五、实验数据及处理结果六、实验体会或对改进实验的建议体会:编写银行家算法需要较好分析能力,C语言也

3、要掌握的很好,而且需要细心和极大地耐心。我的程序在最开始编出来的第一份代码编译时大大小小一堆错误,有些是一个小错误导致了下面全错,这些小错误在一百多行里找起来非常费劲。然后小错误全部找出来以后,再编译,错误没有了,但是得到的结果却是错误的,这样又要开始一行一行分析,看是哪里出了问题。到最后得到了想要的结果以后,程序还需要修饰,至少要输出要简洁明朗,要让别人一运行这个程序就知道自己在什么时候该输入什么数据,数据是什么作用,而不是只有自己知道输进去的是什么东西。七、参考资料《计算机操作系统》《C程序设计》《C语言

4、程序设计_现代方法》八、实验代码#include//本实验中使用到的库函数#include#includeintmax[5][3];//开始定义银行家算法中需要用到的数据intallocation[5][3];intneed[5][3];intavailable[3];intrequest[5][3];char*finish[5];intsafe[5];intn,i,m;intk=0;intj=0;intwork[3];intworks[5][3];v

5、oidline()//美化程序,使程序运行时更加明朗美观{printf("------------------------------------------------------------------");}voidstart()//表示银行家算法开始{line();printf("银行家算法开始");printf("——DesignedbyZhangHong");line();}voidend()//表示银行家算法结束{line();printf("银行家算法结束,谢谢使用");lin

6、e();}voidinput()//输入银行家算法起始各项数据{for(n=0;n<5;n++){printf("请输入进程P%d的相关信息:",n);printf("Max:");for(m=0;m<3;m++)scanf("%d",&max[n][m]);printf("Allocation:");for(m=0;m<3;m++)scanf("%d",&allocation[n][m]);for(m=0;m<3;m++)need[n][m]=max[n][m]-allocation[n][m];}pr

7、intf("请输入系统可利用资源数Available:");for(m=0;m<3;m++)scanf("%d",&available[m]);}voidoutput()//输出系统现有资源情况{line();printf("资源情况MaxAllocationNeedAvailable");printf("进程ABCABCABCABC");line();for(n=0;n<5;n++){printf("P%d%9d%3d%3d%5d%3d%3d%6d%3d%3d",n,max[n][0],max[n]

8、[1],max[n][2],allocation[n][0],allocation[n][1],allocation[n][2],need[n][0],need[n][1],need[n][2]);if(n==0)printf("%6d%3d%3d",available[0],available[1],available[2]);elseprintf("");}line();}voidcha

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

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

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