🌸章节汇总
目录
二、第二章——【进程调度】
1、调度的概念
(1)五状态和七状态(就绪挂起、阻塞挂起)
(2)三层调度 (高级、中级、低级)
作业——内存——进程
(3)总结
2、调度的切换
(1)调度——切换时机
如果进程在访问【临界区】和【临界资源】的时候,不能被调度和中断!
毕竟他在拿取资源,如果被调度了,那么问题就大了!
(2)调度——方式
(3)切换 & 调度 【区别】
(4)总结
3、调度器 & 闲逛进程
调度器是什么——让一个进程的状态合理的进行切换(别反复横跳就行了~)
抢占式调度器——调度任务(轮询方式)
非抢占式调度器(轻松点)
调度器(Scheduler)是操作系统中的一个重要组件,负责决定哪个进程或线程在特定时间点运行。它根据预定的调度算法和策略,从就绪状态的进程中选择一个合适的进程,分配处理器资源给该进程,并控制进程的状态切换。
抢占式调度器(Preemptive Scheduler)是一种调度方式,它可以在一个进程正在执行时,由操作系统强制剥夺该进程的CPU执行权,将CPU资源分配给其他优先级更高的进程。抢占式调度器有能力迅速响应紧急任务或高优先级任务,提高系统的响应性。
非抢占式调度器(Non-preemptive Scheduler),也称为协作式调度器,是另一种调度方式。在非抢占式调度器中,一个进程一旦获得CPU执行权,将一直运行直到主动放弃或等待某个事件发生,才会由操作系统将CPU资源分配给其他进程。这种调度方式下,进程间需要自觉地释放CPU资源,因此对协作式调度器来说,进程的合作尤为重要。
总结起来:
- 调度器(Scheduler)是操作系统中负责选择进程或线程执行的组件。
- 抢占式调度——可以主动剥夺正在执行的进程的CPU资源,
- 非抢占式调度——则需要进程自愿释放CPU资源。
这两种调度方式在不同的场景下有不同的适用性和优劣势。
闲逛进程(备胎)——执行【零地址】指令——(抖腿指令)
4、调度算法的评价指标
清华教材内容:
CPU利用率
系统吞吐量
周转时间 —— 平均周转时间
周转时间 = 实际运行时间 + 等待时间
周转时间 plus—— 带权周转时间
等待时间
总结
5、调度算法(排队、短作业、高响应)
(1)先来先服务
谁先来,就先服务谁(虽然绝对公平、不会饥饿,但是…)
排队拍奶茶——当前面那个人买20杯,然而你只买1杯,你也必须排队等着
(2)短作业优先
非抢占式——任务队列中,谁的任务时间短,谁就先执行(不公平)
抢占式——会产生饥饿!!!
(3)高响应比优先
这个算法——不会导致饥饿(结合了先来先服务、短作业的优点)
(4)总结
6、调度算法(时间片轮转、优先级、多级反馈)
(1)时间片轮转
时间片设置——不能太大,也不能太小!(切换进程的开销——占比不超过总进程的1%)
不会导致饥饿——会轮流的执行进程
(2)优先级调度算法
优先级——类似中断优先级
那么就会产生饥饿~
改进方案:
- 不要让优先级为静态的!(也就是死的,不会修改)
- 即为动态的优先级(会定时分析情况,给进程分配对应的优先级)
- 还是会产生饥饿~
- 毕竟你一直产生【优先级较高的进程】,那么【优先级低的进程】还是会饥饿~
(2.1)优先级调度算法——设置优先级(动态)
适用于——实时操作系统
(3)总结
(4)多级反馈队列调度算法
通过设置多个队列~(经典加一层~)
每个队列对应不同的请求(针对不同的队列,设置不同的调度算法)
在队列之间,可以使用——时间片划分、固定优先级…
在队列之内,可以使用——排队、短作业、高响应、优先级…
(5)总结
适合用交互式系统——可以提供较好的反馈、公平性、平衡性
Unix操作系统——交互式系统