《操作系统》实验指导银行家算法_第1页
《操作系统》实验指导银行家算法_第2页
《操作系统》实验指导银行家算法_第3页
《操作系统》实验指导银行家算法_第4页
《操作系统》实验指导银行家算法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验指导实验1:进程管理实验目的:1 熟悉进程管理相关知识;2熟练掌握vc6.0、java开发工具或其他编程工具;2.c、java或其他语言编程实现银行家算法。实验内容:银行家算法中的数据结构可利用资源向量available (n元数组)最大需求矩阵max (nxm矩阵)分配矩阵allocation (nxm矩阵)需求矩阵need (nxm矩阵)need i ,j =max i ,j - allocation i ,j 银行家算法request是进程pi的请求向量(1)如果requestj<=needij,便转步骤2;否则出错(2)如果requesgv二availablefj,便

2、转步骤3;否则表示资源不足,进程pi等待(3)将资源试探的分配给进程pi,修改数据availablej:=availablej-requestj;allocation i ,j : = allocation i ,j +reques t j ;need i ,j :=need i ,j -request j ;(4)系统执行安全性算法,处于安全状态则正式分配资源安全性算法(1)设置两个向量:丄作向量work:=available,表示可用资源数finish表示是否有足够的资源分配,初值finishi:=false(2) 找满足条件finishi:二false, needi,j<=work

3、j的进程。找到则执行步骤3;否则执行步骤4(3) 进程pi获得资源,执行至完成workj:=workj+allocationi,j;finishi:=true;转到步骤2(4) 如果所有进程finishj:=true,则系统处于安全状态;否则处于不安1) 假设系统中有5个进程po、pl、p2、p3、p4, 3种资源a、b、c, 初始状态为:资源情况进amaxbcaallocation bcaneedbcavailableabcp()753010743332pl322200122p2902302600p.3222211011p44330024312) 屏幕输出系统初始状态,同时检测当前状态是否安

4、全,输出安全序列, 等待用户输入下一个请求。如下图:processmaxallocationneedp0? 5 30 10? 4 3pl3 2 22 0 012 2p29 0 23 0 26 0 0p32 2 22 110 11p44 3 30 0 24 3 1available: 332pysten is safe?|the safe sequence is: pl p3 p0 p2 p4please inpuut the number of the request process:3)输入请求进程的编号,和请求资源的数量,如果安全,输出安全序列, 询问是否继续操作。如下图:process

5、naxp07 5 3pl3 2 2p29 0 2p3p44 3 3allocat ionneed0 107432 001223 026002 110110 02431auailable: 332 gystem is safe?the safe sequence is: pl p3 p0 p2 p4please inpuut the number of the request process:1please input the requested resources:1 0 2 system is safe?the safe sequence is: pl p3 p0 p2 p4 hssign

6、success?fire you cont inue? <y/n >4)用户选择“y”,可继续输入请求进程的编号,和请求资源的数量(这时系统已经是满足上次请求之后的状态),如果不安全,输出原因,询问是否继续操作。如下图:are youcontinue?<y/n>yprocessnaxp0? 5 3pl3 2 2p29 0 2p32 2 2p44 3 3lauailable : 2 3 0allocationneed0 10? 4 33 0 20 2 03 0 26 0 02 110 110 0 24 3 1systen is safe?the safe sequence

7、 is: pl p3 p0 p2 p4please inpuut the number of the request process:4please input the requested resources:3 3 0 resources not enough?fpe you continue?<y/n5)用户选择“n”,退出程序。实验2 (选做人存储器管理实验目的:1 熟悉存储器管理相关知识2 程序实现页面置换算法 实验内容:使用先进先出(fifo)算法或最近最久未使用(lru)算法,编写程 序,实现页面置换。先进先出(fifo)算法:淘汰先进入内存的页而,即驻留内存时间最长的页面

8、先被置换掉。最近最久未使用(lru)算法:选择最近一段时间最久未使用的页面宜换。1) 输入页面访问序列。2) 使用先进先出(fifo)算法或最近最久未使用(lru)算法计算需要置换 的页面。3) 输出页面置换的序列。一、一个好的程序的评价标准按次序主要有以下3条:1) 可以正确的运行。2) 容易理解。3) 有效率。华为软件编程规范和范例.doc1- 1 :程序块要采用缩进风格编写,缩进的空格数为4个(不要使用tab键)1- 6 :不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范。rect.length = 0; rect.width = 0;应如下书写rect.leng

9、th = 0;rect.width = 0;1-7 : if、for、do、while、case、switch、default 等语句自占一行,且 if、for、 do、wh订e等语句的执行语句部分无论多少都要加括号 示例:如下例了不符合规范。if (pusercr = null) return;应如下书写:讦(pusercr = null)return;1-10 :程序块的分界符(如c/c+语言的大括号',和',)应各独占一行并ii位于 同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的 定义以及if、for、do、while、switch、ca

10、se语彳u中的程序都要采用如上的缩进方式 示例:如下例子不符合规范。for (.) program codeif(.)./ program code)void cxamplc_fun( void ) / program code1应如f书写。for (.) program code讦()./ program codevoid cxamplc_fun( void ) / program code2- 1 : 一般情况下,源程序有效注释量必须在20 %以上2- 8 :注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释) 相邻位置,不可放在下面,如放于上方则需与其上面的代码用

11、空行隔开2- 12 :注释与所描述内容进行同样的缩排说明:可使程序排版整齐,并方便注释的阅读与理解。示例:如下例了,排版不整齐,阅读稍感不方便。void example_fun( void )/* code one comments */codeblock one/* code two comments */codeblock two应改为如下布局。void example_fun( void)/* code one comments */codeblock one/* code two comments */codeblock two3- 1 :标识符的命名要清晰、明了,冇明确含义,同时使用

12、完整的单词或大家基本可以理解 的缩写,避免使人产生误解3- 4 :对于变量命名,禁止取单个字符(如a、b、c),建议除了要有具体含义外,述 能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的4- 1 :注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级说明:防止阅读程序时产生谋解,防止因默认的优先级与设计思想不符而导致程序出错。a i b && a & ca i b < c & d4- 2 :不要使用难懂的技巧性很高的语句,除非很有必要时说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。示例:如下表达式,考虑

13、不周就可能岀问题,也较难理解。* stat_poi + +二 1;* + stat_poi += 1;应分别衣为如下:*stat_poi += 1;stat_poi卄;/ 此二语句功能相当于 “ * stat_poi + += 1; ”+ stat_poi;*stat_poi += 1; 此二语句功能相当于"* + stat_poi += 1; ”8-2 :在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率8-8 :在多重循环屮,应将最忙的循环放在最内层(减少cpu切入循环层的次数) 示例:如下代码效率不高。for (row = 0; row < 100; row+)for (col = 0; col < 5; col+)sum += arowcol;可以改为如下方式,以提高效率。for (col = 0; col < 5; col+)for (row = 0: row < 10(); row+)sum += arowcol;二、变量命名的规范性(希望大家学习一下“匈牙利命名规则”)1、变量前缀整型:i (整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论