操作系统-笔记-第二章-进程调度

目录

二、第二章——【进程调度】

1、调度的概念

(1)五状态和七状态(就绪挂起、阻塞挂起)

(2)三层调度 (高级、中级、低级)

(3)总结

2、调度的切换

(1)调度——切换时机

(2)调度——方式

(3)切换 & 调度 【区别】

(4)总结

3、调度器 & 闲逛进程

4、调度算法的评价指标

CPU利用率

系统吞吐量

周转时间 —— 平均周转时间

周转时间 plus—— 带权周转时间

等待时间

总结

5、调度算法(排队、短作业、高响应)

(1)先来先服务

(2)短作业优先

(3)高响应比优先

(4)总结

6、调度算法(时间片轮转、优先级、多级反馈)

(1)时间片轮转

(2)优先级调度算法

(2.1)优先级调度算法——设置优先级(动态)

(3)总结

(4)多级反馈队列调度算法

(5)总结


二、第二章——【进程调度】

1、调度的概念

(1)五状态和七状态(就绪挂起、阻塞挂起)

操作系统-笔记-第二章-进程调度_第1张图片

 

(2)三层调度 (高级、中级、低级)

作业——内存——进程

操作系统-笔记-第二章-进程调度_第2张图片

 

(3)总结

操作系统-笔记-第二章-进程调度_第3张图片

 

2、调度的切换

操作系统-笔记-第二章-进程调度_第4张图片

 

(1)调度——切换时机

如果进程在访问【临界区】和【临界资源】的时候,不能被调度和中断!

毕竟他在拿取资源,如果被调度了,那么问题就大了!

操作系统-笔记-第二章-进程调度_第5张图片

操作系统-笔记-第二章-进程调度_第6张图片

(2)调度——方式

操作系统-笔记-第二章-进程调度_第7张图片

 

(3)切换 & 调度 【区别】

操作系统-笔记-第二章-进程调度_第8张图片

 

(4)总结

操作系统-笔记-第二章-进程调度_第9张图片

 

3、调度器 & 闲逛进程

调度器是什么——让一个进程的状态合理的进行切换(别反复横跳就行了~)

抢占式调度器——调度任务(轮询方式)

非抢占式调度器(轻松点)

调度器(Scheduler是操作系统中的一个重要组件,负责决定哪个进程或线程在特定时间点运行。它根据预定的调度算法和策略,从就绪状态的进程中选择一个合适的进程,分配处理器资源给该进程,并控制进程的状态切换。

抢占式调度器(Preemptive Scheduler是一种调度方式,它可以在一个进程正在执行时,由操作系统强制剥夺该进程的CPU执行权,将CPU资源分配给其他优先级更高的进程。抢占式调度器有能力迅速响应紧急任务或高优先级任务,提高系统的响应性。

非抢占式调度器(Non-preemptive Scheduler,也称为协作式调度器,是另一种调度方式。在非抢占式调度器中,一个进程一旦获得CPU执行权,将一直运行直到主动放弃或等待某个事件发生,才会由操作系统将CPU资源分配给其他进程。这种调度方式下,进程间需要自觉地释放CPU资源,因此对协作式调度器来说,进程的合作尤为重要。

总结起来:

  1. 调度器(Scheduler)是操作系统中负责选择进程或线程执行的组件。
  2. 抢占式调度——可以主动剥夺正在执行的进程的CPU资源,
  3. 非抢占式调度——则需要进程自愿释放CPU资源。

这两种调度方式在不同的场景下有不同的适用性和优劣势。        

操作系统-笔记-第二章-进程调度_第10张图片

闲逛进程(备胎)——执行【零地址】指令——(抖腿指令)

操作系统-笔记-第二章-进程调度_第11张图片

 

4、调度算法的评价指标

清华教材内容:

操作系统-笔记-第二章-进程调度_第12张图片

 

CPU利用率

操作系统-笔记-第二章-进程调度_第13张图片

 

系统吞吐量

操作系统-笔记-第二章-进程调度_第14张图片

 

周转时间 —— 平均周转时间

周转时间 = 实际运行时间 + 等待时间

操作系统-笔记-第二章-进程调度_第15张图片

 

周转时间 plus—— 带权周转时间

操作系统-笔记-第二章-进程调度_第16张图片

 

等待时间

操作系统-笔记-第二章-进程调度_第17张图片

 

总结

操作系统-笔记-第二章-进程调度_第18张图片

 

5、调度算法(排队、短作业、高响应)

操作系统-笔记-第二章-进程调度_第19张图片

操作系统-笔记-第二章-进程调度_第20张图片

(1)先来先服务

谁先来,就先服务谁(虽然绝对公平、不会饥饿,但是…)

排队拍奶茶——当前面那个人买20杯,然而你只买1杯,你也必须排队等着

操作系统-笔记-第二章-进程调度_第21张图片

操作系统-笔记-第二章-进程调度_第22张图片 

 

(2)短作业优先

非抢占式——任务队列中,谁的任务时间短,谁就先执行(不公平)

操作系统-笔记-第二章-进程调度_第23张图片

 

抢占式——会产生饥饿!!!

(3)高响应比优先

这个算法——不会导致饥饿(结合了先来先服务、短作业的优点)

操作系统-笔记-第二章-进程调度_第24张图片

 

(4)总结

操作系统-笔记-第二章-进程调度_第25张图片

 

6、调度算法(时间片轮转、优先级、多级反馈)

(1)时间片轮转

时间片设置——不能太大,也不能太小!(切换进程的开销——占比不超过总进程的1%)

操作系统-笔记-第二章-进程调度_第26张图片

 

不会导致饥饿——会轮流的执行进程

操作系统-笔记-第二章-进程调度_第27张图片

 

(2)优先级调度算法

优先级——类似中断优先级

那么就会产生饥饿~

改进方案:

  1. 不要让优先级为静态的!(也就是死的,不会修改)
  2. 即为动态的优先级(会定时分析情况,给进程分配对应的优先级)
  3. 还是会产生饥饿~
  4. 毕竟你一直产生【优先级较高的进程】,那么【优先级低的进程】还是会饥饿~

操作系统-笔记-第二章-进程调度_第28张图片

 

(2.1)优先级调度算法——设置优先级(动态)

适用于——实时操作系统

操作系统-笔记-第二章-进程调度_第29张图片

操作系统-笔记-第二章-进程调度_第30张图片

(3)总结

操作系统-笔记-第二章-进程调度_第31张图片

 

(4)多级反馈队列调度算法

通过设置多个队列~(经典加一层~)

每个队列对应不同的请求(针对不同的队列,设置不同的调度算法)

在队列之间,可以使用——时间片划分、固定优先级…

在队列之内,可以使用——排队、短作业、高响应、优先级…

操作系统-笔记-第二章-进程调度_第32张图片

操作系统-笔记-第二章-进程调度_第33张图片

(5)总结

操作系统-笔记-第二章-进程调度_第34张图片

适合用交互式系统——可以提供较好的反馈、公平性、平衡性

Unix操作系统——交互式系统

你可能感兴趣的:(笔记)