Pianificazione dei processi in tempo reale su Linux


24

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

  1. È possibile per me fare qualsiasi processo come processo in tempo reale?
  2. È possibile impostare un altro algoritmo di pianificazione diverso da SCHED_OTHERun processo non in tempo reale?
  3. Da qui , vedo anche che potrei modificare l'attributo per un processo in esecuzione come,

    chrt -p prio pid
    

    Inoltre, 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/0
    

    Ora, come suggerito sopra, se imposto chrt -p 55 22383quale algoritmo verrà utilizzato?

Risposte:


19

Domanda 1

È possibile che un utente utilizzi la priorità in tempo reale anche per un processo. Questa configurazione può essere impostata dal /etc/security/limits.conffile. Vedo i contenuti seguenti in quel file.

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>

Se controlliamo la sezione degli articoli, vediamo la voce sotto che consente di impostare una priorità in tempo reale per gli utenti.

#        - rtprio - max realtime priority

Domanda 2 e domanda 3

Per impostare il criterio di pianificazione su SCHED_FIFO, immettere:

chrt -f -p [1..99] {pid}

Per impostare il criterio di pianificazione su SCHED_RR, immettere:

chrt -r -p [1..99] {pid}

Quindi, per rispondere alla domanda 3, dovremmo verificare gli algoritmi di pianificazione disponibili e le priorità utilizzando il chrt -mcomando e quindi utilizzare qualsiasi algoritmo di pianificazione che soddisfi le nostre esigenze. Per impostare priorità diverse, potremmo usare i comandi come sopra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.