操作系统实验五处理机调度HRN题目及实例代码基于java.docx
- 文档编号:25090515
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:7
- 大小:15.77KB
操作系统实验五处理机调度HRN题目及实例代码基于java.docx
《操作系统实验五处理机调度HRN题目及实例代码基于java.docx》由会员分享,可在线阅读,更多相关《操作系统实验五处理机调度HRN题目及实例代码基于java.docx(7页珍藏版)》请在冰豆网上搜索。
操作系统实验五处理机调度HRN题目及实例代码基于java
实验五:
处理机调度(HRN)(题目及实例代码(基于java))
实验目的:
基于处理机调度基本原理,编程模拟最高响应比优先调度算法;
实验题目及要求:
有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8min。
对于下列每一种调度算法,计算其平均进程周转时间和平均带权周转时间(进程切换开销可不考虑)。
-最高响应比优先。
执行次序
运行时间
周转时间
带权周转时间
A
10
B
6
C
2
D
4
E
8
实验测试:
请输入作业总数
5
请输入作业到达时间和运行时间
01006020408
请输入作业到达时间和运行时间
请输入作业到达时间和运行时间
请输入作业到达时间和运行时间
请输入作业到达时间和运行时间
作业号到达时间运行时间结束时间周转时间带权周转时间
10.010.010.010.01.0
20.06.022.022.03.6666666666666665
30.02.012.012.06.0
40.04.016.016.04.0
50.08.030.030.03.75
平均周转时间:
18.0
平均带权周转时间:
3.6833333333333327
实例代码:
importjava.util.LinkedList;
importjava.util.Scanner;
publicclassHRN{
publicstaticLinkedList
publicstaticvoidmain(String[]args){
JobIn();
inti=0;
intn=array1.size();
doubleo=0;
array1.get(i).setOTime(o=o+array1.get(i).RTime);
array1.get(i).LTime=0;
intrjob=n-1;
doubleMax=0;
intm=0;
while(rjob>0){
for(i=1;i { if(array1.get(i).LTime! =0){ Max=1+o/array1.get(i).RTime; m=i; break; } } for(;i { if(array1.get(i).LTime! =0&&(1+o/array1.get(i).RTime)>Max){ Max=1+o/array1.get(i).RTime; m=i; } } array1.get(m).setOTime(o=o+array1.get(m).RTime); array1.get(m).LTime=0; rjob--; } doubletotalAtime=0; doubletotalQtime=0; for(i=0;i array1.get(i).setATime( array1.get(i).getOTime()-array1.get(i).getCTime()); array1.get(i).setQTime( array1.get(i).getATime()/array1.get(i).getRTime()); totalAtime+=array1.get(i).getATime(); totalQtime+=array1.get(i).getQTime(); } JobOut(); System.out.println("平均周转时间: "+totalAtime/array1.size()); System.out.println("平均带权周转时间: "+totalQtime/array1.size()); } publicstaticvoidJobIn(){ Scannersc=newScanner(System.in); System.out.println("请输入作业总数"); intn=sc.nextInt(); for(inti=1;i<=n;i++){ System.out.println("请输入作业到达时间和运行时间"); doublectime=sc.nextDouble();//输入到达时间 doublertime=sc.nextDouble();//输入运行时间 //向作业链表添加作业步数据 array1.add(newJob2(i,ctime,rtime));//初始化作业链表 } } publicstaticvoidJobOut(){ System.out.println("作业号\t到达时间\t运行时间\t结束时间\t周转时间\t带权周转时间"); for(inti=0;i System.out.println(array1.get(i).ID+"\t"+array1.get(i).CTime +"\t"+array1.get(i).RTime+"\t"+array1.get(i).OTime +"\t"+array1.get(i).ATime+"\t"+array1.get(i).QTime +"\t" ); } } } classJob2{ intID; doubleCTime; doubleOTime; doubleLTime; doubleRTime; doubleATime; doubleQTime; publicJob2(intid,doublecTime,doublerTime){ ID=id; CTime=cTime; RTime=rTime; LTime=rTime; } publicdoublegetCTime(){ returnCTime; } publicvoidsetCTime(doublecTime){ CTime=cTime; } publicdoublegetOTime(){ returnOTime; } publicvoidsetOTime(doubleoTime){ OTime=oTime; } publicdoublegetRTime(){ returnRTime; } publicvoidsetRTime(doublerTime){ RTime=rTime; } publicdoublegetATime(){ returnATime; } publicvoidsetATime(doubleaTime){ ATime=aTime; } publicintgetID(){ returnID; } publicvoidsetID(intiD){ ID=iD; } publicdoublegetQTime(){ returnQTime; } publicvoidsetQTime(doubleqTime){ QTime=qTime; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 处理机 调度 HRN 题目 实例 代码 基于 java