模拟一种处理机调度算法

合集下载

实验一___处理器调度(设计一个按时间片轮转法实现处理器调度的程序)

实验一___处理器调度(设计一个按时间片轮转法实现处理器调度的程序)

实验一处理器调度一、实验内容选择一个调度算法,实现处理器调度。

二、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。

当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。

本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。

三、实验题目第二题:设计一个按时间片轮转法实现处理器调度的程序。

[提示]:(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。

进程控制块的格式为:其中,Q1,Q2,Q3,Q4,Q5。

指针——进程按顺序排成循环队列,用指针指出下一个进程的进程控制块的首地址最后一个进程的指针指出第一个进程的进程控制块首地址。

要求运行时间——假设进程需要运行的单位时间数。

已运行时间——假设进程已经运行的单位时间数,初始值为“0”。

状态——有两种状态,“就绪”和“结束”,初始状态都为“就绪”,用“R”表示。

当一个进程运行结束后,它的状态为“结束”,用“E”表示。

(2) 每次运行所设计的处理器调度程序前,为每个进程任意确定它的“要求运行时间”。

(3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。

另用一标志单元记录轮到运行的进程。

例如,当前轮到P2执行,则有:标志单元K1K2K3K4K5PCB1 PCB2 PCB3 PCB4 PCB5(4)处理器调度总是选择标志单元指示的进程运行。

由于本实习是模拟处理器调度的功能,所以,对被选中的进程并不实际的启动运行,而是执行:已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位的时间。

请同学注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。

在这时省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。

(5)进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。

操作系统实验之处理机调度实验报告

操作系统实验之处理机调度实验报告

操作系统实验之处理机调度实验报告一、实验目的处理机调度是操作系统中的核心功能之一,本次实验的主要目的是通过模拟不同的处理机调度算法,深入理解操作系统对处理机资源的分配和管理策略,比较不同调度算法的性能差异,并观察它们在不同负载情况下的表现。

二、实验环境本次实验使用的操作系统为 Windows 10,编程语言为 Python 38。

实验中使用了 Python 的相关库,如`numpy`、`matplotlib`等,用于数据生成、计算和图形绘制。

三、实验原理1、先来先服务(FCFS)调度算法先来先服务算法按照作业到达的先后顺序进行调度。

先到达的作业先被服务,直到完成或阻塞,然后再处理下一个到达的作业。

2、短作业优先(SJF)调度算法短作业优先算法选择预计运行时间最短的作业先执行。

这种算法可以有效地减少作业的平均等待时间,但可能导致长作业长时间等待。

3、时间片轮转(RR)调度算法时间片轮转算法将处理机的时间分成固定长度的时间片,每个作业轮流获得一个时间片的处理时间。

当时间片用完后,如果作业还未完成,则将其放入就绪队列的末尾等待下一轮调度。

4、优先级调度算法优先级调度算法为每个作业分配一个优先级,优先级高的作业先被执行。

优先级可以根据作业的性质、紧急程度等因素来确定。

四、实验内容与步骤1、数据生成首先,生成一组模拟的作业,包括作业的到达时间、预计运行时间和优先级等信息。

为了使实验结果更具代表性,生成了不同规模和特征的作业集合。

2、算法实现分别实现了先来先服务、短作业优先、时间片轮转和优先级调度这四种算法。

在实现过程中,严格按照算法的定义和规则进行处理机的分配和调度。

3、性能评估指标定义了以下性能评估指标来比较不同调度算法的效果:平均等待时间:作业在就绪队列中的等待时间的平均值。

平均周转时间:作业从到达系统到完成的时间间隔的平均值。

系统吞吐量:单位时间内完成的作业数量。

4、实验结果分析对每种调度算法进行多次实验,使用不同的作业集合,并记录相应的性能指标数据。

处理机调度实验报告

处理机调度实验报告

处理机调度实验报告处理机调度实验报告一、引言处理机调度是计算机操作系统中一个重要的概念,它涉及到如何合理地分配处理机资源以提高系统的运行效率。

本文将针对处理机调度进行实验,探讨不同调度算法对系统性能的影响。

二、实验目的本实验的目的是通过模拟不同的处理机调度算法,比较它们在不同负载下的性能表现,进而分析其优缺点,为实际操作系统的调度算法选择提供参考。

三、实验方法1. 实验环境本实验使用了一台配置较高的计算机作为实验环境,操作系统为Linux,处理器为Intel Core i7,内存为8GB。

2. 实验设置为了模拟不同的负载情况,我们使用了三个不同的测试程序:程序A、程序B和程序C。

程序A是一个计算密集型任务,程序B是一个I/O密集型任务,程序C是一个混合型任务。

3. 实验步骤首先,我们分别运行程序A、程序B和程序C,并记录它们的运行时间。

然后,我们使用不同的调度算法来调度这些任务,并记录它们的运行时间和系统资源利用率。

四、实验结果与分析1. 调度算法1:先来先服务(First-Come, First-Served,FCFS)FCFS算法按照任务到达的先后顺序进行调度,即先到先服务。

实验结果显示,在计算密集型任务下,FCFS算法表现较好,但在I/O密集型任务和混合型任务下,其性能明显下降。

这是因为在FCFS算法中,任务的执行顺序是固定的,无法根据任务的特性进行灵活调度。

2. 调度算法2:最短作业优先(Shortest Job First,SJF)SJF算法根据任务的执行时间进行调度,即执行时间最短的任务先执行。

实验结果显示,在计算密集型任务和混合型任务下,SJF算法表现较好,但在I/O密集型任务下,其性能较差。

这是因为在I/O密集型任务中,任务的执行时间不仅与计算量有关,还与I/O操作的耗时有关,因此SJF算法无法有效地进行调度。

3. 调度算法3:时间片轮转(Round Robin,RR)RR算法将处理机的运行时间划分为若干个时间片,每个任务在一个时间片内执行一定的时间,然后切换到下一个任务。

用C语言模拟Linux操作系统下处理机调度实验报告

用C语言模拟Linux操作系统下处理机调度实验报告

实验二:处理机调度一、实验目的:1、了解Linux下Emacs编辑器的使用方法,掌握各种常用的键盘操作命令;2、理解并掌握处理机调度算法。

二、实验内容及要求:在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态。

当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机。

本实验模拟在单处理机情况下处理机调度。

1、优先调度算法实现处理机的调度:设计思路:1每个进程用一个进程控制块PCB来代表,进程控制块包括进程名(进程的标识、指针(按优先数的大小把进程连成队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针为"0"、要求运行时间、优先数、状态(就绪、结束;2每次运行处理机调度程序前,为每个进程确定它的"优先数"和"要求运行时间";3把给定的进程按优先数的大小连成队列,用一单元指出队首进程;4每模拟执行一次进程,优先数减一,要求运行时间减一;5如果要求运行的时间>=0,再将它加入队列(按优先数的大小插入,重置队首标志);如果要求运行的时间=0,那么把它的状态修改为结束,且推出队列;6若就绪队列不为空,重复上述,直到所有的进程都结束;7程序有显示和打印语句,每次运行后显示变化。

2、按时间片轮转法实现处理机调度:设计思路:1每个进程用一个进程控制块PCB来代表,进程控制块包括进程名(进程的标识、指针(把进程连成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址、已运行时间、状态(就绪、结束;2每次运行处理机调度程序前,为每个进程确定它的"要求运行时间";3用指针把给定的进程按顺序排成循环队列,用另一标志单元记录轮到的进程;4每模拟运行一次进程,已运行时间加一;5进程运行一次后,把该进程控制块的指针值送到标志单元,以指示下一个轮到的进程。

操作系统实验5 进程调度模拟程序设计

操作系统实验5 进程调度模拟程序设计

一、实验内容进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)或者时间片轮转法。

每个进程有一个进程控制块(PCB)表示。

进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。

进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。

进程的到达时间为进程输入的时间。

进程的运行时间以时间片为单位进行计算。

等待I/O的时间以时间片为单位进行计算,可随机产生,也可事先指定。

每个进程的状态可以是就绪R(Ready)、运行R(Run)、等待(Wait)或完成F(Finish)四种状态之一。

就绪进程获得CPU后都只能运行一个时间片。

用已占用CPU时间加1来表示。

如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。

每进行一次调度程序都打印一次运行进程、就绪队列、等待进程以及各个进程的PCB,以便进行检查。

重复以上过程,直到所要进程都完成为止。

用C或C++二、实验目的与要求在采用多道程序设计的设计中的系统中,往往有若干个进程同时处于就绪状态。

当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度工作。

三、实验环境Visual+C++6.0四、实验步骤1、实验准备知识处理器调度总是选对首进程运行。

采用动态改变优先数的办法,进程每运行一次优先数就减“1”。

由于本次实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数—1要求运行时间—1来模拟进程的一次运行。

进程运行一次后,若要求运行时间≠0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间≠0,则把它的状态修改成“结束”,且结束队列。

操作系统课程设计报告-进程调度算法模拟

操作系统课程设计报告-进程调度算法模拟

1.课程设计的目的《操作系统原理》课程设计我们专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。

其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。

2.课程设计的内容及要求先来先服务、短作业优先、时间片轮转、基于静态优先级的调度,基于高响应比优先的动态优先级调度算法实现,能够输出调度情况,并计算周转时间和平均周转时间。

要求使用链表,进程个数由用户提供,按照进程的实际个数生成PCB,程序能够让用户选择使用哪种调度算法,能够在Linux环境运行并验证结果。

程序要考虑用户界面的友好性和使用方便性。

进程基本信息可从文件读入,也可手动输入。

3、设计原理3.1先来先服务调度算法每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源创建进程,然后放入就绪队列3.2短作业优先调度算法短作业优先调度算法是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

3.3时间片轮转调度算法系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。

时间片的大小从几ms到几百ms。

当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。

3.4静态优先级调度算法把处理机分配给优先级最高的进程,使之执行。

但在其执行期间,只要出现了另一个比其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。

这样就可以保证紧迫性作业优先运行。

3.5最高响应比优先的动态优先级调度算法优先权调度算法是为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入最高优先权优先调度算法。

处理机调度算法的模拟

处理机调度算法的模拟

处理机调度算法的模拟在计算机操作系统中,处理机调度算法决定了在多个进程或任务同时存在的情况下,哪个任务将获得处理机的使用权,以及在多个任务之间如何切换。

处理机调度算法可以按照多个指标进行优化,例如响应时间、吞吐量、周转时间和等待时间等。

以下是几种常见的处理机调度算法:1.先来先服务(FCFS):先来先服务是最简单的调度算法之一,它按照任务到达的先后顺序分配处理机资源。

这种算法的优点是简单易实现,但是当存在长作业(任务)时,会导致其他短作业的等待时间过长。

2.短作业优先(SJF):短作业优先调度算法根据任务的估计执行时间来进行调度,优先执行估计执行时间短的任务。

这种算法可以减少任务的等待时间,但对于长作业来说,可能会导致饥饿现象。

3.优先级调度:优先级调度算法根据任务的优先级进行调度,优先级高的任务先获得处理机的使用权。

这种算法可以根据不同任务的紧急性和重要性来确保任务得到适当的优先级处理。

但是,如果优先级设置不合理,可能会导致一些任务永远得不到执行。

4.时间片轮转调度:时间片轮转调度算法是一种公平的调度算法,它将处理机的使用权按照时间片划分给不同的任务,每个任务只能执行一个时间片的任务。

如果任务在时间片结束之前没有完成,它将被放回到任务队列的末尾继续等待。

这种算法可以确保每个任务都有机会获得处理机的使用权,但是可能会存在上下文切换的开销。

以上只是几种常见的处理机调度算法,实际上还有许多其他算法以及它们的变体,例如最短剩余时间优先(SRTF)、多级反馈队列调度(MFQ)等。

每种调度算法都有不同的优缺点,选择适合的调度算法取决于系统的需求和资源限制。

为了模拟处理机调度算法,可以使用计算机模拟软件或编写自己的模拟程序。

模拟程序可以模拟任务的到达和执行过程,按照指定的调度算法进行任务的分配和切换,并统计不同指标(如响应时间、吞吐量等)来评估算法的性能。

在模拟处理机调度算法时,需要考虑以下几个方面:1.任务的到达过程:任务可以按照随机分布的方式到达,模拟任务的到达时间和资源需求。

进程调度模拟设计——先来先服务、强占式短进程优先算法

进程调度模拟设计——先来先服务、强占式短进程优先算法

操作系统课程设计题目进程调度模拟设计——先来先服务、强占式短进程优先算法学院计算机科学与技术专业计算机科学与技术班级计算机0903姓名方传强指导教师杜薇2012 年 1 月11 日课程设计任务书学生姓名:方传强专业班级:计算机0903 指导教师:杜薇工作单位:计算机科学与技术学院题目: 进程调度模拟设计——先来先服务、强占式短进程优先算法初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:设计安排一周:周1、周2:完成程序分析及设计。

周2、周3:完成程序调试及测试。

周4、周5:验收、撰写课程设计报告。

(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日课程设计报告书1.课程设计的题目进程调度模拟设计——先来先服务、强占式短进程优先算法。

2.课程设计的目的此次课程设计的预备内容是阅读操作系统的处理机管理章节内容,并对进程调度的功能以及进程调度算法有深入的理解和掌握。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告设计名称:模拟实现一种处理机调度算法学生姓名: xxx专业:计算机科学与技术班别: xxxxxxxx 学号: xxxxxx 指导老师: xxxxx日期: 2014 年 6 月 20 日初始条件:1.预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟进程调度,能够处理以下的情形:⑴能够选择不同的调度算法(要求中给出的调度算法);⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;⑶根据选择的调度算法显示进程调度队列;⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);进程调度模拟设计——先来先服务、优先级法1、背景:当计算机系统是多道程序设计系统时,通常会有多个进程或线程同时竞争CPU。

只要有两个或更多的进程处于就绪状态,这种情形就会发生。

如果只有一个CPU可用,那么就必须选择下一个要运行的进程。

在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法成为调度算法。

进程调度的核心问题是采用什么样的算法把处理机分配给进程,好的算法将提高资源利用率,减少处理机的空闲时间,避免有些作业长期得不到相应的情况发生等,从而设计出受欢迎的操作系统。

较常见的几种进程调度算法有:先来先服务调度算法;短作业优先调度算法;时间片轮转调度算法;优先级调度算法;高响应比优先算法和多级反馈队列调度算法等。

2.1设计目的无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

这就要求进程调度程序按一定的策略,动态地把处理机初始 就绪 等待 执行 终止 调度 完成等待某个事件发生而睡眠时间片到 因等待事件发生而唤醒 分配给处于就绪队列中的某一个进程,以使之执行。

本次课程设计的主要任务是用高级语言模拟进程调度的算法,包括先来先服务和优先级法。

通过输入进程的信息,模拟某种调度算法,得到进程调度的顺序,从而进一步分析进程的调度过程,并通过分析程序的运行,探讨各种调度算法的优劣。

2.2 设计内容及要求1)充分体现设计、实现过程;2)报告包括算法流程描述、数据结构代码描述、算法实现代码描述、模拟执行过程截图;3)单人完成课程设计,每人一份报告;4)报告双面打印;2.3 算法与设计的思想2.3.1 算法思想:·一个进程的生命期可以划分为一组状态,这些状态刻画了整个进程。

系统根据PCB结构中的状态值控制过程。

在进程的生命期内,一个进程至少具有5种基本状态,它们是:初始态、执行状态、等待状态、就绪状态和终止状态。

通过系统设计,实现进程相关数据结构的创建和查看功能;实现多种进程调度算法:先来先服务算法、优先级调度算法、时间片轮转法等;实现对执行进程的阻塞,对等待进程的唤醒等功能。

进程的转换过程如上·进程的先来先服务调度算法:首先定义进程结构体,用于记录进程的基本信息,包括进程名,优先级,进程到达时间,进程运行时间,然后将用户输入的进程信息保存到定义的结构数组中,并按进程到达的先后时间对数组进行排序,并记录它们的周转时间、带权周转时间、平均周转时间及平均带权周转时间。

·进程的优先级调度算法:同样先定义进程结构替,记录进程信息,将用户输入的进程信息保存在结构体数组中。

遍历数组,找出最先到达的进程,若有多个,则取优先级最高的一个,与数组中的第一个位置的进程互换位置,记录此进程执行完的时间,然后从第二个位置开始遍历数组,找到在第一个进程执行结束前到达的进程,若没有,则找到余下进程中到达时间最早的进程,找到优先级最高的一个,若并与数组的第二个位置的进程互换位置。

按同样的方法为余下的进程排序。

同样记录它们的周转时间,带权周转时间,并算出平均周转时间和平均带权周转时间。

2.3.2设计思想:a)每个进程有一个进程控制块(PCB)表示。

进程控制块可以包含如下信息:进程名、优先级数、到达时间、需要运行时间等等。

b)进程的信息,包括到达时间,优先数及需要的运行时间等都是事先人为地指定。

c)每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

2、功能设计(数据结构及模块说明);3.1 系统流程如下:输入判断先来先服务优先级法是输出是否继续否结束3.2数据结构及模块说明:(1)输入模块能够满足输入进程基本信息的功能,尽可能提供友好的交互界面。

给用户很好的提示,使用户能够方便的操作。

(2)算法模块先来先服务算法:可以根据进程到达的先后顺序来确定进程的运行顺序,并算出进程的周转时间,平均周转时间等。

优先级法:根据进程的优先级和进程到达的时间来确定进程的调度顺序,并算出周转时间,带权周转时间等。

(3)输出模块根据算法得到的进程调度顺序以及算出的其他参数,将其输出。

3、开发平台及源程序的主要部分;4.1软硬件环境●硬件设备: PC机●软件设备:WINDOWSXP、Microsoft Visual C++ 6.04.2 源代码主要部分:(1)信息输入函数:void getInput(char *pname,int *priority,char *begintime,float *runtime) {printf("请输入进程名:");scanf("%s",pname);printf("请输入优先级");scanf("%d",priority);printf("请输入到达时间:");scanf("%s",begintime);printf("请输入¨运行时间(min):");scanf("%f",runtime);}(2)先来先服务的算法:void fcfs(struct process *pro,int n){int i,j;struct process p;for(i = 0;i < n;i ++){for(j = 0;j < n - i -1;j ++){if(!timecompare(pro[j],pro[j+1])){p = pro[j + 1];pro[j + 1] = pro[j];pro[j] = p;}}}}(3)优先级法的算法:void prior(struct process *pro,int n) {int i,j,pt,t,bt,m;bt = 0;int a[MAXPROCESS];struct process p;float curtime = 1500;for(i = 0;i < n;i ++){if(curtime > pro[i].btime){curtime = pro[i].btime;}}for(i = 0;i < n;i ++){t = 0;pt = 0;for(j = i;j < n;j++){if(pro[j].btime <= curtime){a[t++] = j;}}if(t == 0){curtime = 1500;for(j = i;j < n;j ++){if(curtime > pro[j].btime){curtime = pro[j].btime;}}for(j = i;j < n;j++){if(pro[j].btime <= curtime){a[t++] = j;}}}for(j = 0;j < t;j++){bt = a[j];if(pro[bt].priority > pt){pt = pro[bt].priority;m = bt;}}if(m != i){p = pro[m];pro[m] = pro[i];pro[i] = p;}curtime = curtime + pro[i].runtime;}}4、测试用例,运行结果与运行情况分析;5.1测试用例:①进程个数为4②进程名唯一③预计运行结果:先来先服务:c a d b优先级法:c a b d进程名进程到达时间运行时间优先级a 2:12 34 2b 3:10 31 3c 1:15 21 1d 2:13 11 25.2运行结果:。

相关文档
最新文档