.\" -*- coding: UTF-8 -*- .\" Copyright 2014, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sched_setscheduler 2 "8 lutego 2026 r." "Linux man\-pages 6.18" .SH NAZWA sched_setscheduler, sched_getscheduler \- ustawia i pobiera algorytm/parametry szeregowania zadań .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP,\ \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBint sched_setscheduler(pid_t \fP\fIpid\fP\fB, int \fP\fIpolicy\fP\fB,\fP \fB const struct sched_param *\fP\fIparam\fP\fB);\fP \fBint sched_getscheduler(pid_t \fP\fIpid\fP\fB);\fP .fi .SH OPIS Wywołanie systemowe \fBsched_getscheduler\fP ustawia zarówno algorytm jak i parametry szeregowania zadań wątku, którego identyfikator podano w \fIpid\fP. Jeśli \fIpid\fP jest równe zeru, to ustawiany jest algorytm i parametry szeregowania zadań wątku wywołującego. .P Parametry szeregowania zadań są określane w argumencie \fIparam\fP, który jest wskaźnikiem do struktury w następującej postaci: .P .in +4n .EX struct sched_param { ... int sched_priority; ... }; .EE .in .P W bieżącej implementacji, struktura zawiera tylko jedno pole: \fIsched_priority\fP. Interpretacja \fIparam\fP zależy od wybranego algorytmu. .P Obecnie, Linux obsługuje następujące \[Bq]zwykłe\[rq] (tj. nie czasu rzeczywistego) algorytmy szeregowania zadań, które można podać jako wartości \fIpolicy\fP: .TP 14 \fBSCHED_OTHER\fP .\" In the 2.6 kernel sources, SCHED_OTHER is actually called .\" SCHED_NORMAL. standardowy algorytm dzielenia czasu za pomocą szeregowania rotacyjnego; .TP \fBSCHED_BATCH\fP do wykonywania procesów w stylu \[Bq]wsadowym\[rq] oraz .TP \fBSCHED_IDLE\fP do uruchamiania zadań tła, o \fIbardzo\fP niskim priorytecie. .P Dla każdego z powyższych algorytmów, \fIparam\->sched_priority\fP musi wynosić 0. .P Obsługiwane są również różne algorytmy \[Bq]czasu rzeczywistego\[rq], nadające się do specjalnych aplikacji, gdzie krytyczna jest precyzyjna kontrola nad sposobem, w jaki działające wątki są wybierane do wykonania. Aby dowiedzieć się więcej o zasadach regulujących okoliczności, w jakich wątki procesu mogą używać tych algorytmów, należy zapoznać się z podręcznikiem \fBsched\fP(7). Algorytmy czasu rzeczywistego, jakie można określić w \fIpolicy\fP to: .TP 14 \fBSCHED_FIFO\fP algorytm: pierwszy na wejściu, pierwszy na wyjściu oraz .TP \fBSCHED_RR\fP szeregowanie rotacyjne (karuzelowe). .P Dla każdego z powyższych algorytmów, \fIparam\->sched_priority\fP określa priorytet szeregowania zadań dla wątku. Jest to liczba w zakresie zwracanym przez wywołanie \fBsched_get_priority_min\fP(2) i \fBsched_get_priority_max\fP(2) z podanym \fIpolicy\fP. W Linuksie te wywołania systemowe zwracają, odpowiednio: 1 i 99. .P Od Linuksa 2.6.32, znacznik \fBSCHED_RESET_ON_FORK\fP może być zsumowany logicznie (OR) w \fIpolicy\fP, przy wywoływaniu \fBsched_setscheduler\fP(). Dzięki podaniu tego znacznika, potomkowie utworzeni przez \fBfork\fP(2) nie dziedziczą uprzywilejowanych algorytmów szeregowania zadań. Więcej informacji w podręczniku \fBsched\fP(7). .P \fBsched_getscheduler\fP() zwraca bieżący algorytm szeregowania zadań, który dotyczy wątku określonego przez \fIpid\fP. Jeśli \fIpid\fP jest równe zeru, to pobierany jest algorytm dotyczący wątku wywołującego. .SH "WARTOŚĆ ZWRACANA" Po pomyślnym zakończeniu, \fBsched_setscheduler\fP() zwraca zero. Po pomyślnym zakończeniu, \fBsched_getscheduler\fP zwraca algorytm dotyczący wątku (nieujemna liczba całkowita). Po błędzie, oba wywołania zwracają \-1 i ustawiają \fIerrno\fP wskazując błąd. .SH BŁĘDY .TP \fBEINVAL\fP Nieprawidłowe argumenty: \fIpid\fP jest ujemne lub \fIparam\fP wynosi NULL. .TP \fBEINVAL\fP (\fBsched_setscheduler\fP()) \fIpolicy\fP nie jest jednym ze znanych algorytmów. .TP \fBEINVAL\fP (\fBsched_setscheduler\fP()) \fIparam\fP nie ma sensu w podanym \fIpolicy\fP. .TP \fBEPERM\fP Wątek wywołujący nie ma odpowiednich przywilejów. .TP \fBESRCH\fP Nie znaleziono wątku o identyfikatorze równym \fIpid\fP. .SH WERSJE POSIX.1 nie określa szczegółowo, jakich uprawnień wymaga wątek nieuprzywilejowany, do wywołania \fBsched_setscheduler\fP(), a detale te różnią się między systemami. Przykładowo, strona podręcznika systemu Solaris 7 informuje, że rzeczywisty lub efektywny identyfikator użytkownika wywołującego musi odpowiadać rzeczywistemu identyfikatorowi użytkownika lub zapisanemu set\-user\-ID celu. .P Algorytm i parametry szeregowania zadań są w Linuksie w rzeczywistości atrybutami przypisanymi wątkowi. Wartość zwracaną przez wywołanie \fBgettid\fP(2) można przekazać w argumencie \fIpid\fP. Podanie \fIpid\fP równego 0 będzie oznaczało działanie na atrybutach wątku wywołującego, a przekazanie wartości zwróconej przez wywołanie \fBgetpid\fP(2), będzie oznaczało działanie na atrybutach głównego wątku w grupie wątku (jeśli korzysta się z interfejsu programistycznego wątków POSIX, należy korzystać z \fBpthread_setschedparam\fP(3), \fBpthread_getschedparam\fP(3) i \fBpthread_setschedprio\fP(3), zamiast z wywołań systemowych \fBsched_*\fP(2)). .SH STANDARDY POSIX.1\-2024 (lecz zob. USTERKI poniżej). .P \fBSCHED_BATCH\fP() i \fBSCHED_IDLE\fP() są typowo linuksowe. .SH HISTORIA POSIX.1\-2001. .SH UWAGI Dalsze szczegóły odnośnie semantyki wszystkich powyższych algorytmów szeregowania zadań \[Bq]zwykłych\[rq] i \[Bq]czasu rzeczywistego\[rq] opisano w podręczniku systemowym \fBsched\fP(7). Zawarto tam także opis dodatkowego algorytmu, \fBSCHED_DEADLINE\fP, który można ustawić jedynie za pomocą \fBsched_setattr\fP(2). .P Systemy POSIX\-owe, na których dostępne są \fBsched_setscheduler\fP() i \fBsched_getscheduler\fP(), definiują w \fI\fP \fB_POSIX_PRIORITY_SCHEDULING\fP. .SH USTERKI POSIX.1 wskazuje, że przy powodzeniu, \fBsched_setscheduler\fP() powinno zwrócić poprzedni algorytm szeregowania zadań. \fBsched_setscheduler\fP() w Linuksie nie jest zgodne z tym wymaganiem, ponieważ w przypadku powodzenia zawsze zwraca 0. .SH "ZOBACZ TAKŻE" .ad l .nh \fBchrt\fP(1), \fBnice\fP(2), \fBsched_get_priority_max\fP(2), \fBsched_get_priority_min\fP(2), \fBsched_getaffinity\fP(2), \fBsched_getattr\fP(2), \fBsched_getparam\fP(2), \fBsched_rr_get_interval\fP(2), \fBsched_setaffinity\fP(2), \fBsched_setattr\fP(2), \fBsched_setparam\fP(2), \fBsched_yield\fP(2), \fBsetpriority\fP(2), \fBcapabilities\fP(7), \fBcpuset\fP(7), \fBsched\fP(7) .ad .PP .SH TŁUMACZENIE Tłumaczenie niniejszej strony podręcznika: Przemek Borys , Andrzej Krzysztofowicz i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .