调度算法

167 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第27天,点击查看活动详情

先学习几种调度方法并了解调度算法的调度性能,然后通过一个例子来比较几种调度算法的调度性能。

一、先来先服务(FCFS)调度算法----非剥夺式

FCFS是最为简单的调度算法,既可以用作作业调度,也可以用作进程调度,在设计进程中必须知道进程的到达时间和服务时间。在作业调度中系统按照作业时间的先后顺序进行排序,不管作业执行时间的长短,从后备作业队列中选择几个最优先进入该队列的作业,将它们调入内存,为他们分配资源和进程。然后把他放入就绪队列,在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

image.png

严格按照作业进入时间的先后顺序

image.png

二、最短作业优先(SJF)调度算法----非剥夺式

最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短)

image.png

每次调度选择当前已到达且运行时间最短的作业/进程。

image.png

三、最短剩余时间优先(SRTF)调度算法----剥夺式

首先执行剩余处理时间最少的过程。 由于它是调度的优先类型,因此它比SJF调度算法要好。

image.png

image.png

四、高响应比优先(HRRF)调度算法----非剥夺式

响应比最高的作业先运行。

响应比的计算:

响应比=作业周转时间/作业处理时间

=(作业等待时间+作业处理时间)/作业处理时间

=1+(等待时间/处理时间)

image.png

image.png

作业A运行完,根据其他作业的响应比决定运行顺序

作业B的响应比:1+(1/6)=2.17

作业C运行,根据其他作业的响应比决定运行顺序

作业C在A运行完才进入

作业D的响应比:1+(7/5)=2.4

作业E的响应比:1+(5/2)=3.5

作业E响应比大于作业D,所以作业E先运行,作业D后运行。

以上内容就是关于这四种调度算法的学习。