短作业优先SJF调度算法

合集下载

sjf算法例题详解

sjf算法例题详解

sjf算法例题详解SJF算法例题解析什么是SJF算法•SJF(Shortest Job First)算法是一种非抢占式的调度算法,也被称为最短作业优先算法。

•SJF调度算法根据进程的执行时间来进行调度,先执行执行时间短的任务,以减少平均等待时间。

SJF算法的执行过程1.将进程按照执行时间从小到大进行排序,得到一个等待队列。

2.从等待队列中选择执行时间最短的进程进行执行。

3.若有多个进程的执行时间相同,则根据其到达时间进行选择,选择最先到达的进程执行。

4.执行完当前进程后,更新等待队列,继续选择执行时间最短的进程进行执行,直到所有进程执行完毕。

SJF算法的例题解析•假设有以下五个进程需要执行,进程的执行时间和到达时间如下:进程 | 到达时间 | 执行时间 |—- | | |P1 | 0 | 5 |P2 | 1 | 3 |P3 | 2 | 8 |P4 | 3 | 6 |P5 | 4 | 4 |1.首先,将进程按照到达时间进行排序:进程 | 到达时间 | 执行时间 |—- | | |P1 | 0 | 5 |P2 | 1 | 3 |P3 | 2 | 8 |P4 | 3 | 6 |P5 | 4 | 4 |2.然后,根据执行时间进行排序,若执行时间相同,则根据到达时间进行选择:进程 | 到达时间 | 执行时间 |—- | | |P2 | 1 | 3 |P5 | 4 | 4 |P1 | 0 | 5 |P4 | 3 | 6 |P3 | 2 | 8 |3.根据执行时间选择要执行的进程:进程 | 到达时间 | 执行时间 |—- | | |P2 | 1 | 3 |4.执行完P2进程后,更新等待队列:进程 | 到达时间 | 执行时间 |—- | | |P5 | 4 | 4 |P1 | 0 | 5 |P4 | 3 | 6 |P3 | 2 | 8 |5.继续选择执行时间最短的进程执行,执行完毕后更新等待队列,直到所有进程执行完毕。

先来先服务FCFS和短作业优先SJF进程调度算法

先来先服务FCFS和短作业优先SJF进程调度算法

先来先服务FCFS和短作业优先SJF进程调度算法
先来先服务(FCFS)算法是最简单的一种进程调度算法。

它的原则是按照作业到达的顺序,将作业分配给处理器。

当一个作业到达系统后,它将占用处理器并运行,直到完成所有的工作。

在FCFS算法中,没有考虑作业的大小或者运行时间,所有的作业都按照到达的先后顺序进行处理。

FCFS算法的优点是实现简单,没有复杂的调度信息和数据结构的支持;缺点是对于长作业或者执行时间较长的作业来说,等待时间会很长,导致响应时间较慢,同时也会降低系统的吞吐量。

短作业优先(SJF)算法是一种根据作业的执行时间进行调度的算法。

它的原则是当一个作业到达系统后,系统将根据作业的执行时间,将处理器分配给执行时间最短的作业。

在SJF算法中,系统需要对每一个作业的执行时间进行估计,然后选择执行时间最短的作业。

SJF算法的优点是能够最大限度地减少作业的等待时间,提高系统的响应速度和吞吐量;缺点是需要对作业的执行时间进行准确的估计,而这往往是比较困难的。

如果估计不准确,可能会导致执行时间较长的作业一直等待,而执行时间较短的作业得到了优先处理。

总结起来,FCFS和SJF两种进程调度算法各有优缺点。

FCFS算法简单直观,但可能导致作业的等待时间较长;而SJF算法可以最大限度地减少作业的等待时间,但需要准确地估计作业的执行时间。

在实际使用中,可以根据作业的特点和系统的需求选择适合的调度算法。

同时,也可以考虑使用其他的调度算法,如时间片轮转、优先级调度等,来满足更复杂的任务调度需求。

常用的调度算法

常用的调度算法

常用的调度算法调度算法是指操作系统中用于决定进程何时执行、何时暂停等的一种算法。

常用的调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、时间片轮转等。

下面将对这些常用的调度算法进行详细介绍。

一、先来先服务(FCFS)先来先服务是最简单的调度算法之一,它按照进程到达的顺序进行调度,即谁先到谁先执行。

这种算法容易实现,但是存在“饥饿”现象,即如果某个进程长时间等待,则其他进程可能会一直占用CPU资源,导致该进程无法得到执行。

因此,在实际应用中,FCFS很少被使用。

二、短作业优先(SJF)短作业优先是一种以作业运行时间为依据的调度算法。

它通过预测每个进程需要运行的时间,并将其按照运行时间从小到大排序,然后依次执行。

这种算法可以最大限度地减少平均等待时间和平均周转时间,并且不会出现“饥饿”现象。

但是,在实际应用中,由于很难准确预测每个进程需要运行的时间,因此SJF也存在缺陷。

如果预测不准确,那么就会出现长作业等待短作业的情况,导致长作业的等待时间变长。

三、优先级调度优先级调度是一种按照进程优先级进行调度的算法。

每个进程都有一个优先级,系统会根据进程的优先级来决定下一个要执行的进程。

通常情况下,优先级越高的进程越有可能得到CPU资源。

但是,如果某个进程的优先级一直比其他进程高,那么其他进程就会一直等待,导致“饥饿”现象。

此外,在实际应用中,由于不同进程之间的优先级差别较大,因此可能会导致低优先级的进程长时间等待。

四、时间片轮转时间片轮转是一种按照时间片进行调度的算法。

它将CPU资源划分成若干个时间片,并将每个时间片分配给一个正在运行或等待运行的进程。

当一个进程用完了它所分配到的时间片后,系统会将其挂起,并将CPU资源分配给下一个等待运行的进程。

这种算法可以避免“饥饿”现象,并且能够保证所有正在运行或等待运行的进程都能够得到CPU资源。

但是,如果时间片太小,会导致进程频繁切换,影响系统性能;如果时间片太大,会导致长作业等待时间变长。

先来先服务FCFS和短作业优先SJF进程调度算法

先来先服务FCFS和短作业优先SJF进程调度算法

先来先服务FCFS和短作业优先SJF进程调度算法FCFS(先来先服务)算法是最简单的进程调度算法之一、它按照进程到达的顺序来分配CPU时间,即先到达的进程先执行。

在FCFS算法中,进程按照它们进入就绪队列的时间排序,随后按照就绪队列的顺序被调度执行。

FCFS算法不考虑进程的执行时间,也不会对进程进行任何优先级排序。

FCFS算法的优点是简单易懂,实现起来非常简单。

但是,FCFS算法有一个明显的缺点是不利于短进程的执行。

当一个长进程到达并占据CPU 资源时,短进程可能要等待很长时间才能执行。

这种情况下,CPU的利用率会较低,响应时间也会较长。

因此,FCFS算法适用于进程的执行时间相对较短且没有明显的优先级关系的场景。

SJF(短作业优先)算法是根据进程的执行时间进行优先级排序的进程调度算法。

在SJF算法中,短进程将会优先执行,而长进程需等待。

当一个进程到达就绪队列时,系统会根据其估计的执行时间大小将其插入到就绪队列的适当位置。

当前执行的进程完成后,下一个执行的是就绪队列中估计执行时间最短的进程。

SJF算法的优点是能够减少平均等待时间,提高系统整体的吞吐量。

由于短进程占用CPU时间较少,因此能够更快地释放CPU资源给其他进程使用,从而减少等待时间。

然而,SJF算法存在一个问题是如何准确估计进程的执行时间。

在实际场景中,准确估计进程的执行时间是很困难的,因此SJF算法很容易出现估计错误,导致长进程等待时间过长。

总结来说,FCFS和SJF都是进程调度算法,但它们有不同的特点和适用场景。

FCFS算法简单易懂,适用于进程执行时间相对较短且没有明显优先级的场景;而SJF算法适用于进程执行时间有较大差异的场景,能够减少平均等待时间。

然而,SJF算法对进程的执行时间要求较高,需要准确估计执行时间,否则可能导致长进程等待时间过长。

在实际应用中,通常会根据具体情况选择不同的调度算法。

例如,在交互式系统中,为了提供更好的用户体验,使用SJF算法能够减少响应时间;而在批处理系统中,FCFS算法通常被用于处理较短的作业。

操作系统实验_先来先服务的调度算法及短作业优先

操作系统实验_先来先服务的调度算法及短作业优先

操作系统实验_先来先服务的调度算法及短作业优先1.引言操作系统的调度算法是指在多进程环境中,操作系统为进程分配CPU 的顺序和策略。

先来先服务(FCFS)调度算法是最简单的调度算法之一,它按照进程到达的顺序为其分配CPU。

而短作业优先(SJF)调度算法是根据进程的执行时间来为其分配CPU,执行时间越短的进程越先执行。

本文将分别介绍FCFS调度算法和SJF调度算法,并对其进行评价和比较。

2.先来先服务(FCFS)调度算法2.1调度原理FCFS调度算法的原理非常简单,按照进程到达的顺序为其分配CPU。

当一个进程进入就绪队列后,如果CPU空闲,则立即为其分配CPU。

如果CPU正忙,则进程进入等待队列,等待CPU空闲后再分配。

在该算法中,进程的运行时间不考虑,只考虑进程到达的时间。

2.2优点与缺点FCFS调度算法的主要优点是实现简单,无需对进程的运行时间进行估计。

但FCFS算法存在一定的缺点。

首先,长作业在短作业前面等待的时间较长,可能导致长作业的响应时间过长。

其次,如果有一个进程出现阻塞或响应时间过长,其后面的进程也会受到影响,造成整个系统的性能下降。

3.短作业优先(SJF)调度算法3.1调度原理短作业优先(SJF)调度算法是根据进程的执行时间来为其分配CPU。

当一个进程进入就绪队列后,如果其执行时间比当前正在运行的进程短,则优先为该进程分配CPU。

如果当前没有运行的进程或者当前运行的进程执行完毕,则立即为该进程分配CPU。

在该算法中,进程的到达时间不考虑,只考虑进程的执行时间。

3.2优点与缺点SJF调度算法的主要优点是可以最大程度地减少平均等待时间,提高系统的吞吐量。

短作业可以快速执行完毕,从而让更多的作业得以执行。

但SJF算法存在一定的缺点。

首先,需要对进程的执行时间有一个准确的估计,对于实时系统或动态系统来说,估计执行时间可能会有一定的误差。

其次,在长作业激增的情况下,短作业可能会一直得不到CPU的分配,造成长时间的等待。

短作业优先调度算法例题详解

短作业优先调度算法例题详解

短作业优先调度算法例题详解
(原创实用版)
目录
1.短作业优先调度算法的概述
2.算法的例子
3.算法的详解
4.算法的优点和缺点
正文
一、短作业优先调度算法的概述
短作业优先调度算法(Shortest Job First, SJF)是一种常见的作业调度算法。

这种算法的基本原则是优先执行估计运行时间最短的作业,直到完成。

然后,再从剩下的作业中选择估计运行时间最短的作业执行,以此类推。

这种算法的目的是尽可能减少作业的平均等待时间。

二、算法的例子
假设有一个计算机系统,其中有三个作业需要执行,它们的运行时间分别是:作业 1 需要 20 分钟,作业 2 需要 30 分钟,作业 3 需要 10 分钟。

按照短作业优先调度算法,执行顺序应为:先执行作业 3(10 分钟),然后执行作业 1(20 分钟),最后执行作业 2(30 分钟)。

三、算法的详解
短作业优先调度算法的执行过程可以分为以下几个步骤:
1.首先,将等待执行的作业按照运行时间从短到长进行排序。

2.然后,选择运行时间最短的作业执行,直到完成。

3.完成后,再从剩下的作业中选择运行时间最短的作业执行,以此类推。

四、算法的优点和缺点
短作业优先调度算法的优点是能够使得作业的平均等待时间最短,从而提高了系统的效率。

然而,这种算法也有其缺点,那就是长作业可能会被频繁地打断,导致其执行效率低下。

短作业先服务调度算法和时间片轮转调度算法

短作业先服务调度算法和时间片轮转调度算法
1.短作业先服务(SJF)调度算法
短作业先服务调度算法是一种根据作业执行时间进行调度的算法。

它假设系统中所有作业的执行时间是已知的,并按照执行时间的大小来进行排序。

在每个时间片(或者说CPU的一个时间段)内,调度器会选择一个执行时间最短的作业来执行。

如果有多个作业的执行时间相同,则根据其到达时间进行比较,选择先到达的作业来执行。

短作业先服务调度算法的优点是可以最大程度地减少平均等待时间。

因为执行时间较短的作业会更早执行完毕,并释放CPU资源给其他作业使用。

然而,这种算法的缺点是可能会导致长作业的等待时间过长,从而降低了长作业的优先级。

时间片轮转调度算法是一种基于时间片的调度算法。

每个进程被分配一个时间片,该时间片内进程可以执行。

当时间片用完后,调度器会将进程放到就绪队列的末尾,并选择队列中的下一个进程来执行,直到所有进程执行完毕。

时间片轮转调度算法的优点是公平性,所有进程的等待时间都是相同的。

此外,该算法避免了长作业等待时间过长的问题。

但是,对于长时间执行的作业,其执行会被不断中断,导致一定的上下文切换开销。

时间片轮转调度算法适用于作业执行时间相对均匀的场景,保证了所有作业的等待时间公平,但会增加一定的上下文切换开销。

综上所述,短作业先服务调度算法和时间片轮转调度算法都有各自的优点和缺点,需要根据具体的应用场景选择合适的调度算法。

同时,考虑
到实际情况,也可以采用其他调度算法的变种或综合算法来更好地满足实际需求。

sjf算法例题详解(一)

sjf算法例题详解(一)SJF算法例题1. 什么是SJF算法?•SJF算法(Shortest Job First,短作业优先算法)是一种操作系统调度算法。

•它的原则是按照作业的执行时间来进行调度,执行时间短的作业会被优先调度执行。

•SJF算法适用于一些具有明确执行时间的作业,能够提高作业的响应速度和系统的整体利用率。

2. SJF算法的例题考虑以下作业列表及其执行时间:作业列表:[A, B, C, D]执行时间:[5, 3, 8, 2]3. 算法过程按照SJF算法的原则,我们需要对作业列表进行排序,排序的依据是作业的执行时间。

排序后的作业列表如下:作业列表:[D, B, A, C]执行时间:[2, 3, 5, 8]4. 执行顺序根据排序后的作业列表,我们按照顺序执行作业。

执行顺序为:D -> B -> A -> C5. 算法优势SJF算法的优势在于能够减少作业的等待时间和响应时间,提高系统的整体效率。

6. 算法局限性SJF算法的局限性在于对作业的执行时间需求较高,如果无法准确估计作业的执行时间,可能会导致调度不准确。

7. 结论SJF算法是一种高效的操作系统调度算法,适用于有明确执行时间的作业。

它能够提高作业的响应速度和系统的整体利用率,但对作业的执行时间估计要求较高。

在实际应用中,可以根据任务的执行时间情况选择合适的调度算法以提高系统性能。

以上是对SJF算法例题的详细解释,希望能够对读者有所帮助。

SJF算法例题1. 什么是SJF算法?•SJF算法(Shortest Job First,短作业优先算法)是一种操作系统调度算法。

•它的原则是按照作业的执行时间来进行调度,执行时间短的作业会被优先调度执行。

•SJF算法适用于一些具有明确执行时间的作业,能够提高作业的响应速度和系统的整体利用率。

2. SJF算法的例题考虑以下作业列表及其执行时间:•作业列表:[A, B, C, D]•执行时间:[5, 3, 8, 2]3. 算法过程按照SJF算法的原则,我们需要对作业列表进行排序,排序的依据是作业的执行时间。

几种操作系统调度算法

几种操作系统调度算法操作系统调度算法是操作系统中用于确定进程执行的顺序和优先级的一种方法。

不同的调度算法有不同的优缺点,适用于不同的场景和需求。

下面将介绍几种常见的操作系统调度算法:1.先来先服务(FCFS)调度算法:先来先服务调度算法是最简单的调度算法之一、按照进程到达的顺序进行调度,首先到达的进程先执行,在CPU空闲时执行下一个进程。

这种算法实现简单,并且公平。

但是,由于没有考虑进程的执行时间,可能会导致长作业时间的进程占用CPU资源较长时间,从而影响其他进程的响应时间。

2.短作业优先(SJF)调度算法:短作业优先调度算法是根据进程的执行时间进行排序,并按照执行时间最短的进程优先执行。

这种算法可以减少平均等待时间,提高系统的吞吐量。

然而,对于长作业时间的进程来说,等待时间会相对较长。

3.优先级调度算法:优先级调度算法是根据每个进程的优先级来决定执行顺序的。

优先级可以由用户设置或者是根据进程的重要性、紧迫程度等因素自动确定。

具有较高优先级的进程将具有更高的执行优先级。

这种算法可以根据不同情况进行灵活调度,但是如果不恰当地设置优先级,可能会导致低优先级的进程长时间等待。

4.时间片轮转(RR)调度算法:时间片轮转调度算法将一个固定的时间片分配给每个进程,当一个进程的时间片用完时,将该进程挂起,调度下一个进程运行。

这种算法可以确保每个进程获得一定的CPU时间,提高系统的公平性和响应速度。

但是,对于长时间运行的进程来说,可能会引起频繁的上下文切换,导致额外的开销。

5.多级反馈队列(MFQ)调度算法:多级反馈队列调度算法将进程队列划分为多个优先级队列,每个队列有不同的时间片大小和优先级。

新到达的进程被插入到最高优先级队列,如果进程在时间片内没有完成,则被移到下一个较低优先级队列。

这种算法可以根据进程的执行表现自动调整优先级和时间片,更好地适应动态变化的环境。

以上是几种常见的操作系统调度算法,每种算法都有其优缺点和适用场景。

作业调度算法先来先服务算法短作业算法页

作业调度算法: 先来先服务算法、短作业优先算法引言在计算机操作系统中,作业调度算法是一种重要的技术,用于管理和调度计算机系统中的作业。

作业调度算法决定了如何分配计算机资源,以便最大化系统的效率和吞吐量。

本文将介绍两种常见的作业调度算法:先来先服务算法(First Come First Serve,FCFS)和短作业优先算法(Shortest Job First,SJF)。

先来先服务算法(FCFS)先来先服务算法是最简单的作业调度算法之一。

按照作业提交的顺序进行调度,先提交的作业先执行,后提交的作业则等待。

这种调度算法不考虑作业的执行时间或优先级,只根据作业提交的先后顺序来进行调度。

算法流程1.将作业按照提交的先后顺序排列。

2.按照排列顺序执行作业。

优点•算法实现简单,易于理解和实现。

•适用于短作业或者作业提交顺序代表了作业的优先级的情况。

缺点•短作业可能因为长作业的存在而等待时间过长,导致响应时间较长。

•不考虑作业执行时间,可能导致平均等待时间和平均周转时间较长。

•无法适应不同作业的执行时间需求。

短作业优先算法(SJF)短作业优先算法是一种将作业按照执行时间长度进行排序的作业调度算法。

在短作业优先算法中,最短执行时间的作业先执行,以此类推。

该算法可以最大程度地减少作业的等待时间和周转时间。

算法流程1.将作业按照执行时间长度从短到长进行排序。

2.按照排列顺序执行作业。

优点•可以最大程度地减少作业的等待时间和周转时间。

•适用于短作业和长作业相互混合的情况。

缺点•难以准确估计作业的执行时间,可能导致长作业等待时间过长。

•需要预先知道作业的执行时间长度才能进行排序。

•不适用于长作业占主导地位的情况。

性能对比与选择先来先服务算法和短作业优先算法都有其优点和缺点。

选择合适的算法取决于具体的应用场景和需求。

•如果作业都很短,并且没有严格的截止时间要求,先来先服务算法可以简单高效地满足需求。

•如果作业的执行时间非常重要,并且具有较严格的截止时间要求,短作业优先算法可以最大程度地减少作业的等待时间和周转时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
min=p[k+1].servicetime;
next=k+1;
}
}
sjf temp;
temp=p[m+1];
p[m+1]=p[next];
p[next]=temp;
}
deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
for(k=0;k<=N-1;k++)
{printf("%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n",p[k].name,p[k].arrivetime,p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].zztime,p[k].dqzztime);
sort(p,N);
for(int m=0;m<N-1;m++)
{
if(m==0)
p[m].finishtime=p[m].arrivetime+p[m].servicetime;
else
p[m].finishtime=p[m-1].finishtime+p[m].servicetime;
int i=0;
}
}
for(k=0;k<=N-1;k++)
{
p[k].zztime=p[k].finishtime-p[k].arrivetime;
p[k].dqzztime=p[k].zztime/p[k].servicetime;
}
}
void sjff(sjf *p,int N)
{
float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0;
{
if(k==0)
{
p[k].starttime=p[k].arrivetime;
p[k].finishtime=p[k].arrivetime+p[k].servicetime;}
else
{
p[k].starttime=p[k-1].finishtime;
p[k].finishtime=p[k-1].finishtime+p[k].servicetime;
}
}
//运行阶段
void deal(sjf *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &dqzztime,int N)
{
int k;
for(k=0;k<=N-1;k++)
开始时间 = task == 0 ? 0 : 上个优选任务 完成时间(startTime)
完成时间 = 开始时间 + 服务时间(finishiTime)
等待时间 = 开始时间 - 提交时间(waitTime)
周转时间 = 完成时间 - 提交时间(turnTime)
带权周转时间 = 周转时间 / 服务时间(rightturnTime)
短作业优先调度算法,是从后备队列中选择一个或若干个运行时间最短的作业,将它们调入内存运行。
短进程优先调度算法,是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
公式:
服务时间 = 作业需要运行的时间,即持续时间(serverTime)
数学与计算机科学系上机实验报告
2014年至2015年度 第1学期
上机时间
数计学院 14 级 1 班
姓名
实验项目:短作业优先SFJ调度算法
实验目的:掌握进程调度的概念和算法,加深对处理机分配的理解。
实验内容:(包括程序、操作过程及运行程序的结果)
1.实验原理:
本实验采用短作业优先调度算法。短作业优先调度算法,是指对短作业或断进程优先调度的算法。它们可以分别可以用于作业调度和进程调度。
Print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
}
void main()
{
int N;
printf("------短作业优先调度算法------\n");
printf("请输入进程的数目:\n");
scanf("%d",&N);
{
printf("请输入第 %d个进程的信息:\n",i+1);
scanf("%s%f%f",&p[i].name,&p[i].arrivetime,&p[i].servicetime);
}
}
void Print(sjf *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N)
2.程序代码:
#include "stdio.h"
struct sjf{
char name[10]; //进程名称
float arrivetime; //到达时间
float servicetime; //服务时间
float starttime; //开始时间
float finishtime; //完成时间
for(int n=m+1;n<=N-1;n++)
{
if(p[n].arrivetime<=p[m].finishtime)
i++;
}
float min=p[m+1].servicetime;
int next=m+1;//m+1=n
for(int k=m+1;k<m+i;k++)
{
if(p[k+1].servicetime<min)
input(a,N);
sjf *b=a;
sjf *c=a;
sjff(b,N);
}
3.运行程序结果截图:
(若此栏不够,可另纸续写)
实验小结(包括存在的问题):
通过本次实验,基本掌握了掌握进程调度的概念和算法,熟悉了短作业优先SFJ调度算法,知道了其操作运行思路。
指导老师评语:
(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)
float zztime; //周转时间
float dqzztime; //带权周转时间
};
sjf a[100];
void input(sjf *p,int N)
{
int i;
printf("请输入进程的名称、到达时间和服务时间 :\nfor exmple: a 0 100\n");
for(i=0;i<=N-1;i++)
}
}
//排序阶段
void sort(sjf *p,int N)
{
for(int i=0;i<=N-1;i++)
for(int j=0;j<=i;j++)
if(p[i].arrivetime<p[j].arrivetime)
{
sjf temp;
temp=p[i];
p[i]=p[j];
p[j]=temp;
{
int ;
printf("优先运行排序:");
printf("%s",p[0].name);
for(k=1;k<N;k++)
{
printf("-->%s",p[k].name);
}
printf("\n各个进程的信息:\n");
printf("\n名称\t到达\t服务\t开始\t完成\t周转\t带权周转\n");
相关文档
最新文档