Linux进程的实时调度策略包括两种:SCHED_FIFO和SCHED_RR。
SCHED_FIFO(先进先出):SCHED_FIFO是一种实时调度策略,在此策略下,进程会一直运行直到它自愿让出CPU或者被更高优先级的SCHED_FIFO进程抢占。SCHED_FIFO进程的优先级是固定的,较高优先级的进程会一直运行直到它自愿让出CPU或者被更高优先级的SCHED_FIFO进程抢占。
SCHED_RR(轮转调度):SCHED_RR是一种实时调度策略,在此策略下,每个进程有一个时间片,当时间片用完后,进程会被放到队列末尾,等待下一次运行。SCHED_RR进程的优先级可以动态调整,较高优先级的进程会优先执行,如果时间片用完后没有新的高优先级进程需要执行,则原进程会继续执行。
这两种实时调度策略可以通过系统调用sched_setscheduler来设置。需要注意的是,这两种实时调度策略只适用于具有root权限的进程。