2012-02-22 9 views
24

Qualcuno può spiegare le differenze tra SCHED_OTHER, SCHED_FIFO e SCHED_RR?Linux SCHED_OTHER, SCHED_FIFO e SCHED_RR - differenze

Grazie

+2

Piuttosto duplicata con quella Linux :-): http://stackoverflow.com/questions/9374653/real-time-scheduling-in- –

+0

Non esattamente, SCHED_OTHER non è stato menzionato – eve

risposta

35

SCHED_FIFO e SCHED_RR sono così chiamati politiche di "real-time". Implementano la pianificazione in tempo reale a priorità fissa specificata dallo standard POSIX. Le attività con queste politiche annullano ogni altra attività, che può quindi facilmente andare in carestia (se non rilasciano la CPU).

La differenza tra SCHED_FIFO e SCHED_RR è che tra le attività con la stessa priorità, SCHED_RR esegue un round-robin con un certo timeslice; SCHED_FIFO, invece, ha bisogno del compito per fornire esplicitamente il processore.

SCHED_OTHER è il comune criterio di pianificazione del time-round round-robin che pianifica un'attività per un determinato time slice in base alle altre attività in esecuzione nel sistema.

Aggiornamento: da Linux 3.14, è disponibile un ulteriore criterio denominato SCHED_DEADLINE. Questo criterio implementa l'algoritmo di Constant Bandwidth Server (CBS) sulle code Earliest Deadline First. Ad ogni attività sotto questa politica viene assegnata una scadenza e viene eseguita l'attività meno recente. La migliore risorsa che descrive questo algoritmo è Deadline scheduling in the Linux kernel.

Aggiornamento 2: da quando Linux 4.13, SCHED_DEADLINE ha sostituito CBS con Greedy Reclamation of Unused Bandwidth (GRUB) algorithm.

+1

Si noti inoltre che lo scheduler di Linux può rallentare i processi di comportamento anomalo in SCHED_DEADLINE, quindi gli altri processi ottengono tempo CPU. Vedi per es. https://www.youtube.com/watch?v=AmyfSjRMcIY e http://retis.sssup.it/~jlelli/talks/rts-like14/SCHED_DEADLINE.pdf. Cioè se un processo SCHED_DEADLINE dice che avrà bisogno di 2 timeslices su 5, ma ne consumerà di più, verrà limitato se necessario. SCHED_DEADLINE è probabilmente la scelta migliore per ottenere qualcosa come hard realtime su Linux. –

Problemi correlati