'\" t .\" Title: taskset .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Comenzi utilizator .\" Source: util-linux 2.41 .\" Language: English .\" .TH "TASKSET" "1" "2025-03-29" "util\-linux 2.41" "Comenzi utilizator" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NUME" taskset \- stabilește sau recuperează afinitatea CPU a unui proces .SH "REZUMAT" .sp \fBtaskset\fP [opțiuni] \fImasca comanda\fP [\fIargument\fP...] .sp \fBtaskset\fP [opțiuni] \fB\-p\fP [\fImasca\fP] \fIpid\fP .SH "DESCRIERE" .sp Comanda \fBtaskset\fP este utilizată pentru a stabili sau a prelua afinitatea CPU a unui proces în curs de execuție, având în vedere \fIpid\-ul\fP acestuia, sau pentru a lansa o nouă \fIcomandă\fP cu o anumită afinitate CPU. Afinitatea CPU este o proprietate a planificatorului care „leagă” un proces de un anumit set de CPU\-uri din sistem. Planificatorul Linux va respecta afinitatea CPU dată, iar procesul nu va rula pe alte CPU\-uri. Rețineți că planificatorul Linux acceptă și afinitatea naturală a CPU: planificatorul încearcă să mențină procesele pe același CPU cât mai mult timp posibil din motive de performanță. Prin urmare, forțarea unei afinități CPU specifice este utilă numai în anumite aplicații. Afinitatea unor procese, cum ar fi firele per\-CPU ale nucleului, nu poate fi definită. .sp Afinitatea CPU este reprezentată ca o mască de biți, cu bitul de ordinul cel mai mic corespunzând primei CPU logice și bitul de ordinul cel mai mare corespunzând ultimei CPU logice. Este posibil să nu existe toate CPU\-urile pe un anumit sistem, dar o mască poate specifica mai multe CPU\-uri decât cele prezente. O mască recuperată va reflecta numai biții care corespund CPU\-urilor aflate fizic în sistem. În cazul în care se indică o mască nevalidă (adică una care nu corespunde niciunui CPU valid de pe sistemul curent), se returnează o eroare. Măștile pot fi specificate în hexazecimal (cu sau fără un "0x" de început) sau sub forma unei liste de CPU\-uri cu ajutorul opțiunii \fB\-\-cpu\-list\fP. De exemplu, .sp \fB0x00000001\fP .RS 4 reprezintă procesorul nr. 0, .RE .sp \fB0x00000003\fP .RS 4 reprezintă procesoarele nr. 0 și nr. 1, .RE .sp \fBFFFFFFFF\fP .RS 4 reprezintă procesoarele de la nr. 0 la nr. 31, .RE .sp \fB0x32\fP .RS 4 reprezintă procesoarele nr. 1, nr. 4 și nr. 5, .RE .sp \fB\-\-cpu\-list 0\-2,6\fP .RS 4 reprezintă procesoarele nr. 0, nr. 1, nr. 2 și nr. 6. .RE .sp \fB\-\-cpu\-list 0\-10:2\fP .RS 4 reprezintă procesoarele nr. 0, nr. 2, nr. 4, nr. 6, nr. 8 și nr. 10. Sufixul „:N” specifică intervalul de valori, de exemplu 0\-10:3 este interpretat ca fiind lista 0,3,6,9. .RE .sp Când \fBtaskset\fP returnează, se garantează că programul dat a fost planificat pentru un procesor (CPU) legal. .SH "OPȚIUNI" .sp \fB\-a\fP, \fB\-\-all\-tasks\fP .RS 4 Stabilește sau recuperează atributele de planificare ale tuturor sarcinilor (fire de execuție) pentru PID\-ul furnizat. .RE .sp \fB\-c\fP, \fB\-\-cpu\-list\fP .RS 4 Interpretează \fImasca\fP ca o listă numerică de procesoare în loc de o mască de biți. Numerele sunt separate prin virgule și pot include intervale. De exemplu: \fB0,5,8\-11\fP. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 Operează pe un PID existent și nu lansează o sarcină nouă. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Afișează acest mesaj de ajutor și iese. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Afișează versiunea și iese. .RE .SH "UTILIZARE" .sp Comportamentul implicit este de a rula o nouă comandă cu o mască de afinitate dată: .RS 4 \fBtaskset\fP \fImasca\fP \fIcomanda\fP [\fIargumente\fP] .RE .sp De asemenea, puteți prelua afinitatea CPU a unei sarcini existente: .RS 4 \fBtaskset \-p\fP \fIpid\fP .RE .sp Sau s\-o stabiliți: .RS 4 \fBtaskset \-p\fP \fImasca pid\fP .RE .sp Când se specifică o listă de cpu\-uri pentru un proces existent, opțiunile \fB\-p\fP și \fB\-c\fP trebuie să fie grupate împreună: .RS 4 \fBtaskset \-pc\fP \fIcpu\-list pid\fP .RE .sp Forma \fB\-\-cpu\-list\fP se aplică numai pentru lansarea de noi comenzi: .RS 4 \fBtaskset \-\-cpu\-list\fP \fIcpu\-list comanda\fP .RE .SH "PERMISIUNI" .sp Un utilizator poate modifica afinitatea CPU a unui proces aparținând aceluiași utilizator. Un utilizator trebuie să posede \fBCAP_SYS_NICE\fP pentru a modifica afinitatea CPU a unui proces aparținând unui alt utilizator. Un utilizator poate prelua masca de afinitate a oricărui proces. .SH "VALOAREA RETURNATĂ" .sp \fBtaskset\fP returnează 0 în acest mod de obținere a afinităților atât timp cât există PID\-ul furnizat. .sp \fBtaskset\fP returnează 0 în modul său de stabilire a afinității atât timp cât apelul de sistem \fBsched_setaffinity\fP(2) care stă la baza acestuia o face. Succesul comenzii nu garantează faptul că firul specificat a migrat efectiv către procesorul (procesoarele) indicat(e), ci doar că firul nu va migra către un procesor aflat în afara noii măști de afinitate. De exemplu, afinitatea firului nucleului kswapd poate fi definită, dar este posibil ca firul să nu migreze imediat și nu este garantat că o va face vreodată: .sp $ ps ax \-o comm,psr,pid | grep kswapd + .br kswapd0 4 82 + .br $ sudo taskset \-p 1 82 + .br pid 82\(cqs current affinity mask: 1 + .br pid 82\(cqs new affinity mask: 1 + .br $ echo $? + .br 0 + .br $ ps ax \-o comm,psr,pid | grep kswapd + .br kswapd0 4 82 + .br $ taskset \-p 82 + .br pid 82\(cqs current affinity mask: 1 .br .sp În schimb, atunci când utilizatorul specifică o afinitate ilegală, taskset va afișa o eroare și va returna 1: .sp $ ps ax \-o comm,psr,pid | grep ksoftirqd/0 + .br ksoftirqd/0 0 14 + .br $ sudo taskset \-p 1 14 + .br pid 14\(cqs current affinity mask: 1 + .br taskset: failed to set pid 14\(cqs affinity: Invalid argument + .br $ echo $? + .br 1 .br .SH "AUTORI" .sp Scris de Robert M. Love. .SH "DREPTURI DE AUTOR" .sp Drepturi de autor © 2004 Robert M. Love. Acesta este un software liber; consultați sursa pentru condițiile de copiere. Nu există nicio garanție; nici măcar pentru COMERCIALIZARE sau ADECVARE LA UN SCOP PARTICULAR. .SH "CONSULTAȚI ȘI" .sp \fBchrt\fP(1), \fBnice\fP(1), \fBrenice\fP(1), \fBsched_getaffinity\fP(2), \fBsched_setaffinity\fP(2) .sp Consultați \fBsched\fP(7) pentru o descriere a schemei de planificare Linux. .SH "RAPORTAREA ERORILOR" .sp Pentru rapoarte de eroare, folosiți \c .URL "https://github.com/util\-linux/util\-linux/issues" "sistemul de urmărire al erorilor" "." .SH "DISPONIBILITATE" .sp Comanda \fBtaskset\fP face parte din pachetul util\-linux care poate fi descărcat de la \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."