先来先服务算法:就是按照次序谁先来的给谁先服务。
短作业优先算法:从就绪队列中选择估计运行时间最短的进程进行服务。(非抢占式,抢占式)。
轮转调度算法:系统会将所有的进程按照先来先服务算法排成一个就绪队列,然后进行服务,但他有个时间片,时间片一般定义为(10ms-100ms),若一次队列进程无法完成,则进入下次排队。(只适用于进程)时间片/10>进程上下文的切换,
周转时间:指作业从开始被提交给系统到作业完成之间的时间间隔。
平均周转时间:把每个周转时间相加求平均。
周转时间-运行时间=等待时间
带权周转时间:作业的周转时间与系统为他提供的服务时间之比。
平均带权周转时间:把每个平均带权周转时间相加求平均。
先来先服务算法
进程 | 到达时间 | 执行时间 |
P1 | 0.0 | 9 |
P2 | 0.4 | 4 |
P3 | 1.0 | 1 |
P4 | 5.5 | 4 |
P5 | 7 | 2 |
由图可知甘特图为:
周转时间:
P1 | 9 |
P2 | 12.6 |
P3 | 13 |
P4 | 12.5 |
P5 | 13 |
平均周转时间:
T=(P1+P2+P3+P4+P5)/5=13.02
等待时间
P1 | 0 |
P2 | 8.4 |
P3 | 12 |
P4 | 8.5 |
P5 | 11 |
带权周转时间
P1 | 1 |
P2 | 3.15 |
P3 | 13 |
P4 | 3.125 |
P5 | 6.5 |
短作业优先算法
非抢占式:
进程 | 到达时间 | 执行时间 |
P1 | 0.0 | 9 |
P2 | 0.4 | 4 |
P3 | 1.0 | 1 |
P4 | 5.5 | 4 |
P5 | 7 | 2 |
由图可知:运行的顺序为p1->p3->p5->p2->p4
甘特图
周转时间
P1 | 9 |
P2 | 15.6 |
P3 | 9 |
P4 | 14.5 |
P5 | 5 |
等待时间
P1 | 0 |
P2 | 11.6 |
P3 | 8 |
P4 | 12 |
P5 | 11 |
带权周转时间
P1 | 1 |
P2 | 3.9 |
P3 | 8 |
P4 | 4 |
P5 | 5.5 |
抢占式
进程 | 到达时间 | 执行时间 |
P1 | 0.0 | 9 |
P2 | 0.4 | 4 |
P3 | 1.0 | 1 |
P4 | 5.5 | 4 |
P5 | 7 | 2 |
由图可知运行顺序为
p1->p2->p3->p2->p1->p4->p5->p4
甘特图为
周转时间
从开始到结束,明显P1=20, P2=5.4-0.4=5, P3=2-1=1 P4=11.5-7=4.5 P5=9-7=2
P1 | 20 |
P2 | 5 |
P3 | 1 |
P4 | 4.5 |
P5 | 2 |
等待时间
P1 | 18 |
P2 | 1 |
P3 | 0 |
P4 | 0.5 |
P5 | 0 |
带权周转时间
P1=20/9=2.22 P2=5/4=1.25 P3=1/1=1 P4=4.5/4
1.125 P5=2/2=1
P1 | 2.22 |
P2 | 1.25 |
P3 | 1 |
P4 | 1.125 |
P5 | 1 |
轮转调度算法
例题:
解析如下:
以q=4为例,当进程A到达时间=0,服务时间=4,正好是一个时间片的时间q。所以完成时间=4,周转时间=完成时间-到达时间=4,带权周转时间=周转时间/提供服务的时间=4/4=1。
为了更好理解,我们看继续进程B:
由于进程B在A执行一个时间片之后,所以B进程的等待时间=4,一个新的时间片到来,进行执行进程B,而进程B的服务时间为3,小于一个时间片,因此进程B可以在一个时间片内结束,而且可以提前激活调度程序。B进程的完成时间=等待时间+服务时间=4+3=7,周转时间=完成时间-到达时间=7-1=6,带权周转时间=周转时间/提供服务的时间=6/3=2。