实时系统中两种不同性质的实时任务:

HRT任务(硬实时操作系统):必须在确定的时间内完成,必须确保截止时间的要求

SRT任务(软实时操作系统):让绝大多数任务在确定时间内完成,基本能保证对截止时间的要求。

实现实时调度的基本条件:

(1)系统需提供必要信息:

就绪时间、开始截止时间、完成截止时间、处理时间、资源要求、优先级

(2)系统处理能力强:

Ci:作业处理时间

Pi:作业周期时间(周期:作业从提交到释放的时间)

单处理机:可调度的条件

【操作系统】实时调度_服务器

 多处理机可调度的条件:

【操作系统】实时调度_调度算法_02

(3)采用抢占式机制:可以满足硬实时任务对截止时间的要求

(4)具有快速切换机制:对中断快速响应能力,对快速任务分派能力。

影响实时系统的性能延迟:

中断延迟:CPU收到中断到中断服务程序开始的时间。

调度延迟:从停止一个进程到启动一个进程所需的时间

在硬实时系统中,中断和调度延迟时间是有界的。

实时调度算法的分类:

非抢占式:

(1)非抢占式轮转调度算法

由一台计算机控制若干个相同的对象,为每一个被控对象建立一个实时任务,并将它们排成一个轮转队列。

(2)非抢占式优先调度算法:

为少数具有一定要求的实时任务赋予较高的优先权。

抢占式:

(1)基于时钟中断的抢占式优先级调度算法:

优先级更高的实时任务到达后,并不立即抢占当前任务的处理机,而是等到中断发生时,调度程序才剥夺当前任务的执行。

【操作系统】实时调度_开发语言_03

 

(2)立即抢占优先级调度算法:

一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给更紧迫的任务。

最早截止时间优先EDF算法:

任务截止时间越早,优先级越高,具有最早截止时间的任务排在队列的队首。

最早截止时间既可用于可抢占式调度方式中,也可用在非抢占式调度方式中。

最低松弛度优先LLF算法:

任务紧急程度越高,赋予该任务的优先级就越高。

在实现该算法时要求系统有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在最前面。

优先级倒置现象:

高优先级进程被低优先级进程延迟或阻塞的现象。

例:三个独立的进程P1,P2,P3。P1的优先级最高,P2次之,P3最低。P1和P3通过共享一个临界资源进行交互

P1: P(mutex); CS-1; V(mutex)
P2:  CS-2
P3: P(mutex); CS-3 V(mutex)
  • 1.
  • 2.
  • 3.

【操作系统】实时调度_服务器_04

 P1先执行,之后P2就绪,抢占CPU,之后P1就绪,抢占CPU,但是临界资源被P3占用,P1被阻塞直至P3释放临界资源。

优先级高的P1被P3阻塞,出现优先级倒置的情况。

优先级倒置解决方法:

(1)如果P3进入临界区后,就不允许被P2抢占。

(2)动态优先级继承:当高优先级进程P1要进入临界区,去使用临界资源R,如果已有一个低优先级进程P3正在使用该资源,此时一方面P1被阻塞。另一方面P3继承P1的优先级,并一直保持P3退出临界区,这样防止P2插进来导致延缓P3退出临界区。