diff options
Diffstat (limited to 'po/ru/man7/sched.7.po')
-rw-r--r-- | po/ru/man7/sched.7.po | 2178 |
1 files changed, 2178 insertions, 0 deletions
diff --git a/po/ru/man7/sched.7.po b/po/ru/man7/sched.7.po new file mode 100644 index 00000000..0b68b4ec --- /dev/null +++ b/po/ru/man7/sched.7.po @@ -0,0 +1,2178 @@ +# Russian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Alexander Golubev <fatzer2@gmail.com>, 2018. +# Azamat Hackimov <azamat.hackimov@gmail.com>, 2011, 2014-2016. +# Hotellook, 2014. +# Nikita <zxcvbnm3230@mail.ru>, 2014. +# Spiros Georgaras <sng@hellug.gr>, 2016. +# Vladislav <ivladislavefimov@gmail.com>, 2015. +# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019. +# Иван Павлов <pavia00@gmail.com>, 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 17:07+0100\n" +"PO-Revision-Date: 2019-10-15 18:55+0300\n" +"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" +"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Lokalize 2.0\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "B<sched>(7)" +msgid "sched" +msgstr "B<sched>(7)" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 октября 2023 г." + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Linux man-pages 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "ИМЯ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "sched - overview of CPU scheduling" +msgstr "sched - обзор планирования работы ЦП" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "ОПИСАНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.23, the default scheduler is CFS, the \"Completely Fair " +"Scheduler\". The CFS scheduler replaced the earlier \"O(1)\" scheduler." +msgstr "" +"Начиная с Linux 2.6.23 планировщиком по умолчанию является CFS — «полностью " +"честный планировщик» (Completely Fair Scheduler). Планировщик CFS заменил " +"использовавшийся ранее «O(1)»." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "API summary" +msgstr "Краткие сведения о программном интерфейсе" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Linux provides the following system calls for controlling the CPU scheduling " +"behavior, policy, and priority of processes (or, more precisely, threads)." +msgstr "" +"Для управления планированием, алгоритмом и приоритетом процессов (более " +"точно, нитей) на ЦП в Linux имеются следующие системные вызовы:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<nice>(2)" +msgstr "B<nice>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set a new nice value for the calling thread, and return the new nice value." +msgstr "" +"Назначает новое значение уступчивости вызвавшей нити и возвращает новое " +"значение уступчивости." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<getpriority>(2)" +msgstr "B<getpriority>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return the nice value of a thread, a process group, or the set of threads " +"owned by a specified user." +msgstr "" +"Возвращает значение уступчивости нити, группы процессов или набора нитей, " +"принадлежащих указанному пользователю." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<setpriority>(2)" +msgstr "B<setpriority>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the nice value of a thread, a process group, or the set of threads owned " +"by a specified user." +msgstr "" +"Изменяет значение уступчивости нити, группы процессов или набора нитей, " +"принадлежащих указанному пользователю." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setscheduler>(2)" +msgstr "B<sched_setscheduler>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the scheduling policy and parameters of a specified thread." +msgstr "Назначает алгоритм планирования и параметры заданной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getscheduler>(2)" +msgstr "B<sched_getscheduler>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the scheduling policy of a specified thread." +msgstr "Возвращает алгоритм планирования и параметры заданной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setparam>(2)" +msgstr "B<sched_setparam>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the scheduling parameters of a specified thread." +msgstr "Назначает параметры планирования заданной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getparam>(2)" +msgstr "B<sched_getparam>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Fetch the scheduling parameters of a specified thread." +msgstr "Возвращает параметры планирования заданной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_get_priority_max>(2)" +msgstr "B<sched_get_priority_max>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the maximum priority available in a specified scheduling policy." +msgstr "" +"Возвращает максимальный приоритет, доступный заданному алгоритму " +"планирования." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_get_priority_min>(2)" +msgstr "B<sched_get_priority_min>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the minimum priority available in a specified scheduling policy." +msgstr "" +"Возвращает минимальный приоритет, доступный заданному алгоритму планирования." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_rr_get_interval>(2)" +msgstr "B<sched_rr_get_interval>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Fetch the quantum used for threads that are scheduled under the \"round-" +"robin\" scheduling policy." +msgstr "" +"Возвращает квант, используемый нитями, которые запланированы " +"«циклическим» (round-robin) алгоритмом планирования." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_yield>(2)" +msgstr "B<sched_yield>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cause the caller to relinquish the CPU, so that some other thread be " +"executed." +msgstr "Заставляет вызывающего освободить ЦП для выполнения других нитей." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setaffinity>(2)" +msgstr "B<sched_setaffinity>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "(Linux-specific) Set the CPU affinity of a specified thread." +msgstr "(только в Linux) Назначить увязываемый ЦП указанной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getaffinity>(2)" +msgstr "B<sched_getaffinity>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "(Linux-specific) Get the CPU affinity of a specified thread." +msgstr "(только в Linux) Возвращает увязываемый ЦП указанной нити." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setattr>(2)" +msgstr "B<sched_setattr>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the scheduling policy and parameters of a specified thread. This (Linux-" +"specific) system call provides a superset of the functionality of " +"B<sched_setscheduler>(2) and B<sched_setparam>(2)." +msgstr "" +"Назначает алгоритм планирования и параметры заданной нити. Данный системный " +"вызов (есть только в Linux) предоставляет охватывающий набор возможностей " +"B<sched_setscheduler>(2) и B<sched_setparam>(2)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getattr>(2)" +msgstr "B<sched_getattr>(2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Fetch the scheduling policy and parameters of a specified thread. This " +"(Linux-specific) system call provides a superset of the functionality of " +"B<sched_getscheduler>(2) and B<sched_getparam>(2)." +msgstr "" +"Возвращает алгоритм планирования и параметры заданной нити. Данный системный " +"вызов (есть только в Linux) предоставляет охватывающий набор возможностей " +"B<sched_setscheduler>(2) и B<sched_setparam>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Scheduling policies" +msgstr "Алгоритмы планирования" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The scheduler is the kernel component that decides which runnable thread " +"will be executed by the CPU next. Each thread has an associated scheduling " +"policy and a I<static> scheduling priority, I<sched_priority>. The " +"scheduler makes its decisions based on knowledge of the scheduling policy " +"and static priority of all threads on the system." +msgstr "" +"Планировщик — это часть ядра, которая решает какая запущенная нить будет " +"выполняться процессором следующей. Каждой нити назначается алгоритм " +"планирования и I<статический> приоритет планирования, I<sched_priority>. " +"Планировщик принимает решение на основе данных об алгоритме планирования и " +"статическом приоритете всех нитей системы." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For threads scheduled under one of the normal scheduling policies " +"(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), I<sched_priority> is not " +"used in scheduling decisions (it must be specified as 0)." +msgstr "" +"Для нитей, которые планируются одним из обычных алгоритмом планирования " +"(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), значение I<sched_priority> " +"при принятии решения не используется (должен быть указан 0)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Processes scheduled under one of the real-time policies (B<SCHED_FIFO>, " +"B<SCHED_RR>) have a I<sched_priority> value in the range 1 (low) to 99 " +"(high). (As the numbers imply, real-time threads always have higher " +"priority than normal threads.) Note well: POSIX.1 requires an " +"implementation to support only a minimum 32 distinct priority levels for the " +"real-time policies, and some systems supply just this minimum. Portable " +"programs should use B<sched_get_priority_min>(2) and " +"B<sched_get_priority_max>(2) to find the range of priorities supported for " +"a particular policy." +msgstr "" +"Для процессов, которые планируются одним из алгоритмов реального времени " +"(B<SCHED_FIFO>, B<SCHED_RR>), значение приоритета I<sched_priority> лежит в " +"диапазоне от 1 (низкий) до 99 (высокий) Как и числовые значения, нити " +"реального времени всегда имеют более высокий приоритет чем обычные нити. Но " +"заметим: согласно POSIX.1 от реализации для алгоритмов реального времени " +"требуется поддержка только 32 различных уровней приоритета, и в некоторых " +"системах обеспечивается только этот минимум. В переносимых программах нужно " +"использовать вызовы B<sched_get_priority_min>(2) и " +"B<sched_get_priority_max>(2) для для определения диапазона приоритетов, " +"поддерживаемых определённым алгоритмом." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Conceptually, the scheduler maintains a list of runnable threads for each " +"possible I<sched_priority> value. In order to determine which thread runs " +"next, the scheduler looks for the nonempty list with the highest static " +"priority and selects the thread at the head of this list." +msgstr "" +"По существу, планировщик хранит в памяти списки всех работающих нитей для " +"каждого возможного значения I<sched_priority>. Чтобы определить какую нить " +"выполнять следующей, планировщик ищет непустой список с самым высоким " +"статическим приоритетом и выбирает нить из начала списка." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A thread's scheduling policy determines where it will be inserted into the " +"list of threads with equal static priority and how it will move inside this " +"list." +msgstr "" +"Алгоритм планирования определяет, в какое место списка будет добавлена нить " +"с тем же статическим приоритетом и как она будет перемещаться внутри этого " +"списка." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"All scheduling is preemptive: if a thread with a higher static priority " +"becomes ready to run, the currently running thread will be preempted and " +"returned to the wait list for its static priority level. The scheduling " +"policy determines the ordering only within the list of runnable threads with " +"equal static priority." +msgstr "" +"Всё планирование основано на вытеснении: если нить с высшим статическим " +"приоритетом готова к выполнению, текущая выполняющаяся нить будет вытеснена " +"и возвращена в список ожидания согласно своему уровню статического " +"приоритета. Алгоритм выполнения определяет порядок только внутри списка " +"готовых к выполнению нитей с одинаковым статическим приоритетом." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_FIFO: First in-first out scheduling" +msgstr "SCHED_FIFO: планировщик «первым вошёл — первым вышел»" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B<SCHED_FIFO> can be used only with static priorities higher than 0, " +#| "which means that when a B<SCHED_FIFO> threads becomes runnable, it will " +#| "always immediately preempt any currently running B<SCHED_OTHER>, " +#| "B<SCHED_BATCH>, or B<SCHED_IDLE> thread. B<SCHED_FIFO> is a simple " +#| "scheduling algorithm without time slicing. For threads scheduled under " +#| "the B<SCHED_FIFO> policy, the following rules apply:" +msgid "" +"B<SCHED_FIFO> can be used only with static priorities higher than 0, which " +"means that when a B<SCHED_FIFO> thread becomes runnable, it will always " +"immediately preempt any currently running B<SCHED_OTHER>, B<SCHED_BATCH>, or " +"B<SCHED_IDLE> thread. B<SCHED_FIFO> is a simple scheduling algorithm " +"without time slicing. For threads scheduled under the B<SCHED_FIFO> policy, " +"the following rules apply:" +msgstr "" +"Алгоритм B<SCHED_FIFO> можно использовать только со значениями статического " +"приоритета большими нуля. Это означает, что если нить с B<SCHED_FIFO> готова " +"к работе, то она сразу запустится, а все обычные нити с B<SCHED_OTHER>, " +"B<SCHED_BATCH> или B<SCHED_IDLE> будут приостановлены. B<SCHED_FIFO> — это " +"простой алгоритм планирования без квантования времени. Нити, работающие " +"согласно алгоритму B<SCHED_FIFO>, подчиняются следующим правилам:" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "\\[bu]" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A running B<SCHED_FIFO> thread that has been preempted by another thread of " +"higher priority will stay at the head of the list for its priority and will " +"resume execution as soon as all threads of higher priority are blocked again." +msgstr "" +"Нить, выполняемая с алгоритмом B<SCHED_FIFO> и вытесненная другой нитью с " +"большим приоритетом, останется в начале списка нитей с приоритетом как у " +"неё, и её исполнение будет продолжено сразу после того, как закончатся нити " +"с большими приоритетами." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When a blocked B<SCHED_FIFO> thread becomes runnable, it will be inserted at " +"the end of the list for its priority." +msgstr "" +"Когда заблокированная нить с алгоритмом B<SCHED_FIFO> готова к работе, она " +"помещается в конец списка нитей с приоритетом как у неё." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a call to B<sched_setscheduler>(2), B<sched_setparam>(2), " +"B<sched_setattr>(2), B<pthread_setschedparam>(3), or " +"B<pthread_setschedprio>(3) changes the priority of the running or runnable " +"B<SCHED_FIFO> thread identified by I<pid> the effect on the thread's " +"position in the list depends on the direction of the change to threads " +"priority:" +msgstr "" +"Если вызовом B<sched_setscheduler>(2), B<sched_setparam>(2), " +"B<sched_setattr>(2), B<pthread_setschedparam>(3) или " +"B<pthread_setschedprio>(3) изменяется приоритет выполняющейся или готовой к " +"выполнению нити B<SCHED_FIFO>, задаваемой I<pid>, то результат положения " +"нити в списке зависит от направления изменения приоритета нити:" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(a)" +msgstr "(а)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is raised, it is placed at the end of the list for " +"its new priority. As a consequence, it may preempt a currently running " +"thread with the same priority." +msgstr "" +"Если приоритет нити повышается, то она помещается в конец списка со своим " +"новым приоритетом. В результате, может быть вытеснена выполняемая в этот " +"момент нить с таким же приоритетом." + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(b)" +msgstr "(б)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is unchanged, its position in the run list is " +"unchanged." +msgstr "" +"Если приоритет нити не изменяется, то её положение в списке выполнения не " +"изменяется." + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(c)" +msgstr "(в)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is lowered, it is placed at the front of the list " +"for its new priority." +msgstr "" +"Если приоритет нити понижается, то она помещается в начало списка со своим " +"новым приоритетом." + +#. In Linux 2.2.x and Linux 2.4.x, the thread is placed at the front of the queue +#. In Linux 2.0.x, the Right Thing happened: the thread went to the back -- MTK +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"According to POSIX.1-2008, changes to a thread's priority (or policy) using " +"any mechanism other than B<pthread_setschedprio>(3) should result in the " +"thread being placed at the end of the list for its priority." +msgstr "" +"Согласно POSIX.1-2008 изменение приоритета нити (или алгоритма) с помощью " +"какого-либо механизма отличного от B<pthread_setschedprio>(3), должно " +"приводить к размещению нити в конец списка с её приоритетом." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A thread calling B<sched_yield>(2) will be put at the end of the list." +msgstr "Нить, вызывающая B<sched_yield>(2), будет помещена в конец списка." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"No other events will move a thread scheduled under the B<SCHED_FIFO> policy " +"in the wait list of runnable threads with equal static priority." +msgstr "" +"Других событий для перемещения нити с алгоритмом B<SCHED_FIFO> в списке " +"ожидания запускаемых нитей с одинаковым статическим приоритетом не " +"существует." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<SCHED_FIFO> thread runs until either it is blocked by an I/O request, it " +"is preempted by a higher priority thread, or it calls B<sched_yield>(2)." +msgstr "" +"Нить с алгоритмом B<SCHED_FIFO> выполняется до тех пор, пока не будет " +"заблокирована запросом ввода/вывода, вытеснена нитью с большим приоритетом " +"или пока не вызовет B<sched_yield>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_RR: Round-robin scheduling" +msgstr "SCHED_RR: планирование выполнения по циклу" + +#. On Linux 2.4, the length of the RR interval is influenced +#. by the process nice value -- MTK +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<SCHED_RR> is a simple enhancement of B<SCHED_FIFO>. Everything described " +"above for B<SCHED_FIFO> also applies to B<SCHED_RR>, except that each thread " +"is allowed to run only for a maximum time quantum. If a B<SCHED_RR> thread " +"has been running for a time period equal to or longer than the time quantum, " +"it will be put at the end of the list for its priority. A B<SCHED_RR> " +"thread that has been preempted by a higher priority thread and subsequently " +"resumes execution as a running thread will complete the unexpired portion of " +"its round-robin time quantum. The length of the time quantum can be " +"retrieved using B<sched_rr_get_interval>(2)." +msgstr "" +"B<SCHED_RR> — это просто улучшение B<SCHED_FIFO>. Всё, относящееся к " +"B<SCHED_FIFO>, справедливо и для B<SCHED_RR> за исключением того, что каждой " +"нити разрешено работать непрерывно не дольше максимального кванта времени. " +"Если нить с алгоритмом B<SCHED_RR> работала столько же или дольше, чем " +"квант, то она помещается в конец списка с тем же приоритетом. Нить с " +"алгоритмом B<SCHED_RR>, вытесненная нитью с большим приоритетом, возобновляя " +"работу, использует остаток своего кванта из старого цикла. Длину этого " +"кванта можно узнать, вызвав B<sched_rr_get_interval>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_DEADLINE: Sporadic task model deadline scheduling" +msgstr "SCHED_DEADLINE: Модель планирования случайной задачи с предельным сроком" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Since version 3.14, Linux provides a deadline scheduling policy " +#| "(B<SCHED_DEADLINE>). This policy is currently implemented using GEDF " +#| "(Global Earliest Deadline First) in conjunction with CBS (Constant " +#| "Bandwidth Server). To set and fetch this policy and associated " +#| "attributes, one must use the Linux-specific B<sched_setattr>(2) and " +#| "B<sched_getattr>(2) system calls." +msgid "" +"Since Linux 3.14, Linux provides a deadline scheduling policy " +"(B<SCHED_DEADLINE>). This policy is currently implemented using GEDF " +"(Global Earliest Deadline First) in conjunction with CBS (Constant " +"Bandwidth Server). To set and fetch this policy and associated attributes, " +"one must use the Linux-specific B<sched_setattr>(2) and " +"B<sched_getattr>(2) system calls." +msgstr "" +"Начиная с версии 3.14, в Linux появился алгоритм планирования с предельным " +"сроком (B<SCHED_DEADLINE>). Сейчас этот алгоритм реализован с помощью GEDF " +"(Global Earliest Deadline First) в совокупности с CBS (Constant Bandwidth " +"Server). Для назначения и выборки данного алгоритма и его атрибутов, нужно " +"использовать системные вызовы (есть только в Linux) B<sched_setattr>(2) и " +"B<sched_getattr>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A sporadic task is one that has a sequence of jobs, where each job is " +"activated at most once per period. Each job also has a I<relative " +"deadline>, before which it should finish execution, and a I<computation " +"time>, which is the CPU time necessary for executing the job. The moment " +"when a task wakes up because a new job has to be executed is called the " +"I<arrival time> (also referred to as the request time or release time). The " +"I<start time> is the time at which a task starts its execution. The " +"I<absolute deadline> is thus obtained by adding the relative deadline to the " +"arrival time." +msgstr "" +"Случайная задача — одна из последовательности заданий (jobs), где каждое " +"задание активизируется не более чем один раз за промежуток времени. Также у " +"каждого задания есть I<относительный крайний срок>, до которого оно должно " +"завершить выполнение и I<время вычисления> — время ЦП, необходимое для " +"выполнения задания. Момент, когда задача пробуждается из-за выполнения " +"нового задания, называется I<временем принятия (arrival time)> (его ещё " +"называют временем запроса (request time) или временем выпуска (release " +"time). I<Время начала> — это время когда задача начинает выполнение. " +"I<Абсолютный предельный срок> получается сложением относительного " +"предельного срока с временем принятия." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following diagram clarifies these terms:" +msgstr "Эти определения показаны в следующей диаграмме:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"arrival/wakeup absolute deadline\n" +" | start time |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>- comp. time -E<gt>|\n" +" |E<lt>------- relative deadline ------E<gt>|\n" +" |E<lt>-------------- period -------------------E<gt>|\n" +msgstr "" +"принятие/пробуждение абсолютный предельный срок\n" +" | время начала |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>- comp. time -E<gt>|\n" +" |E<lt>------- относительный предельный срок ------E<gt>|\n" +" |E<lt>-------------- промежуток времени -------------------E<gt>|\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When setting a B<SCHED_DEADLINE> policy for a thread using " +"B<sched_setattr>(2), one can specify three parameters: I<Runtime>, " +"I<Deadline>, and I<Period>. These parameters do not necessarily correspond " +"to the aforementioned terms: usual practice is to set Runtime to something " +"bigger than the average computation time (or worst-case execution time for " +"hard real-time tasks), Deadline to the relative deadline, and Period to the " +"period of the task. Thus, for B<SCHED_DEADLINE> scheduling, we have:" +msgstr "" +"При назначении нити алгоритма B<SCHED_DEADLINE> с помощью " +"B<sched_setattr>(2) можно указать три параметра: I<Runtime>, I<Deadline> и " +"I<Period>. Эти параметры не обязательно соответствуют вышеупомянутым " +"терминам: на практике, Runtime задаётся чуть больше чем среднее время " +"вычисления (или время вычисления в самом плохом варианте для задач жёсткого " +"реального времени), Deadline равен относительному предельному сроку, а " +"Period равен промежутку времени. Таким образом, при планировании " +"B<SCHED_DEADLINE> мы имеем:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"arrival/wakeup absolute deadline\n" +" | start time |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>-- Runtime -------E<gt>|\n" +" |E<lt>----------- Deadline -----------E<gt>|\n" +" |E<lt>-------------- Period -------------------E<gt>|\n" +msgstr "" +"принятие/пробуждение абсолютный предельный срок\n" +" | время начала |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>-- Runtime -------E<gt>|\n" +" |E<lt>----------- Deadline -----------E<gt>|\n" +" |E<lt>-------------- Period -------------------E<gt>|\n" + +#. FIXME It looks as though specifying sched_period as 0 means +#. "make sched_period the same as sched_deadline". +#. This needs to be documented. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The three deadline-scheduling parameters correspond to the I<sched_runtime>, " +"I<sched_deadline>, and I<sched_period> fields of the I<sched_attr> " +"structure; see B<sched_setattr>(2). These fields express values in " +"nanoseconds. If I<sched_period> is specified as 0, then it is made the same " +"as I<sched_deadline>." +msgstr "" +"Три параметра алгоритма с крайним сроком соответствуют полям " +"I<sched_runtime>, I<sched_deadline> и I<sched_period> структуры " +"I<sched_attr>; смотрите B<sched_setattr>(2). Значения этих полей задаются в " +"наносекундах. Если I<sched_period> равно 0, то его значение равно " +"I<sched_deadline>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The kernel requires that:" +msgstr "Для ядра требуется соблюдение условия:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid " sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n" +msgid "sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n" +msgstr " sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n" + +#. See __checkparam_dl in kernel/sched/core.c +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "In addition, under the current implementation, all of the parameter " +#| "values must be at least 1024 (i.e., just over one microsecond, which is " +#| "the resolution of the implementation), and less than 2^63. If any of " +#| "these checks fails, B<sched_setattr>(2) fails with the error B<EINVAL>." +msgid "" +"In addition, under the current implementation, all of the parameter values " +"must be at least 1024 (i.e., just over one microsecond, which is the " +"resolution of the implementation), and less than 2\\[ha]63. If any of these " +"checks fails, B<sched_setattr>(2) fails with the error B<EINVAL>." +msgstr "" +"Также, в текущей реализации, значения всех параметров должны быть не менее " +"1024 (т. е., чуть более одной микросекунды, ограничено в реализации) и " +"меньше 2^63. При нарушении ограничений B<sched_setattr>(2) завершается с " +"ошибкой B<EINVAL>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The CBS guarantees non-interference between tasks, by throttling threads " +"that attempt to over-run their specified Runtime." +msgstr "" +"CBS гарантирует отсутствие влияния задача друг на друга, регулируя " +"(throttling) нити, которые пытаются превысить заданное им время выполнения " +"(Runtime)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To ensure deadline scheduling guarantees, the kernel must prevent situations " +"where the set of B<SCHED_DEADLINE> threads is not feasible (schedulable) " +"within the given constraints. The kernel thus performs an admittance test " +"when setting or changing B<SCHED_DEADLINE> policy and attributes. This " +"admission test calculates whether the change is feasible; if it is not, " +"B<sched_setattr>(2) fails with the error B<EBUSY>." +msgstr "" +"Чтобы гарантировать выполнение алгоритма планирования крайнего срока, ядро " +"должно предотвращать ситуации, где установка B<SCHED_DEADLINE> нитям не " +"выполнима (не может быть запланирована) для указанных ограничений. Для этого " +"ядро выполняет тест допустимости при назначении или изменении алгоритма " +"B<SCHED_DEADLINE> и атрибутов. В данном тесте вычисляется, выполнимы ли " +"изменения; если нет, то B<sched_setattr>(2) завершается с ошибкой B<EBUSY>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For example, it is required (but not necessarily sufficient) for the total " +"utilization to be less than or equal to the total number of CPUs available, " +"where, since each thread can maximally run for Runtime per Period, that " +"thread's utilization is its Runtime divided by its Period." +msgstr "" +"Например, для этого требуется (но не обязательно достаточно), чтобы общая " +"загруженность была меньше или равной общему количеству доступных ЦП, так как " +"каждая нить максимально может работать весь промежуток времени, то есть " +"загруженность нити равна её Runtime, поделённый на Period." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In order to fulfill the guarantees that are made when a thread is admitted " +"to the B<SCHED_DEADLINE> policy, B<SCHED_DEADLINE> threads are the highest " +"priority (user controllable) threads in the system; if any B<SCHED_DEADLINE> " +"thread is runnable, it will preempt any thread scheduled under one of the " +"other policies." +msgstr "" +"Чтобы удовлетворить гарантиям, которые даются, когда нити назначен алгоритм " +"B<SCHED_DEADLINE>, нити с B<SCHED_DEADLINE> имеют наивысший приоритет " +"(управляется пользователем) по сравнению с другими нитями в системе; если " +"нить с B<SCHED_DEADLINE> запускается, то она вытеснит любую нить, " +"запланированную любым другим алгоритмом." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A call to B<fork>(2) by a thread scheduled under the B<SCHED_DEADLINE> " +"policy fails with the error B<EAGAIN>, unless the thread has its reset-on-" +"fork flag set (see below)." +msgstr "" +"Вызов B<fork>(2) в нити, запланированной B<SCHED_DEADLINE> завершается " +"ошибкой B<EAGAIN>, если у нити не установлен флаг reset-on-fork (смотрите " +"далее)." + +#. FIXME Calling sched_getparam() on a SCHED_DEADLINE thread +#. fails with EINVAL, but sched_getscheduler() succeeds. +#. Is that intended? (Why?) +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<SCHED_DEADLINE> thread that calls B<sched_yield>(2) will yield the " +"current job and wait for a new period to begin." +msgstr "" +"Нить с B<SCHED_DEADLINE>, вызывающая B<sched_yield>(2) приостановит текущее " +"задание и будет ждать начала нового промежутка времени." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_OTHER: Default Linux time-sharing scheduling" +msgstr "SCHED_OTHER: планирование с разделение времени (по умолчанию в Linux)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<SCHED_OTHER> can be used at only static priority 0 (i.e., threads under " +"real-time policies always have priority over B<SCHED_OTHER> processes). " +"B<SCHED_OTHER> is the standard Linux time-sharing scheduler that is intended " +"for all threads that do not require the special real-time mechanisms." +msgstr "" +"B<SCHED_OTHER> можно использовать только с статическим приоритетом 0 (то " +"есть, нити, работающие по алгоритму реального времени, всегда имеют " +"приоритет над процессами с B<SCHED_OTHER>). B<SCHED_OTHER> — это стандартный " +"планировщик Linux с разделением времени, предназначенный для всех нитей, не " +"требующих специальных механизмов реального времени." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The thread to run is chosen from the static priority 0 list based on a " +"I<dynamic> priority that is determined only inside this list. The dynamic " +"priority is based on the nice value (see below) and is increased for each " +"time quantum the thread is ready to run, but denied to run by the " +"scheduler. This ensures fair progress among all B<SCHED_OTHER> threads." +msgstr "" +"Для выполнения выбирается нить из списка со статическим приоритетом 0 на " +"основе I<динамического> приоритета, существующего только внутри этого " +"списка. Динамический приоритет основан на значении уступчивости (смотрите " +"ниже) и увеличивается с каждым квантом времени, при котором нить была готова " +"к работе, но ей было отказано в этом планировщиком. Таким образом время " +"равномерно распределяется между всеми нитями с алгоритмом B<SCHED_OTHER>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the Linux kernel source code, the B<SCHED_OTHER> policy is actually named " +"B<SCHED_NORMAL>." +msgstr "" +"В дереве исходного кода ядра Linux алгоритм B<SCHED_OTHER> на самом деле " +"называется B<SCHED_NORMAL>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The nice value" +msgstr "Значение уступчивости" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The nice value is an attribute that can be used to influence the CPU " +"scheduler to favor or disfavor a process in scheduling decisions. It " +"affects the scheduling of B<SCHED_OTHER> and B<SCHED_BATCH> (see below) " +"processes. The nice value can be modified using B<nice>(2), " +"B<setpriority>(2), or B<sched_setattr>(2)." +msgstr "" +"Значение уступчивости — это атрибут, который можно использовать для влияния " +"на планировщик ЦП с целью сделать процесс более популярным (или наоборот) " +"при принятии решений о планировании выполнения. Он учитывается при " +"планировании процессов с B<SCHED_OTHER> и B<SCHED_BATCH> (смотрите ниже). " +"Значение уступчивости можно изменять с помощью B<nice>(2), B<setpriority>(2) " +"или B<sched_setattr>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"According to POSIX.1, the nice value is a per-process attribute; that is, " +"the threads in a process should share a nice value. However, on Linux, the " +"nice value is a per-thread attribute: different threads in the same process " +"may have different nice values." +msgstr "" +"Согласно POSIX.1, значение уступчивости является атрибутом процесса; то есть " +"нити процесса должны иметь одинаковое значение уступчивости. Однако в Linux " +"значение уступчивости является атрибутом нити: разные нити одного процесса " +"могут иметь разные значения уступчивости." + +#. Linux before 1.3.36 had \-infinity..15. +#. Since Linux 1.3.43, Linux has the range \-20..19. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The range of the nice value varies across UNIX systems. On modern Linux, " +#| "the range is -20 (high priority) to +19 (low priority). On some other " +#| "systems, the range is -20..20. Very early Linux kernels (Before Linux " +#| "2.0) had the range -infinity..15." +msgid "" +"The range of the nice value varies across UNIX systems. On modern Linux, " +"the range is -20 (high priority) to +19 (low priority). On some other " +"systems, the range is -20..20. Very early Linux kernels (before Linux 2.0) " +"had the range -infinity..15." +msgstr "" +"Диапазон значений уступчивости различается в разных системах UNIX. В " +"современном Linux диапазон: -20 (высокий приоритет) по +19 (низкий " +"приоритет). В других системах диапазон равен -20..20. В самых первых версиях " +"ядра Linux (до Linux 2.0) диапазон равнялся -бесконечность..15." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The degree to which the nice value affects the relative scheduling of " +"B<SCHED_OTHER> processes likewise varies across UNIX systems and across " +"Linux kernel versions." +msgstr "" +"Степень влияния значения уступчивости на процессы с подобным B<SCHED_OTHER> " +"в разных системах UNIX различна и не одинакова даже между версиями ядра " +"Linux." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "With the advent of the CFS scheduler in kernel 2.6.23, Linux adopted an " +#| "algorithm that causes relative differences in nice values to have a much " +#| "stronger effect. In the current implementation, each unit of difference " +#| "in the nice values of two processes results in a factor of 1.25 in the " +#| "degree to which the scheduler favors the higher priority process. This " +#| "causes very low nice values (+19) to truly provide little CPU to a " +#| "process whenever there is any other higher priority load on the system, " +#| "and makes high nice values (-20) deliver most of the CPU to applications " +#| "that require it (e.g., some audio applications)." +msgid "" +"With the advent of the CFS scheduler in Linux 2.6.23, Linux adopted an " +"algorithm that causes relative differences in nice values to have a much " +"stronger effect. In the current implementation, each unit of difference in " +"the nice values of two processes results in a factor of 1.25 in the degree " +"to which the scheduler favors the higher priority process. This causes very " +"low nice values (+19) to truly provide little CPU to a process whenever " +"there is any other higher priority load on the system, and makes high nice " +"values (-20) deliver most of the CPU to applications that require it (e.g., " +"some audio applications)." +msgstr "" +"С появлением планировщика CFS в ядре 2.6.23, в Linux стал применяться " +"алгоритм, учитывающий относительную разницу значений уступчивости более " +"полно. В текущей реализации каждое различие на единицу между значениями " +"уступчивости двух процессов приводит к умножению приоритета на 1.25, с " +"которым планировщик отдаёт предпочтение процессу с более высоким " +"приоритетом. Это приводит к тому, что самые низкие значения уступчивости " +"(+19) действительно получают очень мало времени ЦП независимо от того, есть " +"ли высокая загрузка системы, и по высоким значениям уступчивости (-20) " +"даётся больше времени на ЦП приложениям, которым это нужно (например, " +"некоторым аудиоприложениям)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On Linux, the B<RLIMIT_NICE> resource limit can be used to define a limit to " +"which an unprivileged process's nice value can be raised; see " +"B<setrlimit>(2) for details." +msgstr "" +"Для задания ограничения, до которого можно повышать значение уступчивости " +"непривилегированному процессу, в используется Linux ограничение ресурса " +"B<RLIMIT_NICE>; смотрите B<setrlimit>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further details on the nice value, see the subsections on the autogroup " +"feature and group scheduling, below." +msgstr "" +"Дополнительную информацию о значении уступчивости смотрите подразделы " +"свойств автогруппировки и группового планирования ниже." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_BATCH: Scheduling batch processes" +msgstr "SCHED_BATCH: планирование для пакетных процессов" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(Since Linux 2.6.16.) B<SCHED_BATCH> can be used only at static priority " +"0. This policy is similar to B<SCHED_OTHER> in that it schedules the thread " +"according to its dynamic priority (based on the nice value). The difference " +"is that this policy will cause the scheduler to always assume that the " +"thread is CPU-intensive. Consequently, the scheduler will apply a small " +"scheduling penalty with respect to wakeup behavior, so that this thread is " +"mildly disfavored in scheduling decisions." +msgstr "" +"(начиная с Linux 2.6.16) B<SCHED_BATCH> можно использовать только с " +"статическим приоритетом равным нулю. Этот алгоритм похож на B<SCHED_OTHER> в " +"том, что он планирует выполнение нити на основе её динамического приоритета " +"(на основе значения nice). Различие в том, что в этом алгоритме планировщик " +"всегда предполагает, что нить, в основном, использует ЦП. Следовательно, " +"планировщик немного понизит вероятность её следующего пробуждения для того, " +"чтобы эта нить уступила другим при планировании." + +#. The following paragraph is drawn largely from the text that +#. accompanied Ingo Molnar's patch for the implementation of +#. SCHED_BATCH. +#. commit b0a9499c3dd50d333e2aedb7e894873c58da3785 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This policy is useful for workloads that are noninteractive, but do not want " +"to lower their nice value, and for workloads that want a deterministic " +"scheduling policy without interactivity causing extra preemptions (between " +"the workload's tasks)." +msgstr "" +"Этот алгоритм полезен при нагрузках не интерактивными задачами, но когда " +"нежелательно понижать их значение nice и для задач, которым требуется " +"предсказуемый алгоритм планирования без интерактивности, который приводит к " +"дополнительным вытеснениям (между задачами нагрузки)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_IDLE: Scheduling very low priority jobs" +msgstr "SCHED_IDLE: планирование заданий с очень низким приоритетом" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(Since Linux 2.6.23.) B<SCHED_IDLE> can be used only at static priority 0; " +"the process nice value has no influence for this policy." +msgstr "" +"(начиная с Linux 2.6.23) B<SCHED_IDLE> можно использовать только с " +"статическим приоритетом равным нулю; значение nice не учитывает в этом " +"алгоритме." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This policy is intended for running jobs at extremely low priority (lower " +"even than a +19 nice value with the B<SCHED_OTHER> or B<SCHED_BATCH> " +"policies)." +msgstr "" +"Данный алгоритм предназначен для выполнения заданий с чрезвычайно низким " +"приоритетом (даже ниже чем значение nice +19 в алгоритме B<SCHED_OTHER> или " +"B<SCHED_BATCH>)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Resetting scheduling policy for child processes" +msgstr "Сброс алгоритма планирования у дочерних процессов" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each thread has a reset-on-fork scheduling flag. When this flag is set, " +"children created by B<fork>(2) do not inherit privileged scheduling " +"policies. The reset-on-fork flag can be set by either:" +msgstr "" +"В каждой нити есть флаг планирования reset-on-fork. Когда этот флаг " +"установлен, потомки, создаваемые B<fork>(2), не наследуют привилегированные " +"алгоритмы планирования. Флаг reset-on-fork может быть задан так:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"ORing the B<SCHED_RESET_ON_FORK> flag into the I<policy> argument when " +"calling B<sched_setscheduler>(2) (since Linux 2.6.32); or" +msgstr "" +"Логическим сложением флага B<SCHED_RESET_ON_FORK> с аргументом I<policy> при " +"вызове B<sched_setscheduler>(2) (начиная с Linux 2.6.32); или" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"specifying the B<SCHED_FLAG_RESET_ON_FORK> flag in I<attr.sched_flags> when " +"calling B<sched_setattr>(2)." +msgstr "" +"заданием флага B<SCHED_FLAG_RESET_ON_FORK> в I<attr.sched_flags> при вызове " +"B<sched_setattr>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that the constants used with these two APIs have different names. The " +"state of the reset-on-fork flag can analogously be retrieved using " +"B<sched_getscheduler>(2) and B<sched_getattr>(2)." +msgstr "" +"Заметим, что константы, используемые в этих двух вызовам имеют разные имена. " +"Состояние флага reset-on-fork может быть получено аналогичным образом с " +"помощью B<sched_getscheduler>(2) и B<sched_getattr>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The reset-on-fork feature is intended for media-playback applications, and " +"can be used to prevent applications evading the B<RLIMIT_RTTIME> resource " +"limit (see B<getrlimit>(2)) by creating multiple child processes." +msgstr "" +"Возможность reset-on-fork предназначена для приложений, проигрывающих медиа-" +"файлы, и может использоваться для обхождения ограничения ресурса " +"B<RLIMIT_RTTIME> (см. B<getrlimit>(2)), посредством создания нескольких " +"дочерних процессов." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"More precisely, if the reset-on-fork flag is set, the following rules apply " +"for subsequently created children:" +msgstr "" +"Точнее говоря, если указан флаг reset-on-fork, то к новым потомкам " +"применяются следующие правила:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the calling thread has a scheduling policy of B<SCHED_FIFO> or " +"B<SCHED_RR>, the policy is reset to B<SCHED_OTHER> in child processes." +msgstr "" +"Если вызывающая нить имеет алгоритм планирования B<SCHED_FIFO> или " +"B<SCHED_RR>, то у потомков алгоритм сбрасывается в B<SCHED_OTHER>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the calling process has a negative nice value, the nice value is reset to " +"zero in child processes." +msgstr "" +"Если у вызывающего процесса значение nice отрицательно, то у потомков " +"значение nice сбрасывается в ноль." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"After the reset-on-fork flag has been enabled, it can be reset only if the " +"thread has the B<CAP_SYS_NICE> capability. This flag is disabled in child " +"processes created by B<fork>(2)." +msgstr "" +"После установки флага reset-on-fork его можно сбросить только, если нить " +"имеет мандат B<CAP_SYS_NICE>. Этот флаг выключается у потомков, созданных " +"через B<fork>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Privileges and resource limits" +msgstr "Привилегии и ограничения по ресурсам" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "In Linux kernels before 2.6.12, only privileged (B<CAP_SYS_NICE>) " +#| "threads can set a nonzero static priority (i.e., set a real-time " +#| "scheduling policy). The only change that an unprivileged thread can make " +#| "is to set the B<SCHED_OTHER> policy, and this can be done only if the " +#| "effective user ID of the caller matches the real or effective user ID of " +#| "the target thread (i.e., the thread specified by I<pid>) whose policy is " +#| "being changed." +msgid "" +"Before Linux 2.6.12, only privileged (B<CAP_SYS_NICE>) threads can set a " +"nonzero static priority (i.e., set a real-time scheduling policy). The only " +"change that an unprivileged thread can make is to set the B<SCHED_OTHER> " +"policy, and this can be done only if the effective user ID of the caller " +"matches the real or effective user ID of the target thread (i.e., the thread " +"specified by I<pid>) whose policy is being changed." +msgstr "" +"В ядрах Linux до версии 2.6.12, только привилегированные нити " +"(B<CAP_SYS_NICE>) могли устанавливать ненулевое значение статического " +"приоритета (т.е. алгоритм планирования реального времени). " +"Непривилегированные нити могли только установить алгоритм B<SCHED_OTHER>, и " +"это могло быть сделано только, если эффективный пользовательский " +"идентификатор вызывающего совпадал с реальным или эффективным " +"пользовательским идентификатором задаваемого нити (т.е., нити, указываемой в " +"I<pid>)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A thread must be privileged (B<CAP_SYS_NICE>) in order to set or modify a " +"B<SCHED_DEADLINE> policy." +msgstr "" +"Для задания или изменения B<SCHED_DEADLINE> нить должна быть " +"привилегированной (B<CAP_SYS_NICE>)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.12, the B<RLIMIT_RTPRIO> resource limit defines a ceiling on " +"an unprivileged thread's static priority for the B<SCHED_RR> and " +"B<SCHED_FIFO> policies. The rules for changing scheduling policy and " +"priority are as follows:" +msgstr "" +"Начиная с Linux 2.6.12, ограничитель ресурса B<RLIMIT_RTPRIO> определяет " +"максимум статического приоритета непривилегированной нити для алгоритмов " +"B<SCHED_RR> и B<SCHED_FIFO>. Правила для изменения алгоритма планирования и " +"приоритета:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If an unprivileged thread has a nonzero B<RLIMIT_RTPRIO> soft limit, then it " +"can change its scheduling policy and priority, subject to the restriction " +"that the priority cannot be set to a value higher than the maximum of its " +"current priority and its B<RLIMIT_RTPRIO> soft limit." +msgstr "" +"Если непривилегированная нить имеет ненулевое значение мягкого ограничения " +"B<RLIMIT_RTPRIO>, то она может изменять свой алгоритм планирования и " +"приоритет, но при этом значение приоритета не может быть больше чем " +"максимальное значение её текущего приоритета и его мягкого ограничения " +"B<RLIMIT_RTPRIO>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the B<RLIMIT_RTPRIO> soft limit is 0, then the only permitted changes are " +"to lower the priority, or to switch to a non-real-time policy." +msgstr "" +"Если мягкое ограничение B<RLIMIT_RTPRIO> равно 0, то разрешается только " +"снижать приоритет или переключиться на алгоритм выполнения не реального " +"времени." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Subject to the same rules, another unprivileged thread can also make these " +"changes, as long as the effective user ID of the thread making the change " +"matches the real or effective user ID of the target thread." +msgstr "" +"Согласно тем же самым правилам другая непривилегированная нить может также " +"сделать эти изменения, пока эффективный идентификатор пользователя нити, " +"производящей изменение, совпадает с реальным или эффективным идентификатором " +"пользователя изменяемой нити." + +#. commit c02aa73b1d18e43cfd79c2f193b225e84ca497c8 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Special rules apply for the B<SCHED_IDLE> policy. In Linux kernels " +#| "before 2.6.39, an unprivileged thread operating under this policy cannot " +#| "change its policy, regardless of the value of its B<RLIMIT_RTPRIO> " +#| "resource limit. In Linux kernels since 2.6.39, an unprivileged thread " +#| "can switch to either the B<SCHED_BATCH> or the B<SCHED_OTHER> policy so " +#| "long as its nice value falls within the range permitted by its " +#| "B<RLIMIT_NICE> resource limit (see B<getrlimit>(2))." +msgid "" +"Special rules apply for the B<SCHED_IDLE> policy. Before Linux 2.6.39, an " +"unprivileged thread operating under this policy cannot change its policy, " +"regardless of the value of its B<RLIMIT_RTPRIO> resource limit. Since Linux " +"2.6.39, an unprivileged thread can switch to either the B<SCHED_BATCH> or " +"the B<SCHED_OTHER> policy so long as its nice value falls within the range " +"permitted by its B<RLIMIT_NICE> resource limit (see B<getrlimit>(2))." +msgstr "" +"Для политики B<SCHED_IDLE> применяются специальные правила. В ядрах Linux до " +"версии 2.6.39, сменить политику работы непривилегированной нити нельзя, " +"независимо от значения её ограничителя ресурсов B<RLIMIT_RTPRIO>. В ядрах " +"Linux начиная с версии 2.6.39, непривилегированная нить может переключиться " +"на политику B<SCHED_BATCH> или B<SCHED_OTHER>, если её значение уступчивости " +"находится в диапазоне, разрешённом ей ограничителем ресурсов B<RLIMIT_NICE> " +"(см. B<getrlimit>(2))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Privileged (B<CAP_SYS_NICE>) threads ignore the B<RLIMIT_RTPRIO> limit; as " +"with older kernels, they can make arbitrary changes to scheduling policy and " +"priority. See B<getrlimit>(2) for further information on B<RLIMIT_RTPRIO>." +msgstr "" +"Для привилегированных (B<CAP_SYS_NICE>) нитей ограничение B<RLIMIT_RTPRIO> " +"игнорируется; как в старых ядрах, они могут произвольно менять алгоритм " +"планирования и приоритет. Подробней смотрите в B<getrlimit>(2) про " +"B<RLIMIT_RTPRIO>." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Limiting the CPU usage of real-time and deadline processes" +msgstr "Ограничение использование ЦП процессами реального времени и процессами с крайним сроком" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "A nonblocking infinite loop in a thread scheduled under the " +#| "B<SCHED_FIFO>, B<SCHED_RR>, or B<SCHED_DEADLINE> policy can potentially " +#| "block all other threads from accessing the CPU forever. Prior to Linux " +#| "2.6.25, the only way of preventing a runaway real-time process from " +#| "freezing the system was to run (at the console) a shell scheduled under " +#| "a higher static priority than the tested application. This allows an " +#| "emergency kill of tested real-time applications that do not block or " +#| "terminate as expected." +msgid "" +"A nonblocking infinite loop in a thread scheduled under the B<SCHED_FIFO>, " +"B<SCHED_RR>, or B<SCHED_DEADLINE> policy can potentially block all other " +"threads from accessing the CPU forever. Before Linux 2.6.25, the only way " +"of preventing a runaway real-time process from freezing the system was to " +"run (at the console) a shell scheduled under a higher static priority than " +"the tested application. This allows an emergency kill of tested real-time " +"applications that do not block or terminate as expected." +msgstr "" +"Неблокирующий бесконечный цикл в нити, запланированной алгоритмами " +"B<SCHED_FIFO>, B<SCHED_RR> или B<SCHED_DEADLINE> потенциально может привести " +"к вечному блокированию остальных нитей. До Linux 2.6.25 был только один " +"способ предотвращения заморозки системы бесконтрольными процессами реального " +"времени — запуск (с консоли) оболочки с наивысшим статическим приоритетом, " +"большим чем тестируемое приложение. Это позволяло экстренно прибить " +"тестируемое приложение реального времени, которое не блокируется или " +"завершается как положено." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.25, there are other techniques for dealing with runaway real-" +"time and deadline processes. One of these is to use the B<RLIMIT_RTTIME> " +"resource limit to set a ceiling on the CPU time that a real-time process may " +"consume. See B<getrlimit>(2) for details." +msgstr "" +"Начиная с Linux 2.6.25, есть другие способы работы с процессами реального " +"времени и процессами с крайним сроком. Один из них — использовать " +"ограничитель ресурса B<RLIMIT_RTTIME>, задав потолок времени ЦП, которое " +"процесс реального времени может задействовать. Подробней смотрите в " +"B<getrlimit>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Since version 2.6.25, Linux also provides two I</proc> files that can be " +#| "used to reserve a certain amount of CPU time to be used by non-real-time " +#| "processes. Reserving CPU time in this fashion allows some CPU time to be " +#| "allocated to (say) a root shell that can be used to kill a runaway " +#| "process. Both of these files specify time values in microseconds:" +msgid "" +"Since Linux 2.6.25, Linux also provides two I</proc> files that can be used " +"to reserve a certain amount of CPU time to be used by non-real-time " +"processes. Reserving CPU time in this fashion allows some CPU time to be " +"allocated to (say) a root shell that can be used to kill a runaway process. " +"Both of these files specify time values in microseconds:" +msgstr "" +"Начиная с версии 2.6.25, в Linux также предоставляется два файла в I</proc>, " +"которые можно использовать для резервирования определённого количества " +"времени ЦП, используемое процессами нереального времени. Резервирование " +"некоторого количества ЦП подобным образом позволяет оставить время на том же " +"ЦП (скажем) оболочке root, через которую можно завершить неконтролируемый " +"процесс. В этих файлах значение времени указывается в микросекундах:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I</proc/sys/kernel/sched_rt_period_us>" +msgstr "I</proc/sys/kernel/sched_rt_period_us>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This file specifies a scheduling period that is equivalent to 100% CPU " +"bandwidth. The value in this file can range from 1 to B<INT_MAX>, giving an " +"operating range of 1 microsecond to around 35 minutes. The default value in " +"this file is 1,000,000 (1 second)." +msgstr "" +"В данном файле задаётся планируемый промежуток времени, который равен 100% " +"полосы ЦП. Значение в этом файле может лежать в диапазоне от 1 до " +"B<INT_MAX>, что даёт рабочий диапазон от 1 микросекунды до, приблизительно, " +"35 минут. Значение в файле по умолчанию равно 1000000 (1 секунда)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I</proc/sys/kernel/sched_rt_runtime_us>" +msgstr "I</proc/sys/kernel/sched_rt_runtime_us>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The value in this file specifies how much of the \"period\" time can be " +#| "used by all real-time and deadline scheduled processes on the system. " +#| "The value in this file can range from -1 to B<INT_MAX>-1. Specifying -1 " +#| "makes the run time the same as the period; that is, no CPU time is set " +#| "aside for non-real-time processes (which was the Linux behavior before " +#| "kernel 2.6.25). The default value in this file is 950,000 (0.95 " +#| "seconds), meaning that 5% of the CPU time is reserved for processes that " +#| "don't run under a real-time or deadline scheduling policy." +msgid "" +"The value in this file specifies how much of the \"period\" time can be used " +"by all real-time and deadline scheduled processes on the system. The value " +"in this file can range from -1 to B<INT_MAX>-1. Specifying -1 makes the run " +"time the same as the period; that is, no CPU time is set aside for non-real-" +"time processes (which was the behavior before Linux 2.6.25). The default " +"value in this file is 950,000 (0.95 seconds), meaning that 5% of the CPU " +"time is reserved for processes that don't run under a real-time or deadline " +"scheduling policy." +msgstr "" +"Значением в этом файле определяется насколько большой промежуток времени " +"может использоваться всеми процессами реального времени и процессами с " +"крайним сроком в системе. Диапазон значений: от -1 до B<INT_MAX>-1. Значение " +"-1 означает, что время выполнения равно промежутку времени; то есть нет " +"времени ЦП для приложений нереального времени (что соответствует поведению " +"Linux до версии ядра 2.6.25). Значение по умолчанию равно 950000 (0.95 " +"секунды), означающее, что 5% времени ЦП зарезервировано для процессов, " +"планирование которых выполняется не по алгоритму реального времени или " +"алгоритму с крайним сроком." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Response time" +msgstr "Время ответа" + +#. as described in +#. .BR request_irq (9). +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A blocked high priority thread waiting for I/O has a certain response time " +"before it is scheduled again. The device driver writer can greatly reduce " +"this response time by using a \"slow interrupt\" interrupt handler." +msgstr "" +"Блокированная нить с высоким приоритетом, ожидающая ввода/вывода, " +"освобождает достаточно много процессорного времени до того, как снова начнёт " +"работать. Авторы драйверов устройств могут более эффективно использовать это " +"время, если воспользуются «медленным» обработчиком прерываний." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Miscellaneous" +msgstr "Разное" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Child processes inherit the scheduling policy and parameters across a " +"B<fork>(2). The scheduling policy and parameters are preserved across " +"B<execve>(2)." +msgstr "" +"Дочерние процессы наследуют алгоритм планирования и его параметры после " +"B<fork>(2). Алгоритм планирования и параметры сохраняются при вызове " +"B<execve>(2)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Memory locking is usually needed for real-time processes to avoid paging " +"delays; this can be done with B<mlock>(2) or B<mlockall>(2)." +msgstr "" +"Обычно, процессам реального времени необходимо блокировать память для того, " +"чтобы избежать задержек при страничном обмене. Это можно сделать при помощи " +"вызова B<mlock>(2) или B<mlockall>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The autogroup feature" +msgstr "Свойство автогруппировки" + +#. commit 5091faa449ee0b7d73bc296a93bca9540fc51d0a +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.38, the kernel provides a feature known as autogrouping to " +"improve interactive desktop performance in the face of multiprocess, CPU-" +"intensive workloads such as building the Linux kernel with large numbers of " +"parallel build processes (i.e., the B<make>(1) B<-j> flag)." +msgstr "" +"Начиная с Linux 2.6.38 в ядре появилось свойство, называемое " +"автогруппировкой; оно улучшает интерактивность рабочего окружения несмотря " +"на многопроцессную интенсивную нагрузку ЦП, такую как сборка ядра Linux " +"большим количеством параллельно собирающих процессов (т. е., командой " +"B<make>(1) с флагом B<-j>)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This feature operates in conjunction with the CFS scheduler and requires a " +"kernel that is configured with B<CONFIG_SCHED_AUTOGROUP>. On a running " +"system, this feature is enabled or disabled via the file I</proc/sys/kernel/" +"sched_autogroup_enabled>; a value of 0 disables the feature, while a value " +"of 1 enables it. The default value in this file is 1, unless the kernel was " +"booted with the I<noautogroup> parameter." +msgstr "" +"Данное свойств работает совместно с планировщиком CFS, и ядро должно быть " +"собрано с параметром B<CONFIG_SCHED_AUTOGROUP>. В работающей системе " +"свойство можно включать и выключать через файл I</proc/sys/kernel/" +"sched_autogroup_enabled>; значение 0 выключает свойство, а 1 — включает. " +"Значение по умолчанию равно 1, если ядро не загружалось с параметром " +"I<noautogroup>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A new autogroup is created when a new session is created via B<setsid>(2); " +"this happens, for example, when a new terminal window is started. A new " +"process created by B<fork>(2) inherits its parent's autogroup membership. " +"Thus, all of the processes in a session are members of the same autogroup. " +"An autogroup is automatically destroyed when the last process in the group " +"terminates." +msgstr "" +"Новая автогруппа создаётся при создании нового сеанса с помощью " +"B<setsid>(2); например, это происходит при запуске нового окна терминала. " +"Новый процесс, созданный B<fork>(2), наследует членство в автогруппе " +"родителя. Таким образом, все процессы в сеансе являются членами одной " +"автогруппы. Автогруппа автоматически уничтожается при завершении последнего " +"процесса в группе." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When autogrouping is enabled, all of the members of an autogroup are placed " +"in the same kernel scheduler \"task group\". The CFS scheduler employs an " +"algorithm that equalizes the distribution of CPU cycles across task groups. " +"The benefits of this for interactive desktop performance can be described " +"via the following example." +msgstr "" +"При включенной автогруппировке все члены автогруппы помещаются в в одну " +"«группу задач» планировщика ядра. Планировщик CFS использует алгоритм, " +"который уравнивает раздачу циклов ЦП между задачами группы. Преимущество " +"такого подхода заключается в улучшении интерактивности рабочего стола, " +"которую можно описать следующим примером." + +#. Mike Galbraith, 25 Nov 2016: +#. I'd say something more wishy-washy here, like cycles are +#. distributed fairly across groups and leave it at that, as your +#. detailed example is incorrect due to SMP fairness (which I don't +#. like much because [very unlikely] worst case scenario +#. renders a box sized group incapable of utilizing more that +#. a single CPU total). For example, if a group of NR_CPUS +#. size competes with a singleton, load balancing will try to give +#. the singleton a full CPU of its very own. If groups intersect for +#. whatever reason on say my quad lappy, distribution is 80/20 in +#. favor of the singleton. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Suppose that there are two autogroups competing for the same CPU (i.e., " +#| "presume either a single CPU system or the use of B<taskset>(1) to " +#| "confine all the processes to the same CPU on an SMP system). The first " +#| "group contains ten CPU-bound processes from a kernel build started with " +#| "I<make\\ -j10>. The other contains a single CPU-bound process: a video " +#| "player. The effect of autogrouping is that the two groups will each " +#| "receive half of the CPU cycles. That is, the video player will receive " +#| "50% of the CPU cycles, rather than just 9% of the cycles, which would " +#| "likely lead to degraded video playback. The situation on an SMP system " +#| "is more complex, but the general effect is the same: the scheduler " +#| "distributes CPU cycles across task groups such that an autogroup that " +#| "contains a large number of CPU-bound processes does not end up hogging " +#| "CPU cycles at the expense of the other jobs on the system." +msgid "" +"Suppose that there are two autogroups competing for the same CPU (i.e., " +"presume either a single CPU system or the use of B<taskset>(1) to confine " +"all the processes to the same CPU on an SMP system). The first group " +"contains ten CPU-bound processes from a kernel build started with I<make\\~-" +"j10>. The other contains a single CPU-bound process: a video player. The " +"effect of autogrouping is that the two groups will each receive half of the " +"CPU cycles. That is, the video player will receive 50% of the CPU cycles, " +"rather than just 9% of the cycles, which would likely lead to degraded video " +"playback. The situation on an SMP system is more complex, but the general " +"effect is the same: the scheduler distributes CPU cycles across task groups " +"such that an autogroup that contains a large number of CPU-bound processes " +"does not end up hogging CPU cycles at the expense of the other jobs on the " +"system." +msgstr "" +"Предположим, что есть две автогруппы, выполняющиеся на одном ЦП (т. е., " +"используется система с одним ЦП или с помощью B<taskset>(1) все процессы " +"вытеснены на один ЦП в многопроцессорной системе). Первая группа содержит 10 " +"привязанных к ЦП процессов, запущенных для сборки ядра I<make\\ -j10>. " +"Вторая группа содержит один привязанный к ЦП процесс: видеопроигрыватель. Из-" +"за автогруппировки в том, что каждая из групп получит половину циклов ЦП. То " +"есть, видеопроигрыватель получит 50% циклов ЦП, а не 9% циклов, что, " +"вероятно, привело бы к ухудшению воспроизведения. Ситуация в " +"многопроцессорных системах несколько сложнее, но результат тот же самый: " +"планировщик распределит циклы ЦП между группами задач и автогруппа с большим " +"количеством привязанных к ЦП процессов не истратит все циклы ЦП с ущербом " +"других задач, выполняемых системой." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "A process's autogroup (task group) membership can be viewed via the file " +#| "I</proc/[pid]/autogroup>:" +msgid "" +"A process's autogroup (task group) membership can be viewed via the file I</" +"proc/>pidI</autogroup>:" +msgstr "" +"Членство автогруппы процесса (группу задач) можно увидеть через файл I</proc/" +"[pid]/autogroup>:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"$ B<cat /proc/1/autogroup>\n" +"/autogroup-1 nice 0\n" +msgstr "" +"$ B<cat /proc/1/autogroup>\n" +"/autogroup-1 nice 0\n" + +#. FIXME . +#. Because of a bug introduced in Linux 4.7 +#. (commit 2159197d66770ec01f75c93fb11dc66df81fd45b made changes +#. that exposed the fact that autogroup didn't call scale_load()), +#. it happened that *all* values in this range caused a task group +#. to be further disfavored by the scheduler, with \-20 resulting +#. in the scheduler mildly disfavoring the task group and +19 greatly +#. disfavoring it. +#. A patch was posted on 23 Nov 2016 +#. ("sched/autogroup: Fix 64bit kernel nice adjustment"; +#. check later to see in which kernel version it lands. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This file can also be used to modify the CPU bandwidth allocated to an " +"autogroup. This is done by writing a number in the \"nice\" range to the " +"file to set the autogroup's nice value. The allowed range is from +19 (low " +"priority) to -20 (high priority). (Writing values outside of this range " +"causes B<write>(2) to fail with the error B<EINVAL>.)" +msgstr "" +"Также этот файл можно использовать для изменения полосы пропускания ЦП, " +"выделенной автогруппе. Для этого в файл записывается диапазон " +"«уступчивости», задающий значение уступчивости автогруппы. Допускаемый " +"диапазон: от +19 (низкий приоритет) до -20 (высокий приоритет) (запись через " +"B<write>(2) значений вне это диапазона приводит к ошибке B<EINVAL>)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The autogroup nice setting has the same meaning as the process nice value, " +"but applies to distribution of CPU cycles to the autogroup as a whole, based " +"on the relative nice values of other autogroups. For a process inside an " +"autogroup, the CPU cycles that it receives will be a product of the " +"autogroup's nice value (compared to other autogroups) and the process's " +"nice value (compared to other processes in the same autogroup." +msgstr "" +"Значение уступчивости автогруппы означает тоже самое что и значение " +"уступчивости процесса, но распространяется на циклы ЦП автогруппы в целом, " +"основываясь на относительных значениях уступчивости других автогрупп. Для " +"процесса внутри автогруппы количество циклов ЦП, которые он получит, равно " +"произведению значения уступчивости автогруппы (по сравнению с другими " +"автогруппами) и значению уступчивости процесса (по сравнению с другими " +"процессам в той же автогруппе)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The use of the B<cgroups>(7) CPU controller to place processes in cgroups " +"other than the root CPU cgroup overrides the effect of autogrouping." +msgstr "" +"Использование контроллера ЦП B<cgroups>(7) для размещения процессов в cgroup " +"не равную корневой cgroup ЦП, отменяет эффект автогруппировки." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The autogroup feature groups only processes scheduled under non-real-time " +"policies (B<SCHED_OTHER>, B<SCHED_BATCH>, and B<SCHED_IDLE>). It does not " +"group processes scheduled under real-time and deadline policies. Those " +"processes are scheduled according to the rules described earlier." +msgstr "" +"Свойство автогруппировки группирует только процессы, планируемые алгоритмами " +"не реального времени (B<SCHED_OTHER>, B<SCHED_BATCH> и B<SCHED_IDLE>). Оно " +"не группирует процессы, планируемые алгоритмами реального времени и с " +"предельным сроком (deadline). Такие процессы планируются согласно правилам, " +"описанным ранее." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The nice value and group scheduling" +msgstr "Значение уступчивости и групповое планирование" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When scheduling non-real-time processes (i.e., those scheduled under the " +"B<SCHED_OTHER>, B<SCHED_BATCH>, and B<SCHED_IDLE> policies), the CFS " +"scheduler employs a technique known as \"group scheduling\", if the kernel " +"was configured with the B<CONFIG_FAIR_GROUP_SCHED> option (which is typical)." +msgstr "" +"При планировании процессов не реального времени (т. е., планируемых по " +"алгоритмам B<SCHED_OTHER>, B<SCHED_BATCH> и B<SCHED_IDLE>), планировщик CFS " +"использует технику называемую «групповое планирование», если ядро было " +"собрано с параметром B<CONFIG_FAIR_GROUP_SCHED> (обычно так и есть)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Under group scheduling, threads are scheduled in \"task groups\". Task " +"groups have a hierarchical relationship, rooted under the initial task group " +"on the system, known as the \"root task group\". Task groups are formed in " +"the following circumstances:" +msgstr "" +"При групповом планировании нити планируются по «группам задач». Группы задач " +"имеют иерархические связи, берущие начало от начальной группы задач системы, " +"называемой «корневая группа задач». Группы задач формируются согласно " +"следующему:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"All of the threads in a CPU cgroup form a task group. The parent of this " +"task group is the task group of the corresponding parent cgroup." +msgstr "" +"Все нити в cgroup ЦП образуют группу задач. Родитель этой группы задач " +"является группой задач соответствующей родительской cgroup." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is enabled, then all of the threads that are (implicitly) " +"placed in an autogroup (i.e., the same session, as created by B<setsid>(2)) " +"form a task group. Each new autogroup is thus a separate task group. The " +"root task group is the parent of all such autogroups." +msgstr "" +"Если автогруппировка разрешена, то все нити, помещённые (неявно) в " +"автогруппу (т. е., одного сеанса, созданного B<setsid>(2)), образуют группу " +"задач. Таким образом, каждая новая автогруппа является отдельной группой " +"задач. Корневая группа задач является родителем всех этих автогрупп." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is enabled, then the root task group consists of all " +"processes in the root CPU cgroup that were not otherwise implicitly placed " +"into a new autogroup." +msgstr "" +"Если автогруппировка разрешена, то корневая группа задач состоит из всех " +"процессов в корневой cgroup ЦП, которые не были неявно помещены в новую " +"автогруппу." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is disabled, then the root task group consists of all " +"processes in the root CPU cgroup." +msgstr "" +"Если автогруппировка запрещена, то корневая группа задач состоит из всех " +"процессов в корневой cgroup ЦП." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If group scheduling was disabled (i.e., the kernel was configured without " +"B<CONFIG_FAIR_GROUP_SCHED>), then all of the processes on the system are " +"notionally placed in a single task group." +msgstr "" +"Если групповое планирование было запрещено (т. е., ядро собрано без " +"параметра B<CONFIG_FAIR_GROUP_SCHED>), то все процессы системы условно " +"помещаются в одну группу задач." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Under group scheduling, a thread's nice value has an effect for scheduling " +"decisions I<only relative to other threads in the same task group>. This " +"has some surprising consequences in terms of the traditional semantics of " +"the nice value on UNIX systems. In particular, if autogrouping is enabled " +"(which is the default in various distributions), then employing " +"B<setpriority>(2) or B<nice>(1) on a process has an effect only for " +"scheduling relative to other processes executed in the same session " +"(typically: the same terminal window)." +msgstr "" +"При групповом планировании значение уступчивости нити влияет на решение о " +"планировании I<только относительно других нитей в той же группе задач>. Это " +"слегка удивляет с точки зрения обычной семантики значения уступчивости в " +"системах UNIX. В частности, если автогруппировка разрешена (по умолчанию во " +"многих дистрибутивах), то применение к процессу B<setpriority>(2) или " +"B<nice>(1) подействует только на планирование относительно других процессов, " +"выполняющихся в том же сеансе (обычно, в том же окне терминала)." + +#. More succinctly: the nice(1) command is in many cases a no-op since +#. Linux 2.6.38. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Conversely, for two processes that are (for example) the sole CPU-bound " +"processes in different sessions (e.g., different terminal windows, each of " +"whose jobs are tied to different autogroups), I<modifying the nice value of " +"the process in one of the sessions> I<has no effect> in terms of the " +"scheduler's decisions relative to the process in the other session. A " +"possibly useful workaround here is to use a command such as the following to " +"modify the autogroup nice value for I<all> of the processes in a terminal " +"session:" +msgstr "" +"И наоборот, для двух процессов, которые (например) являются единственными " +"привязанными к ЦП процессами в в разных сеансах (например, различные окна " +"терминалов, в каждом задачи составляют разные автогруппы), I<изменение " +"значения уступчивости процесса в одном из сеансов> I<не повлияет> на " +"принятие решения планировщиком относительно процесса в другом сеансе. " +"Возможно, здесь полезным обходным решением будет использовать команду, " +"изменяющую значение уступчивости автогруппы I<всех> процессов в сеансе " +"терминала:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "$ B<echo 10 E<gt> /proc/self/autogroup>\n" +msgstr "$ B<echo 10 E<gt> /proc/self/autogroup>\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Real-time features in the mainline Linux kernel" +msgstr "Возможности выполнения в реальном времени из оригинальной версии Linux" + +#. FIXME . Probably this text will need some minor tweaking +#. ask Carsten Emde about this. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Since kernel version 2.6.18, Linux is gradually becoming equipped with " +#| "real-time capabilities, most of which are derived from the former " +#| "I<realtime-preempt> patch set. Until the patches have been completely " +#| "merged into the mainline kernel, they must be installed to achieve the " +#| "best real-time performance. These patches are named:" +msgid "" +"Since Linux 2.6.18, Linux is gradually becoming equipped with real-time " +"capabilities, most of which are derived from the former I<realtime-preempt> " +"patch set. Until the patches have been completely merged into the mainline " +"kernel, they must be installed to achieve the best real-time performance. " +"These patches are named:" +msgstr "" +"Начиная с версии ядра 2.6.18, Linux постепенно обрастает возможностями " +"выполнения в реальном времени, большая часть которых взята из раннего набора " +"заплат I<realtime-preempt>. Пока заплатки не были полностью включены в " +"основное ядро, их нужно было устанавливать отдельно. Файлы заплаток " +"называются:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "patch-I<kernelversion>-rtI<patchversion>\n" +msgstr "patch-I<версия_ядра>-rtI<версия_заплатки>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"and can be downloaded from E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/" +"kernel\\:/projects\\:/rt/> E<.UE .>" +msgstr "" +"и могут быть скачаны с E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/" +"kernel\\:/projects\\:/rt/> E<.UE .>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Without the patches and prior to their full inclusion into the mainline " +"kernel, the kernel configuration offers only the three preemption classes " +"B<CONFIG_PREEMPT_NONE>, B<CONFIG_PREEMPT_VOLUNTARY>, and " +"B<CONFIG_PREEMPT_DESKTOP> which respectively provide no, some, and " +"considerable reduction of the worst-case scheduling latency." +msgstr "" +"Без заплаток и до их полного включения в оригинальное ядро, через параметры " +"ядра предлагается только три класса вытеснения: B<CONFIG_PREEMPT_NONE>, " +"B<CONFIG_PREEMPT_VOLUNTARY> и B<CONFIG_PREEMPT_DESKTOP>, которые, " +"соответственно, не сокращают, частично сокращают и значительно сокращают " +"задержку планирования при наихудшем случае." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"With the patches applied or after their full inclusion into the mainline " +"kernel, the additional configuration item B<CONFIG_PREEMPT_RT> becomes " +"available. If this is selected, Linux is transformed into a regular real-" +"time operating system. The FIFO and RR scheduling policies are then used to " +"run a thread with true real-time priority and a minimum worst-case " +"scheduling latency." +msgstr "" +"С заплатками и после их полного включения в оригинальное ядро, в параметрах " +"ядра появится новый пункт B<CONFIG_PREEMPT_RT>. Если он будет выбран, то " +"Linux преобразуется в обычную операционную систему реального времени. После " +"этого для выполнения нити с настоящим приоритетом реального времени и " +"минимальной задержкой планирования в наихудшем случае используются алгоритмы " +"планирования FIFO и RR." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "ЗАМЕЧАНИЯ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<cgroups>(7) CPU controller can be used to limit the CPU consumption " +"of groups of processes." +msgstr "" +"Для ограничения групп процессов потребления ЦП можно использовать контроллер " +"ЦП B<cgroups>(7)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "Originally, Standard Linux was intended as a general-purpose operating " +#| "system being able to handle background processes, interactive " +#| "applications, and less demanding real-time applications (applications " +#| "that need to usually meet timing deadlines). Although the Linux kernel " +#| "2.6 allowed for kernel preemption and the newly introduced O(1) scheduler " +#| "ensures that the time needed to schedule is fixed and deterministic " +#| "irrespective of the number of active tasks, true real-time computing was " +#| "not possible up to kernel version 2.6.17." +msgid "" +"Originally, Standard Linux was intended as a general-purpose operating " +"system being able to handle background processes, interactive applications, " +"and less demanding real-time applications (applications that need to usually " +"meet timing deadlines). Although the Linux 2.6 allowed for kernel " +"preemption and the newly introduced O(1) scheduler ensures that the time " +"needed to schedule is fixed and deterministic irrespective of the number of " +"active tasks, true real-time computing was not possible up to Linux 2.6.17." +msgstr "" +"Изначально стандартный Linux представлял собой операционную систему общего " +"назначения для выполнения как фоновых процессов, так и интерактивных " +"приложений, а также нетребовательных приложений реального времени " +"(приложений, которым желательно, чтобы задержки и интервалы времени " +"выдерживались). Хотя ядро Linux 2.6 позволяет вытеснение и новый планировщик " +"O(1) обеспечивает необходимое постоянство планирования и предсказуемое " +"независимое количество активных задач, настоящая работа в реальном времени " +"стала доступна начиная с версии ядра 2.6.17." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "СМ. ТАКЖЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<chcpu>(1), B<chrt>(1), B<lscpu>(1), B<ps>(1), B<taskset>(1), B<top>(1), " +"B<getpriority>(2), B<mlock>(2), B<mlockall>(2), B<munlock>(2), " +"B<munlockall>(2), B<nice>(2), B<sched_get_priority_max>(2), " +"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getparam>(2), " +"B<sched_getscheduler>(2), B<sched_rr_get_interval>(2), " +"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), " +"B<sched_yield>(2), B<setpriority>(2), B<pthread_getaffinity_np>(3), " +"B<pthread_getschedparam>(3), B<pthread_setaffinity_np>(3), " +"B<sched_getcpu>(3), B<capabilities>(7), B<cpuset>(7)" +msgstr "" +"B<chcpu>(1), B<chrt>(1), B<lscpu>(1), B<ps>(1), B<taskset>(1), B<top>(1), " +"B<getpriority>(2), B<mlock>(2), B<mlockall>(2), B<munlock>(2), " +"B<munlockall>(2), B<nice>(2), B<sched_get_priority_max>(2), " +"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getparam>(2), " +"B<sched_getscheduler>(2), B<sched_rr_get_interval>(2), " +"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), " +"B<sched_yield>(2), B<setpriority>(2), B<pthread_getaffinity_np>(3), " +"B<pthread_getschedparam>(3), B<pthread_setaffinity_np>(3), " +"B<sched_getcpu>(3), B<capabilities>(7), B<cpuset>(7)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<Programming for the real world - POSIX.4> by Bill O.\\& Gallmeister, " +"O'Reilly & Associates, Inc., ISBN 1-56592-074-0." +msgstr "" +"I<Programming for the real world - POSIX.4> by Bill O.\\& Gallmeister, " +"O'Reilly & Associates, Inc., ISBN 1-56592-074-0." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The Linux kernel source files I<Documentation/scheduler/sched-deadline." +#| "txt>, I<Documentation/scheduler/sched-rt-group.txt>, I<Documentation/" +#| "scheduler/sched-design-CFS.txt>, and I<Documentation/scheduler/sched-nice-" +#| "design.txt>" +msgid "" +"The Linux kernel source files I<\\%Documentation/\\:scheduler/\\:sched-" +"deadline\\:.txt>, I<\\%Documentation/\\:scheduler/\\:sched-rt-group\\:.txt>, " +"I<\\%Documentation/\\:scheduler/\\:sched-design-CFS\\:.txt>, and I<\\" +"%Documentation/\\:scheduler/\\:sched-nice-design\\:.txt>" +msgstr "" +"Исходные файлы ядра Linux I<Documentation/scheduler/sched-deadline.txt>, " +"I<Documentation/scheduler/sched-rt-group.txt>, I<Documentation/scheduler/" +"sched-design-CFS.txt> и I<Documentation/scheduler/sched-nice-design.txt>" + +#. type: TH +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "2023-02-10" +msgstr "10 февраля 2023 г." + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Linux man-pages 6.03" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Linux man-pages 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Linux man-pages 6.04" |