操作系统课程设计进程调度模拟设计先来先服务,优先
- 格式:docx
- 大小:165.84 KB
- 文档页数:30
先来先服务,时间片调度,优先级调度算法实验报告实验报告1. 引言进程调度是操作系统中非常重要的一部分,它决定了进程在CPU上执行的顺序和时间长度。
在本次实验中,我们通过实现先来先服务调度算法、时间片调度算法和优先级调度算法,并对其性能进行比较,来深入了解各种调度算法的工作原理及优缺点。
2. 先来先服务调度算法先来先服务调度算法按照进程到达的先后顺序进行调度。
当一个进程到达时,如果CPU空闲,则将其分配给CPU进行执行;如果CPU 正在执行其他进程,则该进程将等待直到CPU空闲。
优点是简单易实现,适用于长作业。
缺点是可能出现饥饿现象,即低优先级的进程可能会一直等待高优先级进程的执行。
3. 时间片调度算法时间片调度算法将CPU的执行时间划分为固定长度的时间片,每个进程在一个时间片内执行,当时间片用完后,系统将切换到下一个进程执行。
该算法确保每个进程都有公平的执行时间,避免了饥饿现象。
然而,对于CPU利用率较高的情况下,可能会导致进程频繁地切换,增加了上下文切换的开销。
4. 优先级调度算法优先级调度算法根据进程的优先级来进行调度,优先级较高的进程将具有更高的执行优先级。
当多个进程同时到达CPU时,系统将选择优先级最高的进程先执行。
该算法可以分为静态优先级调度和动态优先级调度两种方式。
优点是可以根据进程的重要性灵活调整执行顺序。
缺点是可能导致优先级低的进程长时间等待,造成饥饿现象。
5. 实验结果与分析我们通过模拟多个进程的到达和执行过程,在不同的场景下比较了先来先服务调度算法、时间片调度算法和优先级调度算法的性能。
实验结果显示,在长作业的情况下,先来先服务调度算法表现较好;在要求公平性的场景下,时间片调度算法比较适合;而对于需要根据优先级来调度的场景,优先级调度算法可以更好地满足需求。
6. 结论不同的进程调度算法在不同的场景下有各自的优劣。
先来先服务调度算法简单易实现,适用于长作业;时间片调度算法保证了公平性,适用于要求公平的场景;而优先级调度算法则可以根据进程的重要性进行调度。
资料范本本资料为 word 版本,可以直接编辑和打印,感谢您的下载先来先服务和短进程优先调度 算法模拟课程设计地点:__________________ 时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义 务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详 细阅读内容课程设计(论文)题 目: 先来先服务和短进程优先调度算法模拟院 (系): 华清学院专业班级: 计算机 2011姓 名:王江学 号:11指导教师:曾应员2013 年 12 月 18 日西安建筑科技大学华清学院课程设计(论文)任务书专业班级: 计算机1101 学生姓名: 王江 指导教师(签名):一、课程设计(论文)题目先来先服务和短进程优先调度算法模拟(进程调度):编写一个进程调度程序, 允许多个进程并行执行,并能选择是先来先服务算法还是短进程优先算法。
二、本次课程设计(论文)应达到的目的操作系统课程实践性比较强。
课程设计是加强学生实践能力的一个强有力手段。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课 程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练, 将起到显著的促进作用。
本题目要达到目的:深入掌握进程调度的概念原理和实现方法。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术 参数、设计要求等)先来先服务调度算法是以进程的到达时间为判断标准,按各个进程所的到达时间 先后顺序进行调度。
短进程优先调度算法是按进程的预计运行时间长短进行排序,先 执行短进程。
四、应收集的资料及主要参考文献:操作系统经典算法的编程实现资料非常丰富,可以在图书馆找书籍或在因特网上 找资料,都很容易找到,但是大部分代码是不全的,不能直接运行,希望大家只是把 它当参考,编码还是自己做。
参考文献: 【1】汤小丹、梁红兵、哲凤屏、汤子瀛 编著.计算机操作系统(第三版).西安: 西安电子科技大学出版社,2007.5 【2】史美林编.计算机操作系统教程.北京:清华大学出版社,1999.11 【3】徐甲同编著.操作系统教程.西安:西安电子科技大学出版社,1996.8【4】Clifford,A.Shaffer 编著.数决结构与算法分析(C++版).北京:电子工业出版社,2005.7 【5】蒋立翔编著.C++程序设计技能百练.北京:中国铁道出版社,2004.1五、审核批准意见教研室主任(签字)设计总说明能够选择不同的调度算法(先来先服务,非强占式短进程优 先算法),通过给出进程名、进程的到达时间和进程的运行时间, 根据调度算法计算出进程的平均周转时间和平均带权周转时间, 比较调度算法的优劣。
1.课程设计的目的《操作系统原理》课程设计我们专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。
其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。
2.课程设计的内容及要求先来先服务、短作业优先、时间片轮转、基于静态优先级的调度,基于高响应比优先的动态优先级调度算法实现,能够输出调度情况,并计算周转时间和平均周转时间。
要求使用链表,进程个数由用户提供,按照进程的实际个数生成PCB,程序能够让用户选择使用哪种调度算法,能够在Linux环境运行并验证结果。
程序要考虑用户界面的友好性和使用方便性。
进程基本信息可从文件读入,也可手动输入。
3、设计原理3.1先来先服务调度算法每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源创建进程,然后放入就绪队列3.2短作业优先调度算法短作业优先调度算法是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
3.3时间片轮转调度算法系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。
时间片的大小从几ms到几百ms。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
3.4静态优先级调度算法把处理机分配给优先级最高的进程,使之执行。
但在其执行期间,只要出现了另一个比其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。
这样就可以保证紧迫性作业优先运行。
3.5最高响应比优先的动态优先级调度算法优先权调度算法是为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入最高优先权优先调度算法。
操作系统课程设计进程调度模拟设计先来先服务,优先课程设计课程名字系统软件开发实训A题目进程调度模拟设计——先来先服务、优先级法学院运算机科学与技术学院专业运算机科学与技术专业班级姓名指导教师李玉强2020 年01 月13 日课程设计任务书学生姓名:专业班级:指导教师:李玉强工作单位:运算机科学与技术学院题目: 进程调度模拟设计——先来先服务、优先级法初始条件:1.预备内容:阅读操作系统的处理机治理章节内容,对进程调度的功能以及进程调度算法有深入的明白得。
2.实践预备:把握一种运算机高级语言的使用。
要求完成的要紧任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的差不多信息,如进程名、优先级、到达时刻和运行时刻等;⑶依照选择的调度算法显示进程调度队列;⑷依照选择的调度算法运算平均周转时刻和平均带权周转时刻。
2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的要紧部分;⑷测试用例,运行结果与运行情形分析;⑸自我评判与总结。
时刻安排:设计安排3周:查阅、分析资料 1天系统软件的分析与建模 4天系统软件的设计 5天系统软件的实现 3天撰写文档 1天课程设计验收答辩 1天设计验收安排:设计周的第三周的指定时刻到实验室进行上机验收。
设计报告书收取时刻:课程设计验收答辩完结时。
(注意事项:严禁抄袭,一旦发觉,抄与被抄的一律按0分记)指导教师签名: 2020 年 12 月 10日系主任(或责任教师)签名: 2020 年 12 月 10日课程设计报告书1.需求分析1.1设计目的(1)阅读操作系统的处理机治理章节内容,对进程调度的功能以及进程调度算法有深入的明白得。
(2)把握一种运算机高级语言的使用。
要求完成的要紧任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.2程序流程图1.3设计要求(1)能够选择不同的调度算法(要求中给出的调度算法);(2)能够输入进程的差不多信息,如进程名、优先级、到达时刻和运行时刻等; (3)依照选择的调度算法显示进程调度队列;(4)依照选择的调度算法运算平均周转时刻和平均带权周转时刻。
操作系统课程设计---作业调度模拟《操作系统课程设计作业调度模拟》在计算机科学领域,操作系统是管理计算机硬件与软件资源的核心系统,而作业调度则是操作系统中的一个关键环节。
作业调度的主要任务是根据一定的策略,将系统中的作业合理地分配到处理机上执行,以提高系统的资源利用率和作业的执行效率。
本次课程设计的目标就是模拟实现一个简单的作业调度系统,通过对作业调度算法的设计和实现,深入理解操作系统中作业调度的原理和机制。
首先,让我们来了解一下作业调度的基本概念和常见的调度算法。
作业调度的主要目标是在多个作业之间合理地分配处理机资源,以满足不同作业的执行需求。
常见的作业调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、高响应比优先调度等。
先来先服务算法是最简单的调度算法,它按照作业到达系统的先后顺序进行调度。
这种算法的优点是实现简单、公平,但缺点是对于长作业可能会导致短作业长时间等待,从而影响系统的整体性能。
短作业优先算法则优先调度执行时间短的作业。
这种算法能够有效地减少作业的平均等待时间,提高系统的吞吐量,但可能会导致长作业长时间得不到调度,出现“饥饿”现象。
优先级调度算法为每个作业赋予一个优先级,系统根据优先级的高低来进行调度。
优先级可以根据作业的紧急程度、重要性等因素来确定。
这种算法能够灵活地满足不同作业的需求,但需要合理地设置优先级,否则可能会导致调度的不公平。
高响应比优先调度算法则综合考虑了作业的等待时间和执行时间,通过计算响应比来决定调度顺序。
响应比的计算公式为:响应比=(等待时间+执行时间)/执行时间。
这种算法在一定程度上避免了短作业优先算法中长作业的“饥饿”问题,同时也能保证短作业的优先调度。
在本次课程设计中,我们选择使用 C 或 C++语言来实现作业调度模拟系统。
系统的主要功能包括作业的创建、作业队列的管理、调度算法的实现以及作业执行情况的输出。
为了实现作业的创建,我们定义了一个作业结构体,其中包含作业的编号、到达时间、执行时间、优先级等信息。
进程调度模拟设计——先来先服务、优先级法学号:课程设计题目进程调度模拟设计——先来先服务、优先级法学院计算机科学与技术专业班级姓名指导教师吴利军2013 年 1 月16 日课程设计任务书学生姓名:专业班级:指导教师:吴利军工作单位:计算机科学与技术学院题目: 进程调度模拟设计——先来先服务、优先级法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。
2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日进程调度模拟设计——先来先服务、优先级法1、背景:当计算机系统是多道程序设计系统时,通常会有多个进程或线程同时竞争CPU。
只要有两个或更多的进程处于就绪状态,这种情形就会发生。
如果只有一个CPU可用,那么就必须选择下一个要运行的进程。
在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法成为调度算法。
操作系统实验_先来先服务的调度算法及短作业优先先来先服务调度算法是一种非抢占式的调度算法,它按照作业到达的先后顺序将作业分配给CPU。
具体来说,当一个作业进入就绪队列时,调度程序将把它放在队列的末尾,然后从队列的头部选择一个作业执行。
只有当一个作业执行完成后,作业队列的头部才会选择下一个作业执行。
先来先服务调度算法的优点是简单易实现,没有复杂的排序操作,适用于短作业和长作业混合的场景。
其缺点是没有考虑作业的执行时间,导致长作业会占用CPU很长时间,影响其他作业的响应时间。
短作业优先调度算法是一种抢占式的调度算法,它根据作业的执行时间选择优先级。
具体来说,当一个作业进入就绪队列时,调度程序会比较该作业的执行时间和其他就绪作业的执行时间,并选择执行时间最短的作业执行。
如果有一个新的作业到达,且其执行时间比当前执行的作业要短,那么调度程序会中断当前作业的执行并切换到新的作业执行。
短作业优先调度算法的优点是能够最大程度上减少作业的等待时间和响应时间,提高系统的吞吐量。
其缺点是需要对作业的执行时间有较准确的估计,否则可能导致长作业陷入饥饿状态。
此外,由于需要频繁进行作业的切换,短作业优先调度算法在实现上相对复杂。
在实际应用中,先来先服务调度算法适用于短作业和长作业混合的场景,或者作业的执行时间无法估计准确的情况下。
例如,在批处理系统中,作业的执行时间往往是固定的,先来先服务调度算法可以保证公平性,并且能够有效利用CPU资源。
而短作业优先调度算法适用于多任务环境下,作业的执行时间可以估计准确的情况下。
例如,在交互式系统中,用户的操作往往是短暂的,短作业优先调度算法可以最大限度地减少用户的等待时间,提高系统的响应速度。
总之,先来先服务调度算法和短作业优先调度算法是操作系统中常用的两种调度算法。
它们分别适用于不同的应用场景,在实际应用中可以根据具体需求选择不同的调度算法。
先来先服务,时间片调度,优先级调度算法实验报告先来先服务、时间片调度、优先级调度算法实验报告1. 引言本次实验旨在研究和比较先来先服务(FCFS)、时间片调度(RR)和优先级调度(Priority Scheduling)三种常见的进程调度算法。
进程调度是操作系统中的重要概念之一,合理的进程调度算法可以提高系统效率,优化资源利用。
2. 先来先服务算法•先来先服务算法是一种简单的调度算法,按照进程到达的顺序进行调度。
•优点:简单易实现,适用于长作业。
•缺点:容易造成短作业等待时间过长,无法满足实时性要求。
3. 时间片调度算法•时间片调度算法将CPU时间划分为一段一段的时间片,每个进程在一个时间片内执行。
•若进程未完成,会被放入就绪队列的末尾,等待下一个时间片。
•优点:公平,适用于短作业,能满足实时性要求。
•缺点:时间片过长,会导致长作业等待时间过长。
4. 优先级调度算法•优先级调度算法根据进程的优先级来确定调度顺序,拥有最高优先级的进程先执行。
•静态优先级可在创建进程时确定,动态优先级可根据进程执行情况进行调整。
•优点:适用于实时任务和长作业,可根据需求调整优先级。
•缺点:可能导致低优先级任务等待时间过长,存在优先级反转问题。
5. 实验结果与分析通过对三种调度算法的实验测试,得出以下结论:•FCFS算法在长作业的情况下表现较好,但对于短作业不友好,容易造成长时间等待;•RR算法适用于短作业,能保证公平性,但时间片过长可能导致长作业等待时间过长;•优先级调度算法较为灵活,能满足实时性要求,但可能导致低优先级任务长时间等待。
综上所述,不同的调度算法适用于不同的场景,根据需求选择合适的算法可提高系统效率。
6. 总结本次实验对先来先服务、时间片调度和优先级调度算法进行了研究和比较。
通过对三种算法的分析,我们可以根据任务特点和需求选择合适的调度算法,以提高系统的效率和资源利用率。
同时,在实际应用中也需要考虑进程的实时性要求,避免长时间等待等问题的出现。
学号:课程设计进程调度模拟设计——先来题目先服务、优先级法学院计算机科学与技术专业班级姓名指导教师吴利军2013 年 1 月16 日课程设计任务书学生姓名:专业班级:指导教师:吴利军工作单位:计算机科学与技术学院题目: 进程调度模拟设计——先来先服务、优先级法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。
2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日进程调度模拟设计——先来先服务、优先级法1、背景:当计算机系统是多道程序设计系统时,通常会有多个进程或线程同时竞争CPU。
只要有两个或更多的进程处于就绪状态,这种情形就会发生。
如果只有一个CPU可用,那么就必须选择下一个要运行的进程。
在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法成为调度算法。
操作系统课程设计进程调度模拟设计先来先服务,优先课程设计课程名字系统软件开发实训A题目进程调度模拟设计——先来先服务、优先级法学院计算机科学与技术学院专业计算机科学与技术专业班级姓名指导教师李玉强2014 年01 月13 日课程设计任务书学生姓名:专业班级:指导教师:李玉强工作单位:计算机科学与技术学院题目: 进程调度模拟设计——先来先服务、优先级法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能与进程调度算法有深入的懂得。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的要紧任务:(包含课程设计工作量及其技术要求,与说明书撰写等具体要求)1.模拟进程调度,能够处理下列的情形:⑴能够选择不一致的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间与运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间与平均带权周转时间。
2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或者模块说明(功能与框图);⑶源程序的要紧部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结。
时间安排:设计安排3周:查阅、分析资料 1天系统软件的分析与建模 4天系统软件的设计 5天系统软件的实现 3天撰写文档 1天课程设计验收答辩 1天设计验收安排:设计周的第三周的指定时间到实验室进行上机验收。
设计报告书收取时间:课程设计验收答辩完结时。
(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名: 2013 年 12 月 10日系主任(或者责任教师)签名: 2013 年 12 月 10日课程设计报告书1.需求分析1.1设计目的(1)阅读操作系统的处理机管理章节内容,对进程调度的功能与进程调度算法有深入的懂得。
(2)掌握一种计算机高级语言的使用。
要求完成的要紧任务: (包含课程设计工作量及其技术要求,与说明书撰写等具体要求) 1.2程序流程图1.3设计要求(1)能够选择不一致的调度算法(要求中给出的调度算法);(2)能够输入进程的基本信息,如进程名、优先级、到达时间与运行时间等; (3)根据选择的调度算法显示进程调度队列;(4)根据选择的调度算法计算平均周转时间与平均带权周转时间。
2.功能设计2.1数据结构1.进程的结构定义: struct process {char name[10]; //进程名int no; //进程序号double arrivetime; //进程达到时间double needtime; //进程运行时间double starttime; //进程开始时间double endtime; //进程结束时间int state; //进程状态,0表示未执行,1表示已执行int priority; //进程优先级process *next;process *head=Null;int count;};2.使用链表存储进程并按照到达时间排序、void insert(process *current){if (head!=Null){if(head->next==Null)//假如只有一个节点{if(current->arrivetime<head->arrivetime) //假如比链头到达时间早,则插入链头{current->next=head;head=current;}else{current->next=Null;head->next=current;}}else//假如至少两个节点{process *p1=head;if(head->arrivetime >current->arrivetime ){current->next=head;head=current;}else{int flag=1;while(p1->next!=Null) //当head后面不为空时一直做{//假如在两个节点间if(p1->arrivetime < current->arrivetime && p1->next->arrivetime > current->arrivetime){current->next=p1->next;p1->next=current;flag=0;break;}else p1=p1->next;}//假如到达时间最大,则插到链尾if (flag=1){p1->next=current;current->next=Null;}}}}else head=current;}2.2先来先服务算法设计1.FCFS算法说明将用户作业与就绪进程按提交顺序或者变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍与最简单的方法。
在该算法中,每个作业或者进程按照它们在队列中等待时间长短来决定它们是否优先享受服务。
在没有特殊理由要优先调度某类作业或者进程时,从处理的角度来看,FCFS方式是一种最合适的方法,由于不管是追加还是取出一个队列元素在操作上都是最简单的。
2.创建进程void createFCFS(){process *q1=new process ;cout<<"请输入进程总数目";cin>>count;cout<<endl;int number=1;while(number<=count){q1=new process;q1->no=number;cout<<"进程序号"<<number<<endl;cout<<"进程名称";cin>>q1->name;cout<<"进程到达时间";cin>>q1->arrivetime;cout<<"进程运行时间";cin>>q1->needtime;q1->next=NULL;insert(q1);number++;cout<<endl<<endl;}}3.进程调度及输出结果void printFCFS(){process *p=new process;double systime=0; //记录系统时间double turn=0; //平均周转时间double turnw=0; //平均带权周转时间if(head==NULL)cout<<"没有进程调度"<<endl;//处理第一个else if(head!=NULL){head->starttime=head->arriveTime;head->endtime=head->arrivetime+head->needtime;systime=head->endtime;turn=turn+(head->endtime - head->arrivetime);turnw=turnw+(head->endtime - head->arrivetime) / head->needtime;p=head->next;while(p!=NULL){if(p->arrivetime>systime) //假如前一个结束后一个还没到达{p->starttime=p->arrivetime;p->endtime=p->starttime+p->needtime;systime=p->endTime;turn=turn+(p->endtime-p->arrivetime);turnw=turnw+(p->endtime-p->arrivetime)/p->needtime;p=p->next;}else //假如前一个未结束时后一个已经到达{p->starttime=systime;p->endtime=p->starttime+p->needtime;systime=p->endtime;turn=turn+(p->endtime-p->arrivetime);turnw=turnw+(p->endtime-p->arrivetime)/p->needtime;p=p->next;}}}cout.setf(ios::left); //设置对齐方式为leftcout<<setw(10)<<"进程序号"<<setw(10)<<"进程名"<<setw(10)<<"到达时间"<<setw(10)<<"开始时间"<<setw(10)<<"执行时间"<<setw(10)<<"结束时间"<<endl;process *temp=head;while(temp!=NULL){cout.setf(ios::left);cout<<setw(10)<<temp->no<<setw(10)<<temp->name<<setw(10)<<temp->arriveTime<<setw( 10)<<temp->startTime<<setw(10)<<temp->needTime<<setw(10)<<temp->endTime<<endl;temp=temp->next;}cout<<"平均周转时间"<<turn/count<<endl<<"平均带权周转时间"<<turnw/count<<endl; //清空链表while(head->next!=NULL) //回收空间{process *t=new process;t=head->next;head->next=t->next;delete t;}head=NULL;}2.3 优先级算法的设计1.PIRO算法及说明优先级法可被用作作业或者进程的调度策略。