实验2银行家算法.doc

实验2银行家算法.doc

ID:57417595

大小:96.50 KB

页数:25页

时间:2020-08-16

实验2银行家算法.doc_第1页
实验2银行家算法.doc_第2页
实验2银行家算法.doc_第3页
实验2银行家算法.doc_第4页
实验2银行家算法.doc_第5页
资源描述:

《实验2银行家算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、淮海工学院计算机工程学院实验报告书课程名:操作系统原理A题目:实验一银行家算法班级:网络131学号:姓名:评语:成绩:指导教师:批阅时间:年月日一、目的与要求银行家算法是操作系统中避免死锁的典型算法,用Java或C/C++语言编写一个银行家算法的模拟程序。通过本实验可以加深对银行家算法的步骤和相关数据结构用法的更好理解。二、实验内容用Java或C/C++语言编写一个简单的银行家算法模拟程序,用银行家算法实现资源分配。程序能模拟多个进程共享多种资源的情形。进程可动态地申请资源,系统按各进程的申请动态地

2、分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源数量以及为某进程分配资源后的有关资源数据的情况。实验说明实验中进程的数量、资源的种类以及每种资源的总量Total[j]最好允许动态指定。初始时每个进程运行过程中的最大资源需求量Max[i,j]和系统已分配给该进程的资源量Allocation[i,j]均为已知(这些数值可以在程序运行时动态输入),而算法中其他数据结构的值(包括Need[i,j]、Available[j])则需要由程序根据已知量的值

3、计算产生。三、实验步骤1.认真理解好课本中银行家算法的实例。2.根据课本中银行家算法的描述,画出程序流程图。初始算法否初始函数资源总数输入进程数输入资源数输入每个进程的最多资源数输入每个进程的已分配资源数输入每个进程的现有资源数初始函数结束 银行家算法false算法开始初始化函数提出请求request[]request[]<=need[]request[]<=available[]Available[]-=request[]allocation[]+=request[]need[]-=request

4、[]safe()输出分配成功是否再次分配退出程序算法结束分配错误Available[]+=request[]allocation[]-=request[]need[]+=request[]errorerrorfalsetruetruetruetruefalsefalsefalse3.按照程序流程图,用Java或C/C++语言程并实现。4.实验结果截图1)初界面2)添加资源3)输入进程MAX和Allocation4)请求资源5)输入p1发出请求request(1.0.2)5.实验心得通过本次上机实验,

5、我更加充分的理解了课本上的知识,并能够加以扩展。但是该方案仍然存在许多不足之处。一开始关于如何写出银行家算法一点思路都没有,后来经过上网去查找资料,结合资料,对于银行家算法的不了解之处也解决了。通过自己动手去做发现自己懂的东西真的特别有限,所以我会在后续的课程中,结合这次的经历好好学习。附源码:importjava.awt.Container;importjava.awt.GridLayout;importjava.awt.event.*;importjavax.swing.*;publicclas

6、smainWindowextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;JFramebankerAlgoritJFrame;//主界面JLabel[]l;//输入资源种类数,输入启动的进程数,资源请求,标签JTextField[]t;//对应于标签的文本框JButton[]b;//对应去标签的按钮JPanel[]p;intm=0;//添加的进程数intn=0;//添加的资源种类数int[]a

7、vailable;int[][]max;int[][]allocation;int[][]need;int[]request;StringrequestP;String[]processName;String[]processName_Safety;//保存一个安全推进序列String[]resourceName;JPanel[]l1;JTextField[]t1;publicmainWindow(Stringname){super(name);setSize(320,350);setLocatio

8、n(500,100);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Containercontainer=getContentPane();container.setLayout(null);l=newJLabel[3];t=newJTextField[2];b=newJButton[3];p=newJPanel[3];p[0]=newJPanel();p[1]=newJPanel();p[2]=newJPanel();

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

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

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