一个计算机系统为了实现实时性,必须对cpu及其他资源进行管理。在linux操作系统中,实时系统可以分为软实时和硬实时两种。

实时操作系统的调度算法主要分为以下三种:

  • 基于优先级的调度算法:

        静态优先级(RM):给得到运行的所有进程静态地分配一个优先级,RM算法根据任务的执行周期                           的长短来分配优先级

        动态优先级(EDF):根据deadline分配优先级

  • 基于cpu的使用比例

    基本思想主要有两种:    

    1、调节各个进程出现在就绪队列队首的频率,并调度队首的进程执行

    2、逐次调度就绪队列的各个进程,但根据权重分配时间片 

  • 基于时间

    适用于稳定的,对各个任务的开始,切换以及结束时间等事件做出明确的说明和设计的系统。

linux中的调度算法有如下三种:

RR:

FIFO:

这两种都是针对实时进程的调度算法,两者的区别在于:对于优先级相同的进程,RR是采用轮转的方式,而FIFO是采用先来先服务的方式,一个执行完了再执行另外一个。

进程优先级
A1
B2
C2
D3
E3

  假设B进程比C进程早到,而E进程比D进程早到,则采用FIFO的调度顺序为:

A-B-C-E-D

  采用RR的调度顺序为:

A-B-C-B-C......-E-D-E-D......

NORMAL:

  普通进程所采用的调度策略