table of contents
- bookworm-backports 4.26.1-1~bpo12+1
- testing 4.26.1-1
- unstable 4.26.2-1
getrusage(2) | System Calls Manual | getrusage(2) |
NUME¶
getrusage - obține informații despre utilizarea resurselor
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
DESCRIERE¶
getrusage() returnează măsurile de utilizare a resurselor pentru who, care pot fi una dintre următoarele:
- RUSAGE_SELF
- Returnează statisticile de utilizare a resurselor pentru procesul apelant, care reprezintă suma resurselor utilizate de toate firele din proces.
- RUSAGE_CHILDREN
- Returnează statistici privind utilizarea resurselor pentru toți copiii procesului apelant care s-au încheiat și au fost așteptați. Aceste statistici vor include resursele utilizate de nepoți și de descendenții îndepărtați ulterior, în cazul în care toți descendenții care au intervenit și-au așteptat copiii care s-au încheiat.
- RUSAGE_THREAD (începând cu Linux 2.6.26)
- Returnează statisticile de utilizare a resurselor pentru firul apelant. Macrocomanda de testare a caracteristicii _GNU_SOURCE trebuie definit (înainte de includerea fișierului de antet any) pentru a obține definiția acestei constante din <sys/resource.h>.
Utilizările resurselor sunt returnate în structura indicată de usage, care are următoarea formă:
struct rusage {
struct timeval ru_utime; /* timpul CPU utilizat de utilizator */
struct timeval ru_stime; /* timpul CPU utilizat de sistem */
long ru_maxrss; /* dimensiunea maximă a setului rezident */
long ru_ixrss; /* dimensiunea integrală a memoriei partajate */
long ru_idrss; /* dimensiunea integrală a memoriei nepartajate */
long ru_isrss; /* dimensiune integrală a stivei nepartajate */
long ru_minflt; /* revendicări de pagină (defecte de pagină ușoare) */
long ru_majflt; /* defecte de pagină (defecte de pagină grave) */
long ru_nswap; /* swaps */
long ru_inblock; /* operații de intrare în bloc */
long ru_oublock; /* operații de ieșire în blocs */
long ru_msgsnd; /* mesaje IPC trimise */
long ru_msgrcv; /* mesaje IPC primite */
long ru_nsignals; /* semnale primite */
long ru_nvcsw; /* schimbări voluntare de context */
long ru_nivcsw; /* schimbări involuntare de context */ };
Nu toate câmpurile sunt completate; câmpurile neîntreținute sunt puse la zero de către nucleu; (câmpurile neîntreținute sunt furnizate pentru compatibilitate cu alte sisteme și pentru că într-o zi ar putea fi acceptate pe Linux). Câmpurile sunt interpretate după cum urmează:
- ru_utime
- Aceasta este cantitatea totală de timp petrecută executând în modul utilizator, exprimată într-o structură timeval (secunde plus microsecunde).
- ru_stime
- Aceasta este cantitatea totală de timp petrecută executând în modul nucleu, exprimată într-o structură timeval (secunde plus microsecunde).
- ru_maxrss (începând cu Linux 2.6.32)
- Aceasta este dimensiunea maximă a setului rezident utilizat (în kiloocteți). Pentru RUSAGE_CHILDREN, aceasta este dimensiunea setului rezident al celui mai mare copil, nu dimensiunea maximă a setului rezident al arborelui de procese.
- ru_ixrss (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_idrss (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_isrss (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_minflt
- Numărul de erori de pagină rezolvate fără nicio activitate de In/Ieș; în acest caz, activitatea de In/Ieș este evitată prin „recuperarea” unui cadru de pagină din lista de pagini care așteaptă realocarea.
- ru_majflt
- Numărul de erori de pagină deservite care au necesitat activitate In/Ieș.
- ru_nswap (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_inblock (începând cu Linux 2.6.22)
- Numărul de ori în care sistemul de fișiere a trebuit să efectueze o intrare.
- ru_oublock (începând cu Linux 2.6.22)
- Numărul de ori în care sistemul de fișiere a trebuit să efectueze o ieșire.
- ru_msgsnd (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_msgrcv (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_nsignals (nu este întreținut)
- Acest câmp este în prezent neutilizat pe Linux.
- ru_nvcsw (începând cu Linux 2.6)
- Numărul de ori în care a avut loc o schimbare de context ca urmare a faptului că un proces a renunțat în mod voluntar la procesor înainte de finalizarea tranșei sale de timp (de obicei pentru a aștepta disponibilitatea unei resurse).
- ru_nivcsw (începând cu Linux 2.6)
- Numărul de ori în care a avut loc o schimbare de context ca urmare a faptului că un proces cu prioritate mai mare a devenit executabil sau pentru că procesul curent și-a depășit intervalul de timp.
VALOAREA RETURNATö
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE¶
ATRIBUTE¶
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
getrusage() | Siguranța firelor | MT-Safe |
STANDARDE¶
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. POSIX.1 specifică getrusage(), dar specifică numai câmpurile ru_utime și ru_stime.
RUSAGE_THREAD este specific Linux.
NOTE¶
Măsurătorile de utilizare a resurselor sunt păstrate pe parcursul unui execve(2).
Înainte de Linux 2.6.9, dacă dispoziția SIGCHLD este stabilită la SIG_IGN, atunci utilizările de resurse ale proceselor copil sunt incluse automat în valoarea returnată de RUSAGE_CHILDREN, deși POSIX.1-2001 interzice explicit acest lucru. Această neconformitate este rectificată în Linux 2.6.9 și versiunile ulterioare.
Definiția structurii prezentată la începutul acestei pagini a fost preluată din 4.3BSD Reno.
Sistemele vechi ofereau o funcție vtimes() cu un scop similar cu getrusage(). Pentru retrocompatibilitate, glibc (până la Linux 2.32) furnizează, de asemenea, vtimes(). Toate aplicațiile noi ar trebui să fie scrise folosind getrusage(); (începând cu Linux 2.33, glibc nu mai furnizează o implementare vtimes()).
A se vedea, de asemenea, descrierea /proc/pid/stat în proc(5).
CONSULTAȚI ȘI¶
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3)
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
15 decembrie 2022 | Pagini de manual de Linux 6.03 |