目录
PS:处理机调度算法相关公式:
1、【FCFS】先来先服务调度算法
2、【SJF(SPF)】短作业(进程)优先调度算法
3、【HRRF】最高响应比优先算法
4、【SRTF】最短剩余时间优先调度算法(抢占式!)
5、【RR】时间片轮转调度算法 (抢占式!)
6、优先级调度算法
7、多级反馈队列调度算法
8、例题练习:
PS:处理机调度算法相关公式:
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 ÷ 运行时间
等待时间 = 周转时间 - 运行时间
平均××时间 = ××时间÷进程个数
响应比 =(等待时间+运行时间)/运行时间
1、【FCFS】先来先服务调度算法
原理:每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理机分配给该进程,使之运行。而且是不可剥夺方式。
作业名 到达时间 服务时间 A 0 1 B 1 100 C 2 1 D 3 100 该调度的Gantt图为:
平均周转时间:((1-0)+(101-1)+(102-2)+(202-3))/4=100
2、【SJF(SPF)】短作业(进程)优先调度算法
原理:主要用于作业调度,采用此算法的系统,后备作业队列往往按照进程到达的时间来排序。系统每次选择运行时间最短的作业优先运行。采用不可抢占(剥夺)调度方式。
作业名 到达时间 服务时间 A 0 1 B 1 100 C 2 100 D 3 1 该调度的Gantt图为:
平均周转时间:((1-0)+(101-1)+(102-3)+(202-2))/4=100
3、【HRRF】最高响应比优先算法
原理:该算法是从队列中选择响应比最高者投入运行。
响应比的计算公式 :
R=作业周转时间/作业处理时间=1+W/T W为等待时间,T为要求的CPU服务运行时间
4、【SRTF】最短剩余时间优先调度算法(抢占式!)
原理:如果新进程的剩余时间 < 当前运行的进程剩余时间,则新进程抢占CPU,当前进程回就绪队列
作业名 到达时间 服务时间 A 0 1 B 1 100 C 2 100 D 3 1 该调度的Gantt图为:
平均周转时间=((1-0)+(102-1)+(4-3)+(202-2))/4=75.75
5、【RR】时间片轮转调度算法 (抢占式!)
原理: 系统将所有原就绪进程按FCFS的原则,排成一个队列,依次调度,把CPU分配给队首进程,并令其执行一个时间片/CPU时间,时间片用完后,该进程将被抢占并插入就绪队列末尾。
该调度的Gantt图为:
作业名 服务时间 A 10 B 20 C 5 平均周转时间=((20-0)+(35-0)+(15-0))/3=23.3
A B C A B B B 0 5 10 15 20 25 30 35
6、优先级调度算法
原理:该算法总是把处理机分配给就绪队列中具有最高优先权的进程。优先级根据优先数来决定。
- 非抢占式优先级算法——系统一旦把处理机分配给就绪队列中优先级最高的进程后,该进程便一直执行下去,直到完成/因发生某事件而放弃处理机时,系统方可重新分配处理机。
- 抢占式优先级算法——系统把处理机分配给就绪队列中优先级最高的进程,使之执行。但在其执行期间,只要出现了另一个优先级更高的进程,进程调度程序就立即停止当前进程的执行,重新将处理机分配给新到的优先级最高的进程。
7、多级反馈队列调度算法
原理:多级反馈队列调度算法是时间片轮转算法和优先级调度算法的综合和发展,通过动态调整进程优先级和时间片大小,不必事先估计进程的执行时间,多级反馈队列可兼顾多方面的系统目标,是目前公认的一种较好的进程调度算法。
8、例题练习:
1、如表所示四个作业进入系统:
A作业提交时间为8时, 估计运行时间120分钟,优先级为2;
B作业提交时间为8时50分, 估计运行时间50分钟,优先级为2;
C作业提交时间为9时, 估计运行时间10分钟,优先级为5;
D作业提交时间为9时50分, 估计运行时间20分钟,优先级为4。
若系统应用不同作业调度算法,试计算在:
FCFS下的平均周转时间_112.5__、平均带权周转时间__4.975_;SJF下的平均周转时间_95__、平均带权周转时间_3.25__;
高优级算法(非抢占)下的平均周转时间__95_、平均带权周转时间_3.25__。
2、假设一个系统中有3个进程,它们在第一分钟内依次到达,A、B、C进程需服务时间分别为2、4、3,忽略I/0以及其他开销时间,别按时间片轮转(RR,时间片=1)调度算法进行CPU调度,请给出:
A进程周转时间_4__、带权周转时间_2__;
B进程周转时间_9__、带权周转时间_2.25__;
C进程周转时间_8__、带权周转时间__2.67_;
平均周转时间__7_、平均带权周转时间_2.31__。