本文主要是介绍ucore—15至16讲:处理机调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 第十五讲:处理机调度
- 15.1 处理机调度概念
- 15.2 调度准则
- 15.3 调度算法(考虑就绪队列)
- 15.3.1 先来先服务(FCFS)
- 15.3.2 短进程优先(SPN/SPF)
- 15.3.3 高响应比优先(HRRN)
- 15.4 调度算法(考虑执行时间)
- 15.4.1 时间片轮转算法(Round-Robin)
- 15.4.2 多级队列调度算法(MQ)
- 15.4.3 公平共享调度(FSS)
- 15.5 调度算法(其他)
- 15.5.1 实时调度
- 15.5.2 多处理机调度
- 15.6 优先级反置
- 第十六讲(实验6):调度器
- 16.1 总体介绍和调度过程
第十五讲:处理机调度
15.1 处理机调度概念
- CPU资源的时分复用
既要选进程,也要选CPU

- 调度时机

15.2 调度准则
- 处理机资源的使用模式

- 比较调度算法的准则

- 快:吞吐量与延迟
高带宽不一定低延时,低延时不一定高带宽

- 处理机调度策略的三个目标:响应时间(延时)、吞吐量(带宽)、公平性
减少延时

增加吞吐量

保证公平性

15.3 调度算法(考虑就绪队列)
15.3.1 先来先服务(FCFS)
-
First Come First Serve
根据进入就绪状态的时间排序

注意周转时间的算法:进程从初始化到结束的总时间(包括等待时间!!!) -
先来先服务算法的特征

15.3.2 短进程优先(SPN/SPF)
- Shortest Process Next
需注意这个执行时间是预期的,它实际上不可知

- 短进程优先的特征
优点:具有最优平均周转时间

缺点

- 执行时间的预估
对之前的执行时间做衰减,最近的执行时间权重最大


15.3.3 高响应比优先(HRRN)
- High Response Ratio Next

15.4 调度算法(考虑执行时间)
15.4.1 时间片轮转算法(Round-Robin)
- 时间片

- 示例

- 时间片长度
设置合理的时间片,维持上下文切换开销在1%内

- 时间片 与 先来先服务的比较
先来先服务于到达时间以及进程执行时间有关,抖动较大;
时间片处于FCFS的最佳与最差之间,更加稳定;

15.4.2 多级队列调度算法(MQ)
- 多级队列调度算法(MQ)
就绪队列划分成多个独立的子队列,每个队列有自己的调度算法
对于前台进程队列,多用于交互,对时间要求少,可使用时间片算法;
对于后台进程队列,计算时间较长,可使用FCFS;
队列间的调度

- 多级反馈队列调度(MLFQ)
进程可在不同队列间移动的多级队列调度;

算法特征:CPU密集的进程,优先级下降快;
I/O密集型进程停留在高优先级;
15.4.3 公平共享调度(FSS)
- Fair Share Scheduling

15.5 调度算法(其他)
15.5.1 实时调度
- 实时操作系统

- 实时任务

- 周期实时任务

- 硬实时和软实时

- 可调度性

- 实时调度算法
前者是静态调度,后者是动态调度;
都只是提一下,了解即可

15.5.2 多处理机调度
-
多处理器调度

对称与非对称多处理器
非对称多处理器:将若干个处理器挂接到总线上,在各处理器之间形成简单的主从设备关系。非对称处理器不允许所有处理器访问所有系统资源,使系统性能受到限制。
对称多处理器:所有处理器的地位都是相同的,所有的资源,特别是存储器、中断及I/O空间,都具有相同的可访问性,消除了结构上的障碍 -
对称多处理器的进程分配

实际系统中,两种分配方式都有采用!
15.6 优先级反置
-
优先级反置现象
由于T1已经占用资源L1,所以T2被阻塞;
T2被阻塞时,如果T1虽然占用L1资源,但是尚未获得CPU进入运行状态,T3抢占了T1的CPU(T3与T1没有资源冲突),则会导致高优先级的T2进入长时间等待 => 优先级反置
=> 解决问题的关键就是防止低优先级的进程被中间优先级的进程抢占CPU

-
解决方法一:优先级继承
图中最开始的有优先级:T1>T2>T3

图中,t3时刻,T1优先级高于T3,直接抢占CPU(从而T1被阻塞 => 提高T1优先级);
t4时刻,T1请求被T3占用的资源,因此被阻塞,T3获得CPU(因为此时T3已被提升,高于T2,不会被T2抢占); -
解决方法二:优先级天花板协议

但是实际系统中,与上述方法都有较大区别!!
第十六讲(实验6):调度器
16.1 总体介绍和调度过程
这篇关于ucore—15至16讲:处理机调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!