.\" -*- coding: UTF-8 -*- .\" SPDX-License-Identifier: Linux-man-pages-copyleft-var .\" .\" Copyright 2003,2004 Andi Kleen, SuSE Labs. .\" and Copyright 2007 Lee Schermerhorn, Hewlett Packard .\" .\" 2006-02-03, mtk, substantial wording changes and other improvements .\" 2007-08-27, Lee Schermerhorn .\" more precise specification of behavior. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH get_mempolicy 2 "31 octombrie 2023" "Pagini de manual de Linux 6.06" .SH NUME get_mempolicy \- recuperează politica de memorie NUMA pentru un fir de execuție .SH BIBLIOTECA Biblioteca de politici NUMA („Non\-Uniform Memory Access”: acces neuniform la memorie) (\fIlibnuma\fP, \fI\-lnuma\fP) .SH REZUMAT \fB#include \fP .nf .P \fBlong get_mempolicy(int *\fP\fImode\fP\fB,\fP \fB unsigned long \fP\fInodemask\fP\fB[(.\fP\fImaxnode\fP\fB + ULONG_WIDTH \- 1)\fP \fB/ ULONG_WIDTH],\fP \fB unsigned long \fP\fImaxnode\fP\fB, void *\fP\fIaddr\fP\fB,\fP \fB unsigned long \fP\fIflags\fP\fB);\fP .fi .SH DESCRIERE \fBget_mempolicy\fP() recuperează politica NUMA a firului apelant sau a unei adrese de memorie, în funcție de valoarea lui \fIflags\fP. .P O mașină NUMA are diferite controloare de memorie cu distanțe diferite față de diferitele CPU\-uri. Politica de memorie definește din ce nod este alocată memoria pentru firul de execuție. .P Dacă \fIflags\fP este specificat ca fiind 0, atunci sunt returnate informații despre politica implicită a firului apelant (așa cum a fost stabilită de \fBset_mempolicy\fP(2)), în memoriile tampon indicate de \fImode\fP și \fInodemask\fP. Valoarea returnată în aceste argumente poate fi utilizată pentru a readuce politica firului la starea sa din momentul apelului la \fBget_mempolicy\fP() folosind \fBset_mempolicy\fP(2). Atunci când \fIflags\fP este 0, \fIaddr\fP trebuie să fie specificat ca NULL. .P Dacă \fIflags\fP specifică \fBMPOL_F_MEMS_ALLOWED\fP (disponibil începând cu Linux 2.6.24), argumentul \fImode\fP este ignorat, iar setul de noduri (memorii) pe care firul de execuție are voie să le specifice în apelurile ulterioare către \fBmbind\fP(2) sau \fBset_mempolicy\fP(2) (în absența oricărui indicator \fImode flags\fP) este returnat în \fInodemask\fP. Nu este permisă combinarea \fBMPOL_F_MEMS_ALLOWED\fP cu \fBMPOL_F_ADDR\fP sau \fBMPOL_F_NODE\fP. .P În cazul în care \fIflags\fP specifică \fBMPOL_F_ADDR\fP, atunci sunt returnate informații despre politica care guvernează adresa de memorie indicată în \fIaddr\fP. Această politică poate fi diferită de politica implicită a firului de execuție dacă \fBmbind\fP(2) sau una dintre funcțiile de ajutor descrise în \fBnuma\fP(3) a fost utilizată pentru a stabili o politică pentru intervalul de memorie care conține \fIaddr\fP. .P Dacă argumentul \fImode\fP nu este NULL, atunci \fBget_mempolicy\fP() va stoca modul de politică și orice indicatori opționali \fImode flags\fP ai politicii NUMA solicitate în locația indicată de acest argument. Dacă \fInodemask\fP nu este NULL, atunci masca de nod asociată politicii va fi stocată în locația indicată de acest argument. \fImaxnode\fP specifică numărul de ID\-uri de nod care pot fi stocate în \fInodemask\fP, adică ID\-ul maxim de nod plus unu. Valoarea specificată de \fImaxnode\fP este întotdeauna rotunjită la un multiplu de \fIsizeof(unsigned\ long)*8\fP. .P Dacă \fIflags\fP specifică atât \fBMPOL_F_NODE\fP, cât și \fBMPOL_F_ADDR\fP, \fBget_mempolicy\fP() va returna ID\-ul nodului pe care adresa \fIaddr\fP este alocată în locația indicată de \fImode\fP. În cazul în care nu a fost alocată încă nicio pagină pentru adresa specificată, \fBget_mempolicy\fP() va aloca o pagină ca și cum firul de execuție ar fi efectuat un acces de citire (încărcare) la adresa respectivă și va returna ID\-ul nodului în care a fost alocată pagina respectivă. .P .\" Note: code returns next interleave node via 'mode' argument -Lee Schermerhorn În cazul în care \fIflags\fP specifică \fBMPOL_F_NODE\fP, dar nu \fBMPOL_F_ADDR\fP, iar politica curentă a firului este \fBMPOL_INTERLEAVE\fP, atunci \fBget_mempolicy\fP() va returna în locația indicată de un argument \fImode\fP non\-NULL, ID\-ul de nod al nodului următor care va fi utilizat pentru intercalarea paginilor interne ale nucleului alocate în numele firului. Aceste alocări includ paginile pentru fișiere alocate în memorie în intervalele de memorie ale procesului, alocate cu ajutorul apelului \fBmmap\fP(2) cu indicatorul \fBMAP_PRIVATE\fP pentru accesări de citire și în intervalele de memorie alocate cu indicatorul \fBMAP_SHARED\fP pentru toate accesările. .P Alte valori ale fanionului sunt rezervate. .P Pentru o prezentare generală a politicilor posibile, a se vedea \fBset_mempolicy\fP(2). .SH "VALOAREA RETURNATĂ" În caz de succes, \fBget_mempolicy\fP() returnează 0; în caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEFAULT\fP O parte din tot intervalul de memorie specificat de \fInodemask\fP și \fImaxnode\fP indică în afara spațiului de adrese accesibil. .TP \fBEINVAL\fP Valoarea specificată de \fImaxnode\fP este mai mică decât numărul de ID\-uri de noduri acceptate de sistem. Sau \fIflags\fP a specificat alte valori decât \fBMPOL_F_NODE\fP sau \fBMPOL_F_ADDR\fP; sau \fIflags\fP a specificat \fBMPOL_F_ADDR\fP și \fIaddr\fP este NULL, sau \fIflags\fP nu a specificat \fBMPOL_F_ADDR\fP și \fIaddr\fP nu este NULL. Sau, \fIflags\fP a specificat \fBMPOL_F_NODE\fP, dar nu \fBMPOL_F_ADDR\fP, iar politica curentă a firelor nu este \fBMPOL_INTERLEAVE\fP. Sau, \fIflags\fP a specificat \fBMPOL_F_MEMS_ALLOWED\fP fie cu \fBMPOL_F_ADDR\fP, fie cu \fBMPOL_F_NODE\fP; (și mai există și alte cazuri \fBEINVAL\fP). .SH STANDARDE Linux. .SH ISTORIC Linux 2.6.7. .SH NOTE Pentru informații privind suportul de bibliotecă, consultați \fBnuma\fP(7). .SH "CONSULTAȚI ȘI" \fBgetcpu\fP(2), \fBmbind\fP(2), \fBmmap\fP(2), \fBset_mempolicy\fP(2), \fBnuma\fP(3), \fBnuma\fP(7), \fBnumactl\fP(8) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .