Provided by: manpages-ro_4.26.0-1_all 

NUME
timp - prezentare generală a timpului și a cronometrelor
DESCRIERE
Timp real și timp de procesare
Timp real se definește ca fiind timpul măsurat de la un punct fix, fie de la un punct standard din trecut
(a se vedea descrierea epocii și a timpului calendaristic de mai jos), fie de la un punct (de exemplu,
începutul) din viața unui proces (timp scurs).
Timpul de procesare este definit ca fiind cantitatea de timp de procesor utilizat de un proces. Acesta
este uneori împărțit în componentele utilizator și sistem. Timpul CPU de utilizator este timpul petrecut
executând cod în modul utilizator. Timpul CPU de sistem este timpul petrecut de nucleu executând în modul
sistem în numele procesului (de exemplu, executând apeluri de sistem). Comanda time(1) poate fi utilizată
pentru a determina cantitatea de timp CPU consumată în timpul execuției unui program. Un program poate
determina cantitatea de timp de procesor pe care a consumat-o folosind times(2), getrusage(2) sau
clock(3).
Ceasul hardware
Majoritatea calculatoarelor au un ceas hardware (alimentat cu baterii) pe care nucleul îl citește în
momentul pornirii pentru a inițializa ceasul software. Pentru mai multe detalii, consultați rtc(4) și
hwclock(8).
Ceasul software, HZ și jiffies
Precizia diferitelor apeluri de sistem care stabilesc temporizări (de exemplu, select(2),
sigtimedwait(2)) și măsoară timpul de procesare (de exemplu, getrusage(2)) este limitată de rezoluția
ceasului software, un ceas întreținut de nucleu care măsoară timpul în jiffies. Dimensiunea unui jiffy
este determinată de valoarea constantei HZ a nucleului.
Valoarea lui HZ variază în funcție de versiunile de nucleu și de platformele hardware. Pe i386, situația
este următoarea: pe nucleele de până la Linux 2.4.x inclusiv, HZ era 100, ceea ce dădea o valoare a jiffy
de 0,01 secunde; începând cu Linux 2.6.0, HZ a fost ridicat la 1000, ceea ce dă o valoare a jiffy de
0,001 secunde. Începând cu Linux 2.6.13, valoarea HZ este un parametru de configurare a nucleului și
poate fi 100, 250 (valoarea implicită) sau 1000, ceea ce dă o valoare a jiffy-urilor de, respectiv, 0,01,
0,004 sau 0,001 secunde. Începând cu Linux 2.6.20, este disponibilă o frecvență suplimentară: 300, un
număr care se împarte în mod egal pentru frecvențele de cadre video comune (PAL, 25 Hz; NTSC, 30 Hz).
Apelul de sistem times(2) este un caz special. Acesta raportează timpii cu o granularitate (finețe)
definită de constanta de nucleu USER_HZ. Aplicațiile din spațiul utilizatorului pot determina valoarea
acestei constante folosind sysconf(_SC_CLK_TCK).
Ceasuri de sistem și de proces; spații de nume de timp
Nucleul suportă o serie de ceasuri care măsoară diferite tipuri de timp scurs și virtual (adică timpul
consumat de CPU). Aceste ceasuri sunt descrise în clock_gettime(2). Câteva dintre ceasuri pot fi
configurate cu ajutorul clock_settime(2). Valorile anumitor ceasuri sunt virtualizate prin spații de nume
de timp; a se vedea time_namespaces(7).
Temporizatoare de înaltă rezoluție
Înainte de Linux 2.6.21, precizia apelurilor de sistem timer și sleep (a se vedea mai jos) era, de
asemenea, limitată de dimensiunea jiffy.
Începând cu Linux 2.6.21, Linux acceptă temporizatoare de înaltă rezoluție (HRT), configurabile opțional
prin CONFIG_HIGH_RES_TIMERS. Pe un sistem care suportă HRT-uri, precizia apelurilor de sistem de tip
sleep și timer nu mai este constrânsă de jiffy, ci poate fi atât de precisă pe cât permite echipamentul
(precizia de microsecunde este tipică pentru echipamentul modern). Puteți determina dacă sunt acceptate
temporizatoarele de înaltă rezoluție verificând rezoluția returnată de un apel la clock_getres(2) sau
uitându-vă la intrările „resolution” din /proc/timer_list.
HRT-urile nu sunt acceptate pe toate arhitecturile hardware; (suportul este oferit pe x86, ARM și
PowerPC, printre altele.)
Epoca
Sistemele UNIX reprezintă timpul în secunde de la Epocă, 1970-01-01 00:00:00:00 +0000 (UTC).
Un program poate determina timpul calendaristic prin intermediul ceasului clock_gettime(2)
CLOCK_REALTIME, care returnează timpul (în secunde și nanosecunde) care s-a scurs de la Epocă; time(2)
oferă informații similare, dar numai cu o precizie la cea mai apropiată secundă. Ora sistemului poate fi
modificată cu ajutorul clock_settime(2).
Timpul defalcat
Anumite funcții de bibliotecă utilizează o structură de tip tm pentru a reprezenta timpul defalcat, care
stochează valoarea timpului separată în componente distincte (an, lună, zi, oră, minut, secundă etc.).
Această structură este descrisă în tm(3type), care descrie, de asemenea, funcțiile care fac conversia
între timpul calendaristic și timpul defalcat. Funcțiile de conversie între timpul defalcat și
reprezentările de tip șir de caractere imprimabile ale timpului sunt descrise în ctime(3), strftime(3) și
strptime(3).
Adormirea și configurarea temporizatoarelor
Diverse apeluri și funcții de sistem permit unui program să doarmă (să suspende execuția) pentru o
anumită perioadă de timp; a se vedea nanosleep(2), clock_nanosleep(2) și sleep(3).
Diverse apeluri de sistem permit unui proces să configureze un temporizator care expiră la un moment dat
în viitor și, opțional, la intervale repetate; a se vedea alarm(2), getitimer(2), timerfd_create(2) și
timer_create(2).
Marjă temporizator
Începând cu Linux 2.6.28, este posibil să se controleze valoarea marjei temporizatorului „timer slack”
pentru un fir de execuție. Marja temporizatorului este durata de timp cu care nucleul poate întârzia
trezirea anumitor apeluri de sistem care se blochează cu un timp de așteptare. Permiterea acestei
întârzieri permite nucleului să reunească evenimentele de trezire, reducând astfel numărul de treziri ale
sistemului și economisind energie. Pentru mai multe detalii, a se vedea descrierea PR_SET_TIMERSLACK în
prctl(2).
CONSULTAȚI ȘI
date(1), time(1), timeout(1), adjtimex(2), alarm(2), clock_gettime(2), clock_nanosleep(2), getitimer(2),
getrlimit(2), getrusage(2), gettimeofday(2), nanosleep(2), stat(2), time(2), timer_create(2),
timerfd_create(2), times(2), utime(2), adjtime(3), clock(3), clock_getcpuclockid(3), ctime(3),
ntp_adjtime(3), ntp_gettime(3), pthread_getcpuclockid(3), sleep(3), strftime(3), strptime(3),
timeradd(3), usleep(3), rtc(4), time_namespaces(7), hwclock(8)
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.
Pagini de manual de Linux 6.9.1 2 mai 2024 time(7)