在处理机调度上可以分为三个层次,级别从低到高
处理机的调度实际上就是用不同的算法来将我们的作业合理分配,提高CPU的利用率。达到公平性、平衡性。
按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。是最简单的算法。
谁先来,就谁先执行
短进程优先调度算法(Shortest Process First, SPF),是指对短进程优先的算法。利用该算法,可以从就绪队列中选择一个估计运行时间最短的进程,并为之分配CPU,使其立即执行直到完成,或者在运行期间由于发生IO事件使该进程阻塞,并让出CPU,重新发生进程调度。 短作业优先调度算法SJF(Shortest Job First),是指对短作业优先调度的算法。利用该算法,可以从后备队列中选择若干估计运行最短的作业,投入内存运行
谁用的时间少、就先执行谁
1)优点
2)缺点
最高响应比优先法(Highest Response_ratio Next,HRN)是对FCFS方式和SJF方式的一种综合平衡
FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。 因此,这两种调度算法在某些极端情况下会带来某些不便。 HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
是SJF和FCFS的综合平衡,其公式是这样子的:
这里写图片描述
(1)优点
(2)缺点
在进程调度中,每次调度时,系统把处理机分配给就绪队列中优先数最高的进程。它又分为两种:非抢占式优先数算法和抢占式优先数算法。
轮转(Round Robin,RR)调度算法是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。该算法适用于分时系统
过程:
1)将系统中所有的就绪进程按照FCFS原则,排成一个队列。 2)每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。 3)在一个时间片结束时,发生时钟中断。 4)调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。 5)进程可以未使用完一个时间片,就出让CPU,如进程阻塞时。
最短剩余时间优先(Shortest Remaining Time Next,SRTN)调度算法多用于剥夺式的调度中。 在进程调度中,每次调度时,系统把处理机分配给就绪队列中运行完所需时间最短的进程。 最短剩余时间优先算法也可用于不剥夺式调度方式中,此时退化为短作业优先算法。
也就是短作业优先算法的升级版,只不过它是抢占式的。
这里写图片描述