GNU/Linux >> Linux Esercitazione >  >> Linux

Come viene calcolata la priorità del processo?

In ps l'output di , pri_baz viene calcolato come pp->priority + 100 e pp->priority è il prio valore dal kernel. Questo è descritto come

La priorità di un processo va da 0..MAX_PRIO -1, la priorità RT valida è 0..MAX_RT_PRIO -1 e SCHED_NORMAL /SCHED_BATCH le attività sono comprese nell'intervallo MAX_RT_PRIO ..MAX_PRIO -1. I valori di priorità sono invertiti:inferiore p->prio valore significa priorità più alta.

Il MAX_USER_RT_PRIO value consente di separare l'attuale priorità maximumRT dal valore esportato nello spazio utente. Ciò consente ai thread del kernel di impostare la propria priorità su un valore superiore a qualsiasi attività dell'utente. Nota:MAX_RT_PRIO non deve essere inferiore a MAX_USER_RT_PRIO .

Quindi l'intervallo nel kernel copre 140 valori, da 0 a MAX_PRIO –1 (139).

Tuttavia, la priorità FIFO e RT minima è 1, e questo spiega il valore mancante:i valori di input (almeno, che possono essere impostati dallo spazio utente, usando sched_setscheduler ) vanno da 1 a 99 e il kernel li converte in prio utilizzando la formula MAX_RT_PRIO – 1 – priorità , dando valori da 0 a 98.


Linux
  1. Il valore massimo dell'ID di processo?

  2. Come modificare la priorità del processo utilizzando Linux Nice e Renice Esempi

  3. UNIX/Linux:Come cambiare la gentilezza (priorità) di un processo

  4. Come ottenere un valore di ritorno da CHILD PROCESS?

  5. Come uccidere il processo di zombi

Come elencare i processi in esecuzione in Linux

Come uccidere un processo in Linux

Come modificare la priorità di un processo in Linux

Come KILL un processo su Linux

Come ottenere l'ID processo del processo in background?

Come leggere le variabili d'ambiente di un processo