GNU/Linux >> Znalost Linux >  >> Linux

Jak se počítá priorita procesu?

V ps výstup, pri_baz se vypočítá jako pp->priority + 100 a pp->priority je prio hodnotu z jádra. Toto je popsáno jako

Priorita procesu je od 0...MAX_PRIO -1, platná priorita RT je 0...MAX_RT_PRIO -1 a SCHED_NORMAL /SCHED_BATCH úlohy jsou v rozsahu MAX_RT_PRIO ..MAX_PRIO -1. Hodnoty priority jsou převrácené:nižší p->prio hodnota znamená vyšší prioritu.

MAX_USER_RT_PRIO hodnota umožňuje, aby byla skutečná priorita maximumRT oddělena od hodnoty exportované do uživatelského prostoru. To umožňuje vláknům jádra nastavit svou prioritu na hodnotu vyšší než jakákoli uživatelská úloha. Poznámka:MAX_RT_PRIO nesmí být menší než MAX_USER_RT_PRIO .

Rozsah v jádře tedy pokrývá 140 hodnot, od 0 do MAX_PRIO –1 (139).

Minimální priorita FIFO a RT je však 1, což vysvětluje chybějící hodnotu:vstupní hodnoty (alespoň, které lze nastavit z uživatelského prostoru pomocí sched_setscheduler ) přejít od 1 do 99 a jádro je převede na prio hodnoty pomocí vzorce MAX_RT_PRIO – 1 – priorita s hodnotami od 0 do 98.


Linux
  1. Maximální hodnota ID procesu?

  2. Jak změnit prioritu procesu pomocí příkladů Linux Nice a Renice

  3. UNIX / Linux :Jak změnit vhodnost (prioritu) procesu

  1. Jak spustit proces Rsync na pozadí

  2. Jak získat návratovou hodnotu z CHILD PROCESS?

  3. Jak zabít zombie proces

  1. Jak zabít proces zombie na Linuxu

  2. Jak nainstalovat vtop na Linux

  3. Jak číst proměnné prostředí procesu