计算机122王玉园_第1页
计算机122王玉园_第2页
计算机122王玉园_第3页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

1、实验报告辽宁科技大学电信学院(系)计算机科学与技术2014年 10月 16日课名:编译原理实验项目名称: (进程)作业调度班级:计算机 122姓名:王玉园学号: 任课教师:柴玉梅实验目的:阅读,调试并注释一个单道批处理系统的作业调度程序, 通过对本程序的阅读, 加深对作业调度算法的理解。实验分析与要求:1、 由于在单道批处理系统中, 作业一旦投入运行, 它就占有计算机的一切资源直到作业完成为止。 因此调度作业时,不必考虑它所需要的资源是否得到满足、占用的 cpu 时限等因素2、每个作业由一个作业控制块 JCB表示,JCB可以包含以下信息:作业名,提交时间,所需运行时间, 所需资源,作业状态等。

2、作业的状态可以是等待、 运行、和完成三种状态之一。每个作业的最初状态总是处于等待状态中。3、对每种调度算法都要求显示每一个作业开始运行时刻,完成时刻,周转时间,带权周转时间,这组作业的 pig 均周转和时间和带权平均周转时间。4、可以自行编码实现,语言不限。实验内容:package test;publicclassjob staticintjobin ,count ;staticintjobnum = 100;staticdoubledaiT =newdouble jobnum ;/带权周转时间staticdoubleT1,T2;publicstaticvoidpaixuFCFS(intjob

3、in) for ( inti = 0; i < jobin.length ; i+) /按照到达时间进行升序排序(冒泡排序)for ( intj = i + 1; j < jobin.length ; j+) 1 / 7if(jobini0 > jobinj0) for(intm = 0; m < 8; m+) count= jobinim;jobinim = jobinjm;jobinjm =count;publicstaticvoidpaixuSJF(intjobin) paixuFCFS (jobin);/到达时间已经是升序inttime =newintjobin

4、.length ;for(inti = 0; i < time.length ; i+) /初始化满足条件的工作所需要的时间timei = 9999;intm = 1;intFtime = jobin00 + jobin01;/第一个工作开始,算出完成时间for(inti3 = 1; i3 < jobin.length ; i3+) / 未完成的工作for(inti1 = i3, a = 0; i1 < jobin.length; i1+) if(Ftime >= jobini10) / 工作完成时已经到达的工作所需要的时间 timea = jobini11;a+;fo

5、r( int i = 0; i < time. length ; i+) / 找其中所需要时间最小的 time0 = time0 < timei ? time0 : timei;for( intn = i3; n < jobin.length; n+) if(jobinn1 = time0)/找出该工作是对应的第几个工作for ( int m1 = 0; m1 < 8; m1+) / 将他与将要执行的工作交换 count = jobini3m1;jobini3m1 = jobinnm1;jobinnm1 =count ;2 / 7Ftime += jobinm1;/下一

6、个工作已确定,需要时间加上m+;publicstaticvoidpaixuHRN( intjobin) paixuFCFS (jobin);/冒泡排序比较哪个工作先到达的doublerp =newdouble jobin.length; /响应比intfiT;/作业完成时候的时间intwaitT =newint jobin.length; /等待时间rp0 = 9999;fiT = jobin00 + jobin01;/第一个工作完成时的时间waitT0 = 0;/第一个工作不用等待inti = 1, i4, max = 10;while(i < jobin.length) /还要执行

7、length-1个工作for( inti2 = i; i2 < jobin.length; i2+) /剩下的未执行的工作 ,计算响应比if(jobini20 <= fiT) /如果到达时间大于完成时间waitTi2 = fiT - jobini20;/等待时间等于上一个工作的完成时的时间减自己的到达时间rpi2 = (double ) waitTi2 / (double )jobini21;/计算出响应比elserpi2 = 0.0;max = i;for(i4 = i + 1; i4 < rp.length; i4+) /对响应比数组选择最大的max = rpi4 >

8、; rpmax ? i4 : max;if(max != i) for( intm = 0; m < 8; m+) /交换每行的数据count= jobinmaxm;jobinmaxm = jobinim;jobinim =count ;fiT += jobini1;i+;3 / 7publicstaticvoidjisuan(intjobin) /计算各工作的开始,结束,等待,周转时间jobin03 = jobin00;jobin04 = jobin03 + jobin01;jobin05 = 0;jobin06 = jobin04 - jobin00;daiT 0 = (float)

9、 jobin06 / (float) jobin01);for( inti = 1; i <jobnum ; i+) jobini3 = (jobini0 > jobini - 14) ?jobini0: jobini - 14;/开始时间jobini4 = jobini3 + jobini1;/结束时间jobini5 = (jobini3 - jobini0);/等待时间jobini6 = jobini4 - jobini0;/周转时间daiT i = (float) jobini6 / (float) jobini1);/带权周转时间publicstaticvoidPJ( in

10、tjobin,double daiT2) /计算平均周转时间和带权平均周转时间doublem = 0.0, n = 0.0;for( inti = 0; i < jobin.length; i+) /累加求和m += jobini6;n += daiT2i;T1 = m;T2 = n;publicstaticvoidoutput(intjobin,doubleT1,doubleT2) /输出运行结果for( inti = 0; i <jobnum ; i+) System. out .print(" 工作 " + jobini2 +" 开始运行 &qu

11、ot; );System. out .print("开始时刻为: " + jobini3);System. out .print("结束时刻为: " + jobini4);System. out .print("周转时间为: " + jobini6);System. out .println("带权周转时间为: " +daiT i +"运行结束。 " );4 / 7System. out .println(" 作业的平均周转时间为:" + T1 /jobin.length+&

12、quot; 带权平均周转时间为: "+ T2 / jobin.length);publicstaticvoidmain(String args) System. out .print(" 请输入工作的个数: " );Scanner a =new Scanner(System.in );jobnum = a.nextInt();intjobin =newint jobnum 8;for( inti = 0; i <jobnum ; i+) System. out .print(" 请输入工作 " + (i + 1) +" 的到达时

13、间和完成所需要的时间: " );for( intj = 0; j< 2; j+) /jobini0表示到达时间, jobini1表示需要时间jobinij = a.nextInt();jobini2 = i + 1;/ jobini2表示第几个工作intchoice;System. out .println(" 请选择您想要那种算法:" );System. out .println("1.FCFS 算法(先来先服务) " );System. out .println("2.SJF 算法: ( 最短作业优先 )" );System. out .println("3.HRN 算法(最高响应比) " );choice = a.nextInt();switch(choice) case 1:System. out .println( " 您选择了 FCFS算法(先来先服务) " ); job. paixuFCFS (jobin);break ;case 2:System. out .println( &qu

温馨提示

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

评论

0/150

提交评论