Modificarea priorității comenzilor frumoase și renale

Factorul de "conformitate" este numărul prin care kernelul își stabilește politica privind procesele care concurează pentru dreptul de acces la procesorul central. Cu cât este mai mare factorul de conformitate, cu atât este mai mică prioritatea procesului și invers, de aici și numele termenului. Valoarea scăzută sau negativă înseamnă utilizarea unei priorități înalte: procesul nu este foarte conform.







Gama de valori acceptabile ale factorului de conformitate depinde de sistemul utilizat și de obicei variază între -20 și +19. În unele sisteme, se utilizează o gamă de aceeași dimensiune, dar cu trecerea la regiunea cu numere non-negative (de obicei de la 0 la 39). Intervalele valorilor acceptabile ale factorului de conformitate utilizate în exemplele noastre de sistem sunt prezentate mai jos.

În ciuda diferențelor numerice, toate sistemele gestionează aproape identic valorile factorului de conformitate. Dacă utilizatorul nu ia măsuri speciale, procesul copil moștenește prioritatea procesului său părinte. Proprietarul procesului poate crește factorul de conformitate, dar nu-l poate reduce, chiar să revină la valoarea standard. Acest lucru împiedică procesele cu o prioritate scăzută să genereze descendenți cu prioritate ridicată. Superuserul poate seta valori arbitrare pentru factorul de conformitate.

În prezent, administratorii rareori trebuie să definească prioritățile manual. Când sistemele de operare au lucrat pe calculatoare cu o putere redusă de 70-80 de ani. performanța a fost influențată cel mai mult de procesul care a luat cea mai mare parte a timpului CPU. Astăzi, când desktop-urile sunt computere mult mai rapide, planificatorul de sistem, de regulă, servește tuturor proceselor foarte rapid. Adăugarea de clase de planificare oferă dezvoltatorilor controale suplimentare în acele cazuri în care un răspuns rapid este important.

Din păcate, nivelul de performanță al subsistemului I / O nu crește atât de repede ca viteza procesorului, astfel încât unitățile hard au devenit un obstacol major în majoritatea sistemelor de operare. Factorul de conformitate nu afectează subsistemele de memorie și I / O, deci chiar și un proces cu prioritate scăzută poate monopoliza aceste resurse sau poate capta o majoritate disproporționată a acestora.







Factorul de conformitate poate fi setat când procesul este creat. Acest lucru se întâmplă cu comanda frumoasă. Comanda renice vă permite să modificați prioritatea procesului de rulare. Prima dintre aceste comenzi are ca argument argumentul liniei de start a procesului, iar al doilea - ID-ul procesului sau numele de utilizator.

/ bin / longtask // Prioritate inferioară (creștere

// Factor de conformitate) cu 5

$ sudo renice -5 8829 // Setați factorul de conformitate la -5

$ sudo renice 5 -u boggs // Stabiliți factorul de conformitate al procesului

// utilizator "boggs" la 5

Din păcate, sistemele au diferite moduri de a stabili prioritatea dorită; În plus, chiar și în cadrul aceluiași sistem, mecanismele comenzilor frumoase și renale nu sunt coordonate. Unele echipe necesită o indicație a importanței relative a factorului de conformitate, în timp ce altele necesită o valoare absolută. În unele echipe, trebuie să puneți o cratimă înainte de valoarea factorului de conformitate, alții necesită pavilionul -p, iar al treilea sunt "mulțumiți" doar cu o valoare numerică.

Există, de asemenea, o versiune a comenzii frumos, csh interpret built-in și o serie de alte interpreți populare (nu bash). Dacă nu specificați numele complet al comenzii, acesta va fi numit versiune înglobată, mai degrabă decât sistemul. Aceasta confundă mulți oameni, deoarece sintaxa este diferită: built-in versiunea presupune că schimbările prioritare sunt înregistrate în format + inc sau -dekr, iar versiunea de sistem este de așteptat de pavilion N, urmat de prirascheniya8 valoare.

Elementul prealabil pentru mediul în care se invocă comanda frumos sau reneală este valoarea absolută a factorului de conformitate, iar incr este valoarea relativă. Ori de câte ori se specifică valoarea -inc sau -dec, se pot utiliza două liniuțe (de exemplu -10) pentru a introduce valori negative. Semnele "plus" din comanda drăguță sunt obligatorii numai pentru interpretul de comandă; altfel ele sunt ignorate.

Cele mai frecvente dintre procesele de înaltă prioritate din sistemele moderne este ntpd, daemonul de sincronizare a ceasului. Având în vedere că pentru el acces rapid la procesorul central este foarte important, acest daemon este de obicei atribuit un factor de conformitate, 2 poziții sub nivelul standard.

Dacă un proces are nevoie de atât de mult timp CPU pentru ca sarcina medie a sistemului să atingă 65, atunci înainte de a executa comenzile necesare pentru a investiga această problemă, trebuie să rulați interpretul cu prioritate ridicată cu o comandă plăcută. În caz contrar, chiar și cele mai simple comenzi pot fi dificile.







Articole similare

Trimiteți-le prietenilor: