银行家算法(操作系统实验报告).doc
- 文档编号:4731568
- 上传时间:2023-05-07
- 格式:DOC
- 页数:14
- 大小:296.50KB
银行家算法(操作系统实验报告).doc
《银行家算法(操作系统实验报告).doc》由会员分享,可在线阅读,更多相关《银行家算法(操作系统实验报告).doc(14页珍藏版)》请在冰点文库上搜索。
实验报告
课程名称:
计算机操作系统实验名称:
银行家算法_
任课教师:
霍林专业:
计算机科学与技术
班级:
学号:
__
姓名:
蓝冠恒__完成日期:
2009年10月15日
一、实验目的:
加深对操作系统的进程管理与资源分配了解,深刻理解系统安全性检验算法。
二、主要实验内容及要求:
实验内容:
利用银行家算法检验系统的安全性。
实验要求:
1.输入系统进程数量n和资源类型数量m。
2.输入每类资源的数量。
3.输入每个进程每类资源的最大需求量和已获资源量。
4.检验系统的安全系。
三、实验结果与结论:
(经调试正确的源程序和程序的运行结果)
编程员:
蓝冠恒
程序源代码:
packagedisFace;
importorg.eclipse.swt.SWT;
importorg.eclipse.swt.custom.StackLayout;
importorg.eclipse.swt.events.SelectionAdapter;
importorg.eclipse.swt.events.SelectionEvent;
importorg.eclipse.swt.widgets.Button;
importorg.eclipse.swt.widgets.Composite;
importorg.eclipse.swt.widgets.Display;
importorg.eclipse.swt.widgets.Label;
importorg.eclipse.swt.widgets.Shell;
importorg.eclipse.swt.widgets.Text;
importorg.eclipse.ui.forms.widgets.FormToolkit;
importcom.swtdesigner.SWTResourceManager;
publicclassDisFace{
protectedShellshell;
privatefinalFormToolkitformToolkit=newFormToolkit(Display.getDefault());
privateCompositecomposite;
privateLabellabel;
privateLabellabel_1;
privateTextprocessN;
privateTextkindM;
privateButtonbutton1;
privateTextlistText;//输出文本框
privateCompositecomposite4;
privateLabellabel_3;
privateTextkindNumbers;//资源数量输入框
privateButtonbutton2;
privateTexttheKind1;
privateLabellabel_5;
privateLabellabel_6;
privateTextMaxText;//最大资源需求输入框
privateTextAllocationText;//已获资源输入框
privateButtonbutton3;
privateLabellabel_7;
privateTexttheProcess;
privateTexttheKind2;
privateLabellabel_11;
privateButtontest;
privateintN;//进程数量
privateintM;//资源类型数量
int[][]Max;//进程最大资源需求数组
int[][]Allocation;//进程已获资源数组
int[][]Need;//进程所需资源数组
int[]Available;//起初可用资源数组
int[]Work;//可提供资源数组
boolean[]Finish;//进程完成标识
inti=0;
intj=0;
intk=0;
privateCompositecomposite1;
StackLayoutstackLayout=newStackLayout();
StackLayoutstackLayout2=newStackLayout();
privateCompositecomposite3;
privateCompositecomposite2;
privateCompositecomposite0;
publicstaticvoidmain(String[]args){
try{
DisFacewindow=newDisFace();
window.open();
}catch(Exceptione){
e.printStackTrace();
}
}
publicvoidopen(){
Displaydisplay=Display.getDefault();
createContents();
shell.open();
shell.layout();
while(!
shell.isDisposed()){
if(!
display.readAndDispatch()){
display.sleep();
}
}
}
protectedvoidcreateContents(){
shell=newShell();
shell.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
shell.setText("银行家算法实现");
shell.setSize(733,565);
/*--------------------------------面板-------------*/
composite=newComposite(shell,SWT.BORDER);
composite.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
composite.setBounds(10,10,697,492);
composite.setData("name","composite");
formToolkit.adapt(composite);
formToolkit.paintBordersFor(composite);
composite0=newComposite(composite,SWT.NONE);
composite0.setBounds(0,1,210,156);
composite0.setData("name","composite0");
formToolkit.adapt(composite0);
formToolkit.paintBordersFor(composite0);
composite1=newComposite(composite,SWT.NONE);
composite1.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
composite1.setBounds(210,1,224,156);
composite1.setData("name","composite1");
formToolkit.adapt(composite1);
formToolkit.paintBordersFor(composite1);
composite1.setLayout(stackLayout);
composite2=newComposite(composite1,SWT.BORDER);
composite2.setBackgroundMode(SWT.INHERIT_FORCE);
composite2.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLUE));
composite2.setBackground(SWTResourceManager.getColor(0,255,0));
composite2.setData("name","composite2");
formToolkit.adapt(composite2);
formToolkit.paintBordersFor(composite2);
composite3=newComposite(composite,SWT.NONE);
composite3.setBounds(434,1,263,156);
composite3.setData("name","composite3");
formToolkit.adapt(composite3);
formToolkit.paintBordersFor(composite3);
composite3.setLayout(stackLayout2);
composite4=newComposite(composite3,SWT.BORDER);
composite4.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_GREEN));
composite4.setData("name","composite4");
formToolkit.adapt(composite4);
formToolkit.paintBordersFor(composite4);
/*--------------------------------标签----------------------*/
label_3=newLabel(composite2,SWT.HORIZONTAL);
label_3.setBounds(59,26,78,26);
label_3.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_3.setData("name","label_3");
formToolkit.adapt(label_3,true,true);
label_3.setText("资源数量为");
label_5=newLabel(composite4,SWT.NONE);
label_5.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_5.setBounds(0,55,112,26);
label_5.setData("name","label_5");
formToolkit.adapt(label_5,true,true);
label_5.setText("最大资源需求量");
label_6=newLabel(composite4,SWT.NONE);
label_6.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_6.setBounds(0,87,112,26);
label_6.setData("name","label_6");
formToolkit.adapt(label_6,true,true);
label_6.setText("已获资源数量");
label_7=newLabel(composite4,SWT.NONE);
label_7.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_7.setBounds(0,23,46,26);
label_7.setData("name","label_7");
formToolkit.adapt(label_7,true,true);
label_7.setText("进程");
label_11=newLabel(composite4,SWT.NONE);
label_11.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_11.setBounds(80,23,50,26);
label_11.setData("name","label_11");
formToolkit.adapt(label_11,true,true);
label_11.setText("对资源");
label_1=newLabel(composite0,SWT.NONE);
label_1.setBounds(10,65,80,23);
label_1.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label_1.setData("name","label_1");
formToolkit.adapt(label_1,true,true);
label_1.setText("资源类量m");
label=newLabel(composite0,SWT.NONE);
label.setBounds(10,24,80,23);
label.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
label.setData("name","label");
formToolkit.adapt(label,true,true);
label.setText("进程数量n");
/*--------------------------------文本---------------------------------------*/
theKind1=newText(composite2,SWT.READ_ONLY|SWT.CENTER|SWT.MULTI);
theKind1.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLUE));
theKind1.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
theKind1.setBounds(22,26,31,26);
theKind1.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
theKind1.setData("name","theKind1");
formToolkit.adapt(theKind1,true,true);
theKind1.setText("R"+String.valueOf(0));
listText=newText(composite,SWT.BORDER|SWT.H_SCROLL|SWT.V_SCROLL|SWT.CANCEL);
listText.setCapture(true);
listText.setForeground(SWTResourceManager.getColor(0,0,0));
listText.setBackground(SWTResourceManager.getColor(51,255,255));
listText.setBounds(0,163,696,325);
listText.setData("name","text_2");
formToolkit.adapt(listText,true,true);
kindNumbers=newText(composite2,SWT.BORDER|SWT.CENTER);
kindNumbers.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
kindNumbers.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
kindNumbers.setBounds(143,29,38,23);
kindNumbers.setData("name","kindNumbers");
formToolkit.adapt(kindNumbers,true,true);
MaxText=newText(composite4,SWT.BORDER|SWT.CENTER);
MaxText.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
MaxText.setBounds(118,56,61,23);
MaxText.setData("name","MaxText");
formToolkit.adapt(MaxText,true,true);
AllocationText=newText(composite4,SWT.BORDER|SWT.CENTER);
AllocationText.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
AllocationText.setForeground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
AllocationText.setBounds(118,87,61,23);
AllocationText.setData("name","AllocationText");
formToolkit.adapt(AllocationText,true,true);
theProcess=newText(composite4,SWT.READ_ONLY|SWT.CENTER);
theProcess.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
theProcess.setBounds(52,23,22,26);
theProcess.setData("name","theProcess");
formToolkit.adapt(theProcess,true,true);
theProcess.setText("P"+String.valueOf(0));
theKind2=newText(composite4,SWT.READ_ONLY|SWT.CENTER);
theKind2.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
theKind2.setBounds(136,23,43,26);
theKind2.setData("name","theKind2");
formToolkit.adapt(theKind2,true,true);
theKind2.setText("R"+String.valueOf(0));
processN=newText(composite0,SWT.BORDER);
processN.setBackground(SWTResourceManager.getColor(0,255,0));
processN.setBounds(107,21,73,23);
processN.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
processN.setData("name","text");
formToolkit.adapt(processN,true,true);
kindM=newText(composite0,SWT.BORDER);
kindM.setBounds(107,65,73,23);
kindM.setFont(SWTResourceManager.getFont("微软雅黑",12,SWT.NORMAL));
kindM.setData("name","text_1");
formToolkit.adapt(kindM,true,true);
/*---------------------------按钮-------------------------*/
button1=newButton(composite0,SWT.NONE);
button1.setForeground(SWTResourceManager.getColor(0,255,0));
button1.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
button1.setBounds(107,115,72,31);
button1.addSelectionListener(newSelectionAdapter(){
p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行家 算法 操作系统 实验 报告