在實時調度,fifo和RR不具有完全相同的含義他們在非實時調度。 但是,進程總是在FIFO方式中選擇的時間量程SCHED_FIFO不限制不同的時間量程SCHED_RR 。
schED_FIFO進程不能preempt SCHED_RR進程相同的優先順序。
sched_setscheduler( 2 ) linux手冊頁
。。。
" 進程的調度策略決定並在其中插入到進程列表進行等靜態優先順序和它如何將移動到此列表內。 所有調度是搶佔式的: 如果進程具有更高的靜態優先順序就可以立即運行,當前正在運行的進程將被搶佔並返回給的候選名單其靜態優先順序。 調度策略僅確定排序列表中的runnable的進程靜態優先順序相等。"
。。。
" 一個SCHED_FIFO流程運行,直到它被一塊I/O請求,而是搶佔高優先順序進程,或者它調用sched_yield( 2 ) "
。。。
" 當一個SCHED_FIFO進程變為可運行,它將被插入到列表的末尾。為其優先順序"
。。。
" sched_rr: 圓形Robin調度
schED_RR是一個簡單提高SCHED_FIFO 。 上述的一切都SCHED_FIFO也適用於SCHED_RR,只是每個進程只允許運行的最大時間量程。 如果SCHED_RR進程已運行的時間周期等於或超過的時間量程列表的末尾處,否則會衍生其優先順序。 sCHED_RR進程已搶佔高優先順序進程並隨後繼續執行用作執行進程將完成的未過期的部分其循環時間量程。"