Scroll to navigation

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:

Returnează statisticile de utilizare a resurselor pentru procesul apelant, care reprezintă suma resurselor utilizate de toate firele din proces.
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.
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ă:

Aceasta este cantitatea totală de timp petrecută executând în modul utilizator, exprimată într-o structură timeval (secunde plus microsecunde).
Aceasta este cantitatea totală de timp petrecută executând în modul nucleu, exprimată într-o structură timeval (secunde plus microsecunde).
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.
Acest câmp este în prezent neutilizat pe Linux.
Acest câmp este în prezent neutilizat pe Linux.
Acest câmp este în prezent neutilizat pe Linux.
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.
Numărul de erori de pagină deservite care au necesitat activitate In/Ieș.
Acest câmp este în prezent neutilizat pe Linux.
Numărul de ori în care sistemul de fișiere a trebuit să efectueze o intrare.
Numărul de ori în care sistemul de fișiere a trebuit să efectueze o ieșire.
Acest câmp este în prezent neutilizat pe Linux.
Acest câmp este în prezent neutilizat pe Linux.
Acest câmp este în prezent neutilizat pe Linux.
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).
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

usage indică în afara spațiului de adrese accesibil.
who nu este valid.

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