SCHED_YIELD(2) | Manualul programatorului Linux | SCHED_YIELD(2) |
NUME¶
sched_yield - cedează procesorul
REZUMAT¶
#include <sched.h>
int sched_yield(void);
DESCRIERE¶
sched_yield() face ca firul apelant să renunțe la CPU. Firul este mutat la sfârșitul cozii de așteptare pentru prioritatea sa statică și un nou fir ajunge să ruleze.
VALOAREA RETURNATö
În caz de succes, sched_yield() returnează 0. În caz de eroare, se returnează -1, iar errno este configurată în mod corespunzător.
ERORI¶
În implementarea Linux, sched_yield() reușește întotdeauna.
ÎN CONFORMITATE CU¶
POSIX.1-2001, POSIX.1-2008.
NOTE¶
În cazul în care firul apelant este singurul fir din lista de prioritate maximă în acel moment, acesta va continua să ruleze după un apel la sched_yield().
Sistemele POSIX pe care este disponibil sched_yield() definesc _POSIX_PRIORITY_SCHEDULING în <unistd.h>.
Apelurile strategice la sched_yield() pot îmbunătăți performanța prin oferirea unei șanse altor fire de execuție sau procese de a rula atunci când resursele (puternic) disputate (de exemplu, mutex-urile) au fost eliberate de către apelant. Evitați să apelați sched_yield() în mod inutil sau necorespunzător (de exemplu, atunci când resursele necesare altor fire de execuție programabile sunt încă deținute de apelant), deoarece acest lucru va duce la schimbări inutile de context, ceea ce va degrada performanța sistemului.
sched_yield() este destinat utilizării cu politicile de planificare în timp de citire (adică SCHED_FIFO sau SCHED_RR). Utilizarea sched_yield() cu politici de planificare nedeterministe, cum ar fi SCHED_OTHER, este nespecificată și foarte probabil înseamnă că proiectarea aplicației dumneavoastră este defectă.
CONSULTAȚI ȘI¶
COLOFON -- NOTà FINALö
Această pagină face parte din versiunea 4.16 a proiectului Linux man-pages. O descriere a proiectului, informații despre raportarea erorilor și cea mai recentă versiune a acestei pagini pot fi găsite la https://www.kernel.org/doc/man-pages/.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost creată 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 septembrie 2017 | Linux |