(一)如何学习各种调度算法:
1.算法思想
2.该调度算法适用于作业调度还是进程调度
3.抢占式还是非抢占式
4.优点和缺点
5.是否会导致饥饿(某进程/作业长期得不到服务)
(例题)
假设一个系统中有5个进程,它们达到时间和服务时间如图所示,忽略I/O及其他开销时间,若分别按先来先服务(FCFS)、非抢占式及抢占式短进程优先(SPF)、高响应比优先(HRRN)、时间片轮转(RR,时间片大小为1)、多反馈队列调度算法(FB,第i及队列的时间片=2i-1)进行CPU调度,请给出各进程的完成时间、周转时间、等待时间、带权周转时间、平均周转时间和平均带权周转时间。
进程 | 到达时间 | 服务时间 |
A | 0 | 3 |
B | 2 | 6 |
C | 4 | 4 |
D | 6 | 5 |
E | 8 | 2 |
FCFS:先到先得;
各进程的等待时间为: A:0 B:1 C:6 D:8 E:11
SPF
各进程的等待时间为: A:0 B:1 C:8 D:10 E:2
非抢占:完成一个比对一个,谁小谁来。抢占:一有情况马上对比,谁小谁来。
周转时间-服务时间=等待时间
各进程的等待时间为: A:0 B:7 C:0 D:9 E:0
HRRN
响应比
- 响应比Rp = (等待时间+要求服务时间)/ 要求服务时间 = 1 +(等待时间 / 要求服务时间)
RR
RR:系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中第一个进程执行,即先来先服务的原则,但仅能运行一个时间片。在使用完一个时间片后,即使进程并未完成其运行,它也必须释放出(被剥夺)处理机给下一个就绪的进程,而被剥夺的进程返回到就绪队列的末尾重新排队,等候再次运行。
FB
原理:多个就绪队列,第一队列优先级最高;赋予各个队列中进程执行时间片的大小不一样,优先级越高的队列中,多个进程的运行时间片越小;新进程进入内存后,按FCFS原则排队等待调度。