Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       sched_setscheduler, sched_getscheduler - stabilește și obține politica/parametrii de planificare

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sched.h>

       int sched_setscheduler(pid_t pid, int policy,
                              const struct sched_param *param);
       int sched_getscheduler(pid_t pid);

DESCRIERE

       Apelul  de  sistem sched_setscheduler() stabilește atât politica de planificare, cât și parametrii pentru
       firul al cărui ID este specificat în pid. Dacă pid  este  egal  cu  zero,  se  vor  stabili  politica  de
       planificare și parametrii firului apelant.

       Parametrii  de planificare sunt specificați în argumentul param, care este un indicator către o structură
       de forma următoare:

           struct sched_param {
               ...
               int sched_priority;
               ...
           };

       În implementarea actuală, structura conține un  singur  câmp,  sched_priority.  Interpretarea  lui  param
       depinde de politica selectată.

       În prezent, Linux acceptă următoarele politici de planificare „normale” (adică, fără timp real) ca valori
       care pot fi specificate în policy:

       SCHED_OTHER   politica standard de repartizare a timpului „round-robin”;

       SCHED_BATCH   pentru executarea proceselor în stil „lot”; și

       SCHED_IDLE    pentru rularea sarcinilor de fundal cu prioritate foarte mică.

       Pentru fiecare dintre politicile de mai sus, param->sched_priority trebuie să fie 0.

       Sunt  acceptate,  de asemenea, diferite politici „în timp real”, pentru aplicații speciale cu timp critic
       care necesită un control precis asupra modului în care sunt selectate pentru execuție firele de execuție.
       Pentru normele care reglementează situațiile în care un proces poate utiliza aceste politici, a se  vedea
       sched(7). Politicile în timp real care pot fi specificate în policy sunt:

       SCHED_FIFO    o politică „primul intrat, primul ieșit”; și

       SCHED_RR      o politică „round-robin”.

       Pentru  fiecare dintre politicile de mai sus, param->sched_priority specifică o prioritate de planificare
       pentru fir. Acesta este un număr din  intervalul  returnat  prin  apelarea  sched_get_priority_min(2)  și
       sched_get_priority_max(2) cu policy specificat. În Linux, aceste apeluri de sistem returnează, respectiv,
       1 și 99.

       Începând cu Linux 2.6.32, flagul SCHED_RESET_ON_FORK poate fi SAU condițional(ORed) în policy atunci când
       se  apelează  sched_setscheduler(). Ca urmare a includerii acestui indicator, copiii creați de fork(2) nu
       moștenesc politici de planificare privilegiate. Consultați sched(7) pentru detalii.

       sched_getscheduler() returnează politica curentă de planificare a firului identificat prin pid. Dacă  pid
       este egal cu zero, se va prelua politica firului apelant.

VALOAREA RETURNATĂ

       În  caz  de  succes,  sched_setscheduler()  returnează  zero.  La succes, sched_getscheduler() returnează
       politica pentru firul de execuție (un număr  întreg  nenulegativ).  În  caz  de  eroare,  ambele  apeluri
       returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EINVAL Argumente nevalide: pid este negativ sau param este NULL.

       EINVAL (sched_setscheduler()) Politica definită de policy nu este una dintre politicile recunoscute.

       EINVAL (sched_setscheduler()) Parametrul param nu are sens pentru policy specificată.

       EPERM  Firul apelant nu are privilegiile adecvate.

       ESRCH  Firul de execuție al cărui identificator este pid nu a putut fi găsit.

VERSIUNI

       POSIX.1   nu   detaliază   permisiunile   de  care  are  nevoie  un  fir  neprivilegiat  pentru  a  apela
       sched_setscheduler(), iar detaliile variază de la un sistem  la  altul.  De  exemplu,  pagina  de  manual
       Solaris  7 precizează că ID-ul de utilizator real sau efectiv al apelantului trebuie să coincidă cu ID-ul
       de utilizator real sau cu set-user-ID-ul de salvare al țintei.

       Politica de planificare și parametrii sunt de fapt  atribute  per-fir  de  execuție  în  Linux.  Valoarea
       returnată  în  urma  unui  apel la gettid(2) poate fi trecută în argumentul pid. Specificarea pid ca 0 va
       opera asupra atributelor firului apelant, iar trecerea valorii returnate în urma unui apel  la  getpid(2)
       va  opera asupra atributelor firului principal al grupului de fire; (dacă utilizați API-ul de fire POSIX,
       atunci utilizați pthread_setschedparam(3), pthread_getschedparam(3) și pthread_setschedprio(3), în  locul
       apelurilor de sistem sched_*(2)).

STANDARDE

       POSIX.1-2008 (dar vedeți secțiunea ERORI de mai jos).

       SCHED_BATCH și SCHED_IDLE sunt specifice Linux.

ISTORIC

       POSIX.1-2001.

NOTE

       Detalii  suplimentare privind semantica tuturor politicilor de planificare „normală” și „în timp real” de
       mai sus pot fi găsite în pagina de manual sched(7).  Pagina respectivă descrie, de asemenea,  o  politică
       suplimentară, SCHED_DEADLINE, care poate fi definită numai prin intermediul sched_setattr(2).

       Sistemele   POSIX   pe  care  sunt  disponibile  sched_setscheduler()  și  sched_getscheduler()  definesc
       _POSIX_PRIORITY_SCHEDULING în <unistd.h>.

ERORI

       POSIX.1 spune că, în caz de succes, sched_setscheduler() ar trebui să returneze politica  de  planificare
       anterioară.   Linux  sched_setscheduler()  nu  este  conform  cu  această  cerință,  deoarece  returnează
       întotdeauna 0 în caz de succes.

CONSULTAȚI ȘI

       chrt(1), nice(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_getaffinity(2),
       sched_getattr(2), sched_getparam(2), sched_rr_get_interval(2), sched_setaffinity(2), sched_setattr(2),
       sched_setparam(2), sched_yield(2), setpriority(2), capabilities(7), cpuset(7), sched(7)

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                              sched_setscheduler(2)