一本书讲透Java线程:原理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 实时调度策略

实时进程的调度策略通常有3种:SCHED_FIFO、SCHED_RR与SCHED_DEADLINE。SCHED_FIFO是早期的调度策略,按照FIFO的原则进行任务调度,即只有前面的任务结束了后面任务才会被执行。被调度器调度运行后的进程,其运行时长不受限制,只有运行结束或者主动挂起才会退出CPU的运行。SCHED_RR是轮流调度策略,每个任务都有时间片,也就是任务执行的配额,当前进程的时间片用完后会交给其他线程执行,同时会把当前线程重新加入调度队列的尾部。与SCHED_FIFO不同,在SCHED_RR下,高优先级任务可以抢占低优先级任务的执行顺序。SCHED_DEADLINE是一种新的策略,它会给每个任务设置一个到期时间。任务在到期时间到期之前必须完成运行。当需要进行任务调度的时候,DL调度器总是选择离到期时间最近的任务来调度执行。