Ho imparato alcuni concetti di pianificazione. Attualmente la mia comprensione finora è la seguente.
- Esistono processi in tempo reale e processi non in tempo reale.
- I processi non in tempo reale possono avere
nice
valori per la loro priorità nell'intervallo da -20 a +20 . Il valore positivo più elevato indica che il processo ha una priorità inferiore. - I processi in tempo reale avranno un valore di gentilezza elencato
-
come spiegato in questa risposta qui . Ciò è principalmente dovuto al fatto che i processi in tempo reale hanno priorità più elevate rispetto ai processi non in tempo reale e il valore di gentilezza non si applica ad essi. - Ora posso usare
chrt
per vedere gli attributi in tempo reale di un processo.
Per un processo in tempo reale, chrt
restituisce output come,
chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
Come possiamo vedere per il processo 5 , la priorità è 99 che è la più alta. Inoltre, la politica di pianificazione èSCHED_FIFO
Ora, per un processo non in tempo reale, l' chrt
output dà come,
chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
Come possiamo vedere per il processo 22383 , la priorità è 0 e la politica di pianificazione è SCHED_OTHER
.
Domande
- È possibile per me fare qualsiasi processo come processo in tempo reale?
- È possibile impostare un altro algoritmo di pianificazione diverso da
SCHED_OTHER
un processo non in tempo reale? Da qui , vedo anche che potrei modificare l'attributo per un processo in esecuzione come,
chrt -p prio pid
Inoltre, vedo che
chrt -m
mi dà l'elenco degli algoritmi di pianificazione. Il comando mi dà l'output come,SCHED_OTHER min/max priority : 0/0 SCHED_FIFO min/max priority : 1/99 SCHED_RR min/max priority : 1/99 SCHED_BATCH min/max priority : 0/0 SCHED_IDLE min/max priority : 0/0
Ora, come suggerito sopra, se imposto
chrt -p 55 22383
quale algoritmo verrà utilizzato?