第四章 调度

处理机调度

概念

image-20210621194705955

高级调度(作业调度):

image-20210621195336457

中级调度:

image-20210622083620245

低级调度:

image-20210622083848480

image-20210622083947999

切换与过程调度方式

image-20210622084054579

需要进行进程调度与切换的情况:

image-20210622085238755

不能进行进程调度与切换的情况:

image-20210622085228662

注:

进程处与临界区时不能进行处理机调度。(错误)

内核程序临界区才不能进行处理机调度。

方式:

非剥夺调度方式(非抢占方式):只允许进程主动放弃处理机。

剥夺调度方式(抢占方式):如果有一个更重要的进程需要处理机,可以先暂停把处理机分配出去。

image-20210622085746488

频繁进行进程调度、切换,会使整个系统的效率降低

调度算法评价指标

image-20210622090012669

image-20210622090220636

附:在某些操作系统中,作业(job)是计算机操作者(或是一个叫做作业调度器的程序)交给操作系统的执行单位。

image-20210622090359811

image-20210622090453570

image-20210622090518207

image-20210622090637279

image-20210622090710452

等待时间=周转时间-运行时间;

image-20210622090818649

调度算法

image-20210622090958188

先来先服务算法

(First Come First Serve)

非抢占式

image-20210622091536218

image-20210622091944024

短作业优先

进程/作业通用

(SJF,Shortest Job First)

image-20210622093629164

短进程优先调度算法(SPF)

非抢占式

image-20210622092855275

image-20210622092915546

最短剩余时间优先算法(SRTN)

抢占式

image-20210622094518330

image-20210622094528029

image-20210622094536573

image-20210622094601330

image-20210622094735083

注意:

image-20210622094802464

image-20210622095003249

高响应比优先算法

(HRRN,Highest Response Ratio Next)

非抢占式

规则:

image-20210622095207533

算法:

image-20210622095546609

image-20210622095603976

image-20210622095640256

image-20210622095649633

优点:(无缺点)

image-20210622095747716

三种算法适合用于早期的批处理系统

调度算法2

image-20210622100754394

时间片轮转

(RR,Round-Robin)

image-20210622101043373

用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片)

属于抢占式算法。由时钟装置发出时钟中断来通知CPU时间片已到。

大概流程:

image-20210622101935280

注意:当一进程下处理机重新排队,同一时刻新进程到达,这时默认新到达的进程先进入就绪队列。

  • 常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时间。

  • 如果时间片太大,每个进程都可以在一个时间片内完成,那会算法会退化为先来先服务算法,增大进程响应时间,因此时间片不能太大

image-20210622102345881

优先级调度算法

image-20210622104611069

非抢占式:

image-20210622105431778

抢占式:

image-20210622105745132

image-20210622110247106

image-20210622110339561

image-20210622110446495

多级反馈队列调度算法

image-20210622144028397

image-20210622143658187

image-20210622143923976

抢占式算法:

image-20210622144130675

可能会导致饥饿,如果有大量短时间进程进入,则那些退为低级进程的队列可能会饿死。

以上三种算法适合用于交互式系统


版权声明:本文为m0_53249319原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。