实时调度策略介绍
实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,普通分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。实时任务按照可抢占优先级调度算法进行,就绪态的实时任务可以立即抢占非实时任务。
1,SCHED_FIFO:First Input First Output,优先级范围1-99(最大)
SCHED_FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。
如果有相同优先级的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO时必须等待该进程主动放弃后才可以运行这个优先级相同的任务。而RR可以让每个任务都执行一段时间。
2,SCHED_RR:基于FIFO基础上的Round Robin时间片轮转,先入先出当采用SHCED_RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。将进程放在队列尾保证了所有具有相同优先级的RR任务的调度公平。
3,SCHED_DEADLINE:该调度策略采用Global Earliest Deadline First(GEDF)算法,最早要到期的任务将被以最高优先级调度和分配CPU。根据此策略调度的任务可以抢占使用SCED FIFO、SCED RR或非实时调度的任何任务。参考https://lwn.net/Articles/743740/和https://blog.csdn.net/zhuyong006/article/details/80980502
https://blog.csdn.net/xiaofeng_yan/article/details/48246101
调度参数(ns纳秒单位)&