完成时间,周转时间,平均周转时间以及带权周转时间和平均带权周转时间

这里仅对先来先服务(FCFS)以及短作业优先(SJF)两种调度算法的相关计算做一个说明和比较

首先我们必须明确:FCFS和SJF两种调度算法,只有在进程的完成时间计算上有一些区别,其他时间(周转时间等)的计算都是相同的。 周转时间

周转时间=完成时间-到达时间
带权周转时间=周转时间/服务时间(除法运算)
平均周转时间=周转时间/进程数(除法运算)
平均带权周转时间=带权周转时间/进程数(除法运算)


1. FCFS的完成时间计算步骤:

step1:找出最先到达的进程(该进程的完成时间=到达时间+服务时间);

step2 : 根据给出的到达时间,找出下一个到达的进程(该进程的完成时间=上一进程的完成时间+该进程的服务时间);

step3 :重复step2直至完成所有进程的计算;

举个例子:

进程名 A B C D E
到达时间 0 1 3 4 6
服务时间 5 7 3 8 2
完成时间 5 12 15 23 25
step1. 根据例子中给出的进程到达时间,确定A进程是最先到达的。计算出进程A的完成时间为:A的到达时间+A的服务时间=5+0=5;

step2. 根据到达时间,确定下一到达进程为B。计算出进程B的完成时间为:进程A的完成时间+进程B服务时间=5+7=12;

step3. 重复step2。根据到达时间,确定下一到达进程为C。计算出C的完成时间为:进程B的完成时间+进程C的服务时间=12+3=15...依次类推计算D和E进程的完成时间

2. SJF的完成时间计算步骤:

step1:找出最先到达的进程(该进程的完成时间=到达时间+服务时间);

step2:根据上一进程的完成时间,找到在这个完成时间内所有到达的进程,并找到这些进程中服务时间最短的那个,然后计算它的完成时间(该进程的完成时间=上一进程的完成时间+该进程服务时间);

step3:重复step2,直至完成所有进程的计算。

还是上面的那个例子:

进程名 A B C D E
到达时间 0 1 3 4 6
服务时间 5 7 3 8 2
完成时间 5 17 8 25 10
step1. 根据例子中给出的进程到达时间,确定A进程是最先到达的。计算出进程A的完成时间为:A的到达时间+A的服务时间=5+0=5;

step2.根据上一进程A的完成时间5,可确定已经到达的进程为A、B、C、D(进程E的到达时间为6,所以时间为5时进程E还没到达);其中由于C的服务时间最短,所以下一进程确定为C,C的完成时间为:A的完成时间+C的服务时间=3+5=8;

step3. 重复step2。根据上一进程C的完成时间10,可确定,已经到达的进程有A、B、C、D、E;其中由于E的服务时间最短,所以下一进程确定为E,E的完成时间为:C的完成时间+E的服务时间=8+2=10...依次可计算出其他进程的完成时间。

以上就是两种调度算法下的完成时间具体计算步骤。

你可能感兴趣的:(操作系统)