本文主要是介绍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讲:处理机调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!