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權限的進程。