实时操作系统主流调度方法RMS

操作系统的调度方法有很多种,这里主要介绍主流的调度算法,像EDF这种调度算法就不表述了。目前几乎所有的商业实时操作系统的调度理论都基于RMS理论.

以下是基于RMS的一些假设理论:

1 各个任务之间没有资源共享,没有忙等,没有mutex, 也没有semaphore.

2 每个任务的最后期限是周期性的。

3 基于优先级抢占的,即高优先级任务一旦就绪的话,会立马抢占低优先级任务。

4 任务优先级的分配原则是,周期越短的任务,优先级越高。

5 任务切换以及纯内核任务的消耗忽略不计对于这个理论模型。

 

以下的公式是,基于RMS 的一个基础理论:

U 代表了系统的cpu 使用率,C 是任务的运行具体时间,T 是周期性的任务最后期限,n是有多少个任务,等式右边是理论上的可实时调度率,可以看到可调度率只和任务的个数有关,任务越多,可实时调度率越少。

可以看到等式右边:

可以看到当任务接近无穷大的时候,可调度率是69%了。从这个公式可以近似任务系统中69%的任务是可以实时调度的,即能在最后的期限中完成运行。还有大概31%的任务是非实时的。这样的理论模型在实际应用中是完全可行的。

 

接下来看一个实际的例子:

 


假设有3个任务P1, P2, P3,运行的时间以及周期如上图。
 

根据公式可以算出系统的cpu 使用率。

 

 

理论上的可实时调度率为

 

可以看到0.725 <= 0.77976, 所以这3个任务都是可以实时调度的。

RMS理论主要是基于任务优先级的,对于指导分配任务的优先级有很大的实战价值,其核心是根据任务的最后期限(deadline)和周期的时间来分配任务优先级。周期越短的任务优先级越高,这在优先级分配上是一个有趣的开始。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平