先来先服务调度算法FCFS
短作业优先调度算法SJF
优先级调度算法
高响应比优先调度算法HRRN
轮转调度算法RR
多级队列调度算法
多级反馈队列调度算法
基于公平原则的调度算法
饥饿:某进程/作业长时间得不到服务
FCFS 先来先服务
执行顺序:J1->J2->J3->J4
平均周转时间=周转时间/进程数=(20+30+30+35)/4=28.75ms
平均带权周转时间=带权周转时间/进程数=(1+2+6+3.5)/4=3.125ms
作业 | 到达时间 | 所需服务时间 | 开始执行时间 | 完成时间 | 周转时间 (完成时间-到达时间) | 带权周转时间 (周转时间/服务时间) |
J1 | 0 | 20 | 0 | 20 | 20 | 1 |
J2 | 5 | 15 | 20 | 35 | 30 | 2 |
J3 | 10 | 5 | 35 | 40 | 30 | 6 |
J4 | 15 | 10 | 40 | 50 | 35 | 3.5 |
SPF短作业优先服务 得要先到达才能开始优先
执行时间: J1->J3->J4->J2
J1先到达 所以先执行,之后的根据作业所需要的执行时间进行短作业优先调度
平均周转时间=周转时间/进程数=(20+45+15+20)/4=25ms
平均带权周转时间=带权周转时间/进程数=(1+3+3+2)/4=2.25ms
作业 | 到达时间 | 所需服务时间 | 开始执行时间 | 完成时间 | 周转时间 (完成时间-到达时间) | 带权周转时间 (周转时间/服务时间) |
J1 | 0 | 20 | 0 | 20 | 20 | 1 |
J2 | 5 | 15 | 35 | 50 | 45 | 3 |
J3 | 10 | 5 | 20 | 25 | 15 | 3 |
J4 | 15 | 10 | 25 | 35 | 20 | 2 |
HRRN高响应比优先调度 得要先到达才能开始优先
执行时间: J1->J3->J2->J4
J1先到达 所以先执行,之后的根据作业的优先级进行优先调度
优先级=等待时间+要求服务时间/要求服务时间
等待时间=开始时间-到达时间
第一阶段:R2=20-5+15/15=2 R3=20-10+5/5=3 R4=20-15+10/10=1.5
优先级R3最高,所以进行调度
第二阶段:R2=25-5+15/15=2.3 R4=25-15+10/10=2
优先级R2最高,所以进行调度,最后进行R4调度
平均周转时间=周转时间/进程数=(20+35+15+35)/4=26.25ms
平均带权周转时间=带权周转时间/进程数=(1+2.3+3+3.5)/4=2.45ms
作业 | 到达时间 | 所需服务时间 | 开始执行时间 | 完成时间 | 周转时间 (完成时间-到达时间) | 带权周转时间 (周转时间/服务时间) |
J1 | 0 | 20 | 0 | 20 | 20 | 1 |
J2 | 5 | 15 | 25 | 40 | 35 | 2.3 |
J3 | 10 | 5 | 20 | 25 | 15 | 3 |
J4 | 15 | 10 | 40 | 50 | 35 | 3.5 |
最高优先级调度算法
调度顺序:P2->P3->P4->P1
进程 | 优先级 | 所需服务时间 | 开始执行时间 | 完成时间 | 周转时间 |
P1 | 2 | 4 | 10 | 14 | 14 |
P2 | 5 | 3 | 0 | 3 | 3 |
P3 | 4 | 5 | 3 | 8 | 8 |
P4 | 3 | 2 | 8 | 10 | 10 |
RR调度算法(q=1)
时间片=1
调度顺序:P4->P2->P1->P3
每个进程都运行一次
第一次:1 2 3 4
第二次:1 2 3 4(进程4所需要的服务时间是2,所以第二次运行的时候,进程4已经完成)
第三次:1 2 3(进程3完成)
第四次: 1 3 (进程1完成)
第五次: 3(进程3完成)
进程 | 优先级 | 所需服务时间 | 完成时间 | 周转时间 | 带权周转时间 |
P1 | 2 | 4 | 12 | 12 | 3 |
P2 | 5 | 3 | 10 | 10 | 3.3 |
P3 | 4 | 5 | 14 | 14 | 2.8 |
P4 | 3 | 2 | 8 | 8 | 4 |
时间片=1
每个进程都运行一次
第一次:A B C D E
第二次:A B C D E (进程D已经完成,完成时间=9)
第三次:A B C E (进程B完成,完成时间=12)
第四次: A C E(进程A C E完成 A完成时间=15 B完成时间=16 E完成时间=17)
时间片=4
完成时间 A B C D E
4 7 11 13 15