Prioritatea procesului în linux - life-prog

Toate celelalte lucruri fiind egale, timpul procesorului este distribuit în mod egal între procesele care rulează, dar procesul poate seta add-on-ul la prioritate. Această adăugire, cu toate acestea, nu crește, ci scade prioritatea procesului în ceea ce privește utilizarea procesorului. Numai procesele de superuser pot primi un add-on negativ la prioritate, adică să-și sporească cu adevărat prioritatea.







Acest lucru este justificat de faptul că în kernel-ul Linux sunt folosite două clase prioritare:
  1. O prioritate nerealistă.
  2. Prioritate în timp real
Prioritatea nerealistă este împărțită în două subclase:
  1. O prioritate statică sau o prioritate frumoasă, valoarea unei priorități frumoase poate fi în intervalul de la -20 la 19, valoarea implicită fiind 0. Valoarea -20 corespunde celei mai înalte priorități. Prioritatea frumoasă nu este modificată de programator, este moștenită de la părinte sau specificată de utilizator.
  2. Prioritate dinamică, pe baza căreia se execută planificatorul. Prioritatea dinamică este calculată pe baza valorii parametrului pentru sarcina dată prin calcularea marcajului sau a pedepsei în intervalul de la -5 la 5, în funcție de interactivitatea sarcinii. Pentru a determina interactivitatea în kernelul Linux, există un indicator variabil al modului în care timpul desfășurat de proces într-o stare suspendată corelează cu timpul pe care procesul îl desfășoară într-o stare gata de funcționare.






Prioritatea în timp real se află în intervalul de la 1 la (MAX_RT_PRIO-1). În mod prestabilit, intervalul de valori de prioritate în timp real este de la 1 la 99.

Pentru strategia de modul de planificare nu este în timp real (SCHED_OTHER) spațiu priorități în timp real, combinat cu valorile parametrilor de spațiu frumos, care corespunde unui interval de priorități de la valoarea MAX_RT_PRIO la o valoare (MAX_RT_PRIO + 40). În mod implicit, acest lucru înseamnă că valorile de setare frumos variază de la -20 la + 19 unu la unu prezentat în intervalul de valori de prioritate de la 100 la 139. și, prin urmare, programarea se face în funcție de nivelul de prioritate al 1-139.

Puteți schimba prioritatea procesului în Linux utilizând apelul frumos de sistem. iar prioritatea unui alt proces poate fi modificată prin setprioritatea apelului de sistem. Apelul de sistem getpriority vă permite să determinați prioritatea procesului.







Articole similare

Trimiteți-le prietenilor: