进程调度模拟设计——优先级法、最高响应比优先调度算法
高响应比优先调度算法

高响应比优先调度算法
1 什么是高响应比优先调度算法
高响应比优先调度算法(也称为HRRN算法)是一种用于调度作业
的排队策略,它重点关注已经等待了较长时间的作业。
它根据作业的
响应比(response ratio)来排序作业,响应比反映作业的等待时间。
HRRN的目的是在作业的服务时间和系统的性能之间进行平衡,从而提
高系统的效率和作业的响应时间。
2 HRRN 算法的原理
HRRN算法的基本原理是按照作业的响应比排序,其公式如下:
响应比 = (等待时间 + 服务时间) / 已等待时间
也就是说,响应比是作业等待时间和服务时间的比值,用来衡量
排队等待时间与作业完成时间之间的关系。
HRRN算法把等待时间越长
的作业优先选择,也就是说,整个系统会尽可能花更多的时间在等待
时间较长的作业上,以减轻作业的响应时间。
3 HRRN 算法的 the 优点
1.HRRN算法把等待时间较长的作业优先考虑,从而提高系统的效率,减轻作业的响应时间;
2.HRRN 算法非常灵活,可以根据实际情况,调整等待时间和服务
时间的比值,从而达到最佳的调度效果;
3.HRRN算法的算法比较简单,实现起来也比较容易。
4 HRRN 算法的缺点
1.HRRN算法由于过于关心等待时间较长的作业,因此作业的处理时间会有偏差,某些新的作业需要等待很长时间才能被处理;
2.HRRN算法不能很好地考虑系统中的吞吐量,因此如果系统中有大量的小作业,系统的吞吐量会受影响;
3.HRRN算法不能很好地考虑系统中的可靠性,因此在一些可靠性要求较高的应用场景中,HRRN算法可能不太合适。
进程调度模拟设计—优先级法、非强占式短进程优先算法

附件1:课程设计进程调度模拟设计——优先级题目法、非强占式短进程优先算法学院计算机科学与技术学院专业计算机科学与技术班级计科班姓名指导教师2011 年 1 月19 日课程设计任务书学生姓名:专业班级:计科指导教师:工作单位:计算机科学与技术学院题目: 进程调度模拟设计——优先级法、非强占式短进程优先算法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。
2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。
时间安排:设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日进程调度模拟设计——优先级法、非强占式短进程优先算法1问题描述设计一程序模拟进程调度,能够选择给定的不同的调度算法,可以输入进程的基本信息,包括进程名、优先级、到达时间以及运行时间等,最终能够显示进程调度的队列。
高响应比优先调度算法

高响应比优先调度算法
高响应比优先调度算法(HRRN)是一种多任务调度策略,它将任务按照它们的响应比(Response Ratio)来进行排序,响应比由当前时间(Current Time)和上次服务时间(Last Service Time)组成,它体现了任务等待时间以及服务时间的比值。
HRRN算法通过比较任务的响应比,将等待时间长的任务放在队列的前面,从而提高系统的响应时间。
HRRN算法的优势在于它能够更好地满足多任务的需求,它能够有效地减少等待时间,提高系统的效率,使系统能够更好地满足客户的需求。
HRRN算法的实现步骤如下:
1. 计算每个任务的响应比(R),R=(当前时间-上次服务时间)/服务时间;
2. 将任务按照响应比从高到低进行排序;
3. 从队列中取出响应比最高的任务,分配给处理器进行处理;
4. 如果任务还没有完成,就将它重新放回队列,等待下次调度;
5. 当任务完成后,更新每个任务的响应比,重新排序,重复以上步骤。
总之,HRRN算法是一种高效的多任务调度策略,它能够有效地提高系统的响应时间,满足客户的需求,实现良好的任务调度效果。
操作系统课程设计报告-进程调度算法模拟

1.课程设计的目的《操作系统原理》课程设计我们专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。
其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。
2.课程设计的内容及要求先来先服务、短作业优先、时间片轮转、基于静态优先级的调度,基于高响应比优先的动态优先级调度算法实现,能够输出调度情况,并计算周转时间和平均周转时间。
要求使用链表,进程个数由用户提供,按照进程的实际个数生成PCB,程序能够让用户选择使用哪种调度算法,能够在Linux环境运行并验证结果。
程序要考虑用户界面的友好性和使用方便性。
进程基本信息可从文件读入,也可手动输入。
3、设计原理3.1先来先服务调度算法每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源创建进程,然后放入就绪队列3.2短作业优先调度算法短作业优先调度算法是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
3.3时间片轮转调度算法系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。
时间片的大小从几ms到几百ms。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
3.4静态优先级调度算法把处理机分配给优先级最高的进程,使之执行。
但在其执行期间,只要出现了另一个比其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。
这样就可以保证紧迫性作业优先运行。
3.5最高响应比优先的动态优先级调度算法优先权调度算法是为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入最高优先权优先调度算法。
处理机调度的常用算法

处理机调度的常用算法包括以下几种:
1. 先来先服务调度算法(FCFS,First Come First Service):这是一种最简单的调度算法,按先后顺序进行调度。
既可用于作业调度,也可用于进程调度。
2. 短作业优先调度算法(SJF/SPF,Shortest Job First):该算法根据作业长短进行调度,有利于短作业(进程)的完成。
3. 高响应比优先调度算法(HRRN,Highest Response Raito Next):该算法综合考虑了作业长短和等待时间,能够适用于短作业较多的批处理系统中,但长作业的运行可能得不到保证。
4. 基于时间片的轮转调度算法(RR,Round Robin):该算法将系统中所有的就绪进程按照FCFS原则,排成一个队列。
每次调度时将CPU 分派给队首进程,让其执行一个时间片。
时间片的长度从几个ms到几百ms。
在一个时间片结束时,发生时钟中断。
调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。
进程阻塞情况发生时,未用完时间片也要出让CPU。
这些算法各有优缺点,需要根据实际应用场景选择合适的算法。
操作系统--最高响应比优先调度算法实验报告(广

操作系统--最高响应比优先调度算法实验报告(广西民大)进程调度模拟设计——最高响应比优先调度算法实验报告一、实验题目与要求1、实验题目:加深对作业概念的理解。
深入了解批处理系统如何组织作业、管理作业和调度作业。
2、实验要求:编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。
实现具体包括:首先确定作业控制块的内容和组成方式;然后完成作业调度;最后编写主函数,对所做工作进行测试。
二、总的设计思想及语言环境、工具1、总的设计思想:最高响应比优先法(HRRN)是对FCFS方式和SJF 方式的一种综合平衡。
HRRN 调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
响应比R定义如下: R=(W+T)/T=1+W/T其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。
每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。
这样,即使是长作业,随着它等待时间的增加,W/T也就随着增加,也就有机会获得调度执行。
这种算法是介于FCFS和SJF 之间的一种折中算法。
由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF 法,从而采用HRRN 方式时其吞吐量将小于采用SJF 法时的吞吐量。
另外,由于每次调度前要计算响应比,系统开销也要相应增加。
2、语言环境:计算机基本配置要求:操作系统:WIN 98/2000/XP/2003 等Windows平台内存:256MB及以上主存64KB(Memory)(以KB为单位分配)开发语言:Visual C++ 6.03、工具:Windows平台+Visual C++ 6.0三、数据结构与模块说明(功能与框图)作业调度的实现主要有两个问题:一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。
为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如,作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作业控制块的指针等信息。
进程调度模拟设计——先来先服务、优先级法复习过程
进程调度模拟设计——先来先服务、优先级法学号:课程设计题目进程调度模拟设计——先来先服务、优先级法学院计算机科学与技术专业班级姓名指导教师吴利军2013 年 1 月16 日课程设计任务书学生姓名:专业班级:指导教师:吴利军工作单位:计算机科学与技术学院题目: 进程调度模拟设计——先来先服务、优先级法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。
2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日进程调度模拟设计——先来先服务、优先级法1、背景:当计算机系统是多道程序设计系统时,通常会有多个进程或线程同时竞争CPU。
只要有两个或更多的进程处于就绪状态,这种情形就会发生。
如果只有一个CPU可用,那么就必须选择下一个要运行的进程。
在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法成为调度算法。
高响应比优先调度和时间片轮转rr进程调度算法
高响应比优先调度和时间片轮转rr进程调度算法高响应比优先调度和时间片轮转(RR)进程调度算法引言:在操作系统中,进程调度是一项重要且复杂的任务。
为了提高系统的性能和响应速度,研究人员和工程师开发了许多不同的调度算法。
本文将重点介绍高响应比优先调度(high response ratio priority scheduling)和时间片轮转(round-robin, RR)进程调度算法。
这两种算法都在实际应用中得到了广泛的运用,下面我将对其原理进行详细阐述,并比较它们的优缺点。
一、高响应比优先调度算法高响应比优先调度算法是一种根据进程的等待时间和执行时间来确定优先级的策略。
该算法认为,等待时间越长的进程应该被优先执行,以提高整体系统的响应速度。
具体而言,高响应比=(等待时间+执行时间)/执行时间。
等待时间是指进程在就绪队列中等待调度的时间,而执行时间则是进程实际执行的时间。
高响应比优先调度算法的主要步骤如下:2. 计算响应比:对于每个进程,根据上述公式计算其响应比,并赋予一个优先级。
3. 选择优先级最高的进程:从就绪队列中选择响应比最高的进程,并将其调度到CPU中执行。
4. 更新进程状态:执行完一个时间片后,更新进程的等待时间和执行时间。
5. 重复步骤3和4,直到所有进程都执行完毕。
高响应比优先调度算法的优点在于能够充分利用CPU资源,提高系统的响应速度。
然而,该算法也存在一些缺点。
首先,计算每个进程的响应比需要消耗大量的计算资源。
其次,长时间等待的进程会获得较高的优先级,可能导致一些短进程长时间得不到执行。
因此,在实际应用中需要权衡考虑。
二、时间片轮转调度算法时间片轮转调度算法是一种公平的调度策略,它将CPU的执行时间划分为固定长度的时间片,并将每个进程分配一个时间片来执行。
当一个时间片耗尽后,进程将被重新放入就绪队列中,等待下一次调度。
时间片轮转调度算法的主要步骤如下:2. 选择当前时间片内的进程:从就绪队列中选择一个进程,并将其调度到CPU中执行。
进程的调度策略和流程
进程的调度策略和流程
进程的调度策略主要有以下几种:
1. 先来先服务(FCFS):按照进程到达的顺序进行调度,先到达的进程优先级高。
2. 最短作业优先(SJF):选择估计运行时间最短的进程进行调度。
3. 最短剩余时间优先(SRF):选择当前剩余时间最短的进程进行调度。
4. 最高响应比优先(HRRN):选择响应比最高的进程进行调度,响应比 = (等待时间 + 执行时间)/ 执行时间。
5. 循环轮转法(RR):将所有进程按照到达时间顺序排列,每次调度一个进程,让其执行一定时间,然后将其放回就绪队列末尾,再选择下一个进程执行。
以上内容仅供参考,具体进程调度策略可能会根据实际情况进行选择。
建议咨询计算机领域业内人士,获取更准确的信息。
C++-实现进程调度算法-有先来先服务、优先级调度、短作业优先、响应比高优先
课程设计报告书实践课题:操作系统课程设计姓名:学号:完成时间:指导老师:(老师)一、设计摘要利用C++,实现进程调度算法,有先来先服务、优先级调度、短作业优先、响应比高优先,进一步理解了进程调度各种算法的概念及含义。
二、设计背景在OS中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。
对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;在分时系统中,为保证系统具有合理的响应时间,采用轮转法进行调度。
采用算法时,则要考虑多方面因素,以便达到最佳效果。
三、主要技术/算法简介#include<iostream>using namespace std;#define MAX 10struct task_struct{char name[10]; /*进程名称*/int number; /*进程编号*/float come_time; /*到达时间*/float run_begin_time; /*开始运行时间*/float run_time; /*运行时间*/float run_end_time; /*运行结束时间*/int priority; /*优先级*/int order; /*运行次序*/int run_flag; / *调度标志*/}tasks[MAX];int counter; /*实际进程个数*/int fcfs(); /*先来先服务*/int ps(); /*优先级调度*/int sjf(); /*短作业优先*/int hrrn(); /*响应比高优先*/int pinput(); /*进程参数输入*/int poutput(); / *调度结果输出*/void main(){ int option;pinput();printf("请选择调度算法(0~4):\n");printf("1.先来先服务\n");printf("2.优先级调度\n");printf("3.短作业优先\n");printf("4.响应比高优先\n");printf("0.退出\n");scanf("%d",&option);switch (option){case 0:printf("运行结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附件1:课程设计进程调度模拟设计——优先级题目法、最高响应比优先调度算法学院计算机科学与技术专业计算机科学与技术班级计算机科学与技术姓名指导教师2011 年01 月18 日课程设计任务书学生姓名:专业班级:计算机科学与技术指导教师:工作单位:计算机科学与技术学院题目: 进程调度模拟设计——优先级法、最高响应比优先调度算法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。
2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。
时间安排:设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日进程调度模拟设计(优先级法、最高响应比优先调度算法)1设计目的与实现功能模拟进程调度,使程序能够完成:选择不同的调度算法(优先级法或者最高响应比法),选毕算法,能够输入若干进程,包括进程的一些基本信息,如进程名、优先级、到达时间和运行时间等;根据选择的调度算法显示进程调度队列;根据选择的调度算法计算平均周转时间和平均带权周转时间。
2需求分析2.1实验原理最高响应比优先算法(HRN):最高响应比是对先来先服务和最短进程优先法德一种综合平衡。
HRN调度策略同时考虑每个进程的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的进程投入执行。
响应比R定义如下:R=(W+T)/T=1+W/T其中T为该进程的估计需要的执行时间,W为进程在后备状态队列的等待时间。
每当要进行进程调度是,系统计算每个进程的响应比,选择其中R最大者投入执行。
优先级法:系统和用户按某种原则为进程制定一个优先级来表示该进程所享有的调度优先权。
根据优先级的高低来对进程加以调度。
3. 数据结构3.1主要结构及函数struct elment{char name[10]; //进程的名称prigle pri;int hour; //进程提交的时间(小时)int min; //进程提交(分钟)int time; //进程运行需要的时间int time1; //记录进程开始运行的时间int test; // 进程是否在等待的判断位};struct prigle{float prii; //记录进程优先级或者响应比int num; //作用一:定位进程,作用二,标记进程是否运行};void input() //输入进程信息void Getpriorder() //按优先级从大小排列进程void HRN() //最高响应比算法void Getorder() //与void Getpriorder() 连用,完成优先级算法最高响应比算法思路:参数自己按照提示输入;中断时机,某进程执行完成;调度算法思路:系统时间取的第一个进程的提交时间,并执行第一个进程;当某进程执行完成时,系统时间加上该完成进程的运行时间,并删除该节点。
3.2流程图4. 源程序的主要部分4.1,输入函数void input() //输入进程信息{while(1){int d=0;cout<<"请输入第"<<all+1<<"个进程的名称,";if(or==1)cout<<"优先级,";cout<<"到达时间,运行时间"<<endl;scanf("%s",e[all].name);if(or==1)cin>>e[all].pri.prii;else e[all].pri.prii=0;fflush(stdin);char t[5];scanf("%s",&t);d=(t[0]-48)*10+(t[1]-48);if(d>24||d<0){cout<<"输入有误(24小时形式),请重新输入"<<endl;continue;}e[all].pri.num=all;e[all].hour=d;d=(t[3]-48)*10+(t[4]-48);e[all].min=d;e[all].test=0;cin>>e[all].time;e[all].time1=e[all].hour*60+e[all].min;all++;int test1;cout<<endl;cout<<"是否继续输入,继续输入请按1,否则按其他键";cin>>test1;if(test1!=1)break;}}4.2,最高响应比void HRN() //最高响应比算法{elment temp=e[0];for(int i=1;i<all;i++)if(temp.time1>e[i].time1)temp=e[i];a1[0]=temp.pri.num;e[a1[0]].pri.num=-1;for(int j=0;j<all-1;j++){for(int k=0;k<all;k++){if(e[k].pri.num==-1)continue;if(e[k].time1<temp.time1+temp.time)e[k].time1=temp.time1+temp.time;}for(int t=0;t<all;t++){if(e[t].pri.num==-1)continue;e[t].pri.prii=(e[t].time1-e[t].hour*60-e[t].min)/e[t].time;}for(int h=0;h<all;h++){if(e[h].pri.num==-1)continue;if(temp.pri.prii<e[h].pri.prii)temp=e[h];}a1[j+1]=temp.pri.num;e[a1[j+1]].pri.num=-1;}}4.3优先级算法void Getorder() //与void Getpriorder() 连用,完成优先级算法{elment temp=e[0];//temp1[9];int n=0;for(int i=0;i<all;i++){// if(temp.time1==e[i].time1)temp1[n++]=e[i];if(temp.time1>e[i].time1){temp=e[i];n=0;}}a1[0]=temp.pri.num;e[a1[0]].pri.num=-1;for(int k=0;k<all;k++){if(k==a1[0])continue;if(e[k].time1<(e[a1[0]].time1+e[a1[0]].time)){e[k].test=1;e[k].time1=e[a1[0]].time1+e[a1[0]].time;}}n=0;for(int h=0;h<all-1;h++){for(int count=0;count<all;count++)if((e[count].hour*60+e[count].min)<(temp.time1+temp.time))e[count].test=1;for(int t=0;t<all;t++){if(e[a[t]].pri.num==-1)continue;if(e[a[t]].test==1){temp=e[a[t]];a1[++n]=temp.pri.num;e[a[t]].pri.num=-1;break;}}for(int r=0;r<all;r++){if(e[r].pri.num==-1)continue;if(e[r].time1<(temp.time1+temp.time))e[r].time1=temp.time1+temp.time;}}int p=0;for(int l=0;l<all-1;l++)p+=a1[l];a1[++n]=all*(all-1)/2-p;}4.4输出函数void output(){cout<<"*********************************"<<endl;cout<<"进程调度详情如下所示"<<endl;cout<<"进程名称";if(or==1)cout<<"优先级";cout<<"到达时间"<<"开始时间"<<"结束时间"<<"运行时间"<<"周转时间"<<"带周转时间"<<endl;float etime=0.0;float etime1=0.0;for(int i=0;i<all;i++){cout<<" "<<e[a1[i]].name<<'\t'<<" ";if(or==1) cout<<e[a1[i]].pri.prii<<'\t'<<" ";if(e[a1[i]].hour<10)cout<<"0"<<e[a1[i]].hour<<":"<<e[a1[i]].min<<"else cout<<e[a1[i]].hour<<":"<<e[a1[i]].min<<" ";if(e[a1[i]].time1/60<10)cout<<"0"<<e[a1[i]].time1/60<<":";else cout<<e[a1[i]].time1/60<<":";if(e[a1[i]].time1%60<10)cout<<"0"<<e[a1[i]].time1%60<<'\t';else cout<<e[a1[i]].time1%60<<'\t';if((e[a1[i]].time1/60+e[a1[i]].time)<10)cout<<"0"<<(e[a1[i]].time1+e[a1[i]].time )/60<<":";else cout<<(e[a1[i]].time1+e[a1[i]].time)/60<<":";if((e[a1[i]].time1+e[a1[i]].time)%60<10)cout<<"0"<<(e[a1[i]].time1+e[a1[i]].tim e)%60<<'\t'<<" ";else cout<<(e[a1[i]].time1+e[a1[i]].time)%60<<'\t'<<" ";cout<<e[a1[i]].time<<'\t'<<" ";int zhou=e[a1[i]].time1-e[a1[i]].hour*60-e[a1[i]].min+e[a1[i]].time;cout<<zhou<<" "<<'\t'<<" ";float zhou1=float(zhou)/float(e[a1[i]].time);etime1+=zhou1;cout<<zhou1<<endl;etime+=float(e[a1[i]].time1-e[a1[i]].hour*60-e[a1[i]].min+e[a1[i]].time);}cout<<"平均周转时间:"<<etime/all<<"(minute)"<<endl;cout<<"平均带权周转时间:"<<etime1/all<<"(minute)"<<endl;cout<<"*********************************"<<endl;}5测试1.优先级算法输入测试用例:名称优先级到达时间运行时间(分)Li 2 12:30 30Ji 3 12:35 25Ha 4 12:39 20An 1 12:25 15分析:输入了四个进程;首先找出最先到达的进程,虽然an进程优先级最低,但来的最早,进程an运行完毕后,找出就绪的进程,在就绪的进程中,选出优先级高的,经分析,进程运行的先后顺序为an ha ji li经计算,运算结果合乎程序的运行情况。