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
nicevalori 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
chrtper vedere gli attributi in tempo reale di un processo.
Per un processo in tempo reale, chrtrestituisce 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' chrtoutput 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_OTHERun processo non in tempo reale? Da qui , vedo anche che potrei modificare l'attributo per un processo in esecuzione come,
chrt -p prio pidInoltre, vedo che
chrt -mmi 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/0Ora, come suggerito sopra, se imposto
chrt -p 55 22383quale algoritmo verrà utilizzato?