实时系统中两种不同性质的实时任务:
HRT任务(硬实时操作系统):必须在确定的时间内完成,必须确保截止时间的要求
SRT任务(软实时操作系统):让绝大多数任务在确定时间内完成,基本能保证对截止时间的要求。
实现实时调度的基本条件:
(1)系统需提供必要信息:
就绪时间、开始截止时间、完成截止时间、处理时间、资源要求、优先级
(2)系统处理能力强:
Ci:作业处理时间
Pi:作业周期时间(周期:作业从提交到释放的时间)
单处理机:可调度的条件
多处理机可调度的条件:
(3)采用抢占式机制:可以满足硬实时任务对截止时间的要求
(4)具有快速切换机制:对中断快速响应能力,对快速任务分派能力。
影响实时系统的性能延迟:
中断延迟:CPU收到中断到中断服务程序开始的时间。
调度延迟:从停止一个进程到启动一个进程所需的时间
在硬实时系统中,中断和调度延迟时间是有界的。
实时调度算法的分类:
非抢占式:
(1)非抢占式轮转调度算法
由一台计算机控制若干个相同的对象,为每一个被控对象建立一个实时任务,并将它们排成一个轮转队列。
(2)非抢占式优先调度算法:
为少数具有一定要求的实时任务赋予较高的优先权。
抢占式:
(1)基于时钟中断的抢占式优先级调度算法:
优先级更高的实时任务到达后,并不立即抢占当前任务的处理机,而是等到中断发生时,调度程序才剥夺当前任务的执行。
(2)立即抢占优先级调度算法:
一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给更紧迫的任务。
最早截止时间优先EDF算法:
任务截止时间越早,优先级越高,具有最早截止时间的任务排在队列的队首。
最早截止时间既可用于可抢占式调度方式中,也可用在非抢占式调度方式中。
最低松弛度优先LLF算法:
任务紧急程度越高,赋予该任务的优先级就越高。
在实现该算法时要求系统有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在最前面。
优先级倒置现象:
高优先级进程被低优先级进程延迟或阻塞的现象。
例:三个独立的进程P1,P2,P3。P1的优先级最高,P2次之,P3最低。P1和P3通过共享一个临界资源进行交互
P1先执行,之后P2就绪,抢占CPU,之后P1就绪,抢占CPU,但是临界资源被P3占用,P1被阻塞直至P3释放临界资源。
优先级高的P1被P3阻塞,出现优先级倒置的情况。
优先级倒置解决方法:
(1)如果P3进入临界区后,就不允许被P2抢占。
(2)动态优先级继承:当高优先级进程P1要进入临界区,去使用临界资源R,如果已有一个低优先级进程P3正在使用该资源,此时一方面P1被阻塞。另一方面P3继承P1的优先级,并一直保持P3退出临界区,这样防止P2插进来导致延缓P3退出临界区。