# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Alexander Golubev , 2018. # Azamat Hackimov , 2011, 2014-2016. # Hotellook, 2014. # Nikita , 2014. # Spiros Georgaras , 2016. # Vladislav , 2015. # Yuri Kozlov , 2011-2019. # Иван Павлов , 2017. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-06-01 06:19+0200\n" "PO-Revision-Date: 2019-10-15 18:55+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \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(7)" msgid "sched" msgstr "B(7)" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 мая 2024 г." #. type: TH #: archlinux debian-unstable #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages 6.8" msgstr "Linux man-pages 6.7" #. 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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2)" msgstr "B(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(2) and B(2)." msgstr "" "Назначает алгоритм планирования и параметры заданной нити. Данный системный " "вызов (есть только в Linux) предоставляет охватывающий набор возможностей " "B(2) и B(2)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B(2)" msgstr "B(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(2) and B(2)." msgstr "" "Возвращает алгоритм планирования и параметры заданной нити. Данный системный " "вызов (есть только в Linux) предоставляет охватывающий набор возможностей " "B(2) и B(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 scheduling priority, I. The " "scheduler makes its decisions based on knowledge of the scheduling policy " "and static priority of all threads on the system." msgstr "" "Планировщик — это часть ядра, которая решает какая запущенная нить будет " "выполняться процессором следующей. Каждой нити назначается алгоритм " "планирования и I<статический> приоритет планирования, I. " "Планировщик принимает решение на основе данных об алгоритме планирования и " "статическом приоритете всех нитей системы." #. 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, B, B), I is not " "used in scheduling decisions (it must be specified as 0)." msgstr "" "Для нитей, которые планируются одним из обычных алгоритмом планирования " "(B, B, B), значение I " "при принятии решения не используется (должен быть указан 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, " "B) have a I 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(2) and " "B(2) to find the range of priorities supported for " "a particular policy." msgstr "" "Для процессов, которые планируются одним из алгоритмов реального времени " "(B, B), значение приоритета I лежит в " "диапазоне от 1 (низкий) до 99 (высокий) Как и числовые значения, нити " "реального времени всегда имеют более высокий приоритет чем обычные нити. Но " "заметим: согласно POSIX.1 от реализации для алгоритмов реального времени " "требуется поддержка только 32 различных уровней приоритета, и в некоторых " "системах обеспечивается только этот минимум. В переносимых программах нужно " "использовать вызовы B(2) и " "B(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 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. Чтобы определить какую нить " "выполнять следующей, планировщик ищет непустой список с самым высоким " "статическим приоритетом и выбирает нить из начала списка." #. 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 can be used only with static priorities higher than 0, " #| "which means that when a B threads becomes runnable, it will " #| "always immediately preempt any currently running B, " #| "B, or B thread. B is a simple " #| "scheduling algorithm without time slicing. For threads scheduled under " #| "the B policy, the following rules apply:" msgid "" "B can be used only with static priorities higher than 0, which " "means that when a B thread becomes runnable, it will always " "immediately preempt any currently running B, B, or " "B thread. B is a simple scheduling algorithm " "without time slicing. For threads scheduled under the B policy, " "the following rules apply:" msgstr "" "Алгоритм B можно использовать только со значениями статического " "приоритета большими нуля. Это означает, что если нить с B готова " "к работе, то она сразу запустится, а все обычные нити с B, " "B или B будут приостановлены. B — это " "простой алгоритм планирования без квантования времени. Нити, работающие " "согласно алгоритму B, подчиняются следующим правилам:" #. 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 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 и вытесненная другой нитью с " "большим приоритетом, останется в начале списка нитей с приоритетом как у " "неё, и её исполнение будет продолжено сразу после того, как закончатся нити " "с большими приоритетами." #. 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 thread becomes runnable, it will be inserted at " "the end of the list for its priority." msgstr "" "Когда заблокированная нить с алгоритмом B готова к работе, она " "помещается в конец списка нитей с приоритетом как у неё." #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, fuzzy #| msgid "" #| "If a call to B(2), B(2), " #| "B(2), B(3), or " #| "B(3) changes the priority of the running or " #| "runnable B thread identified by I the effect on the " #| "thread's position in the list depends on the direction of the change to " #| "threads priority:" msgid "" "If a call to B(2), B(2), " "B(2), B(3), or " "B(3) changes the priority of the running or runnable " "B thread identified by I the effect on the thread's " "position in the list depends on the direction of the change to the thread's " "priority:" msgstr "" "Если вызовом B(2), B(2), " "B(2), B(3) или " "B(3) изменяется приоритет выполняющейся или готовой к " "выполнению нити B, задаваемой I, то результат положения " "нити в списке зависит от направления изменения приоритета нити:" #. 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(3) should result in the " "thread being placed at the end of the list for its priority." msgstr "" "Согласно POSIX.1-2008 изменение приоритета нити (или алгоритма) с помощью " "какого-либо механизма отличного от B(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(2) will be put at the end of the list." msgstr "Нить, вызывающая B(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 policy " "in the wait list of runnable threads with equal static priority." msgstr "" "Других событий для перемещения нити с алгоритмом B в списке " "ожидания запускаемых нитей с одинаковым статическим приоритетом не " "существует." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A B thread runs until either it is blocked by an I/O request, it " "is preempted by a higher priority thread, or it calls B(2)." msgstr "" "Нить с алгоритмом B выполняется до тех пор, пока не будет " "заблокирована запросом ввода/вывода, вытеснена нитью с большим приоритетом " "или пока не вызовет B(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 is a simple enhancement of B. Everything described " "above for B also applies to B, except that each thread " "is allowed to run only for a maximum time quantum. If a B 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 " "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(2)." msgstr "" "B — это просто улучшение B. Всё, относящееся к " "B, справедливо и для B за исключением того, что каждой " "нити разрешено работать непрерывно не дольше максимального кванта времени. " "Если нить с алгоритмом B работала столько же или дольше, чем " "квант, то она помещается в конец списка с тем же приоритетом. Нить с " "алгоритмом B, вытесненная нитью с большим приоритетом, возобновляя " "работу, использует остаток своего кванта из старого цикла. Длину этого " "кванта можно узнать, вызвав B(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). 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(2) and " #| "B(2) system calls." msgid "" "Since Linux 3.14, Linux provides a deadline scheduling policy " "(B). 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(2) and " "B(2) system calls." msgstr "" "Начиная с версии 3.14, в Linux появился алгоритм планирования с предельным " "сроком (B). Сейчас этот алгоритм реализован с помощью GEDF " "(Global Earliest Deadline First) в совокупности с CBS (Constant Bandwidth " "Server). Для назначения и выборки данного алгоритма и его атрибутов, нужно " "использовать системные вызовы (есть только в Linux) B(2) и " "B(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, before which it should finish execution, and a I, 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 (also referred to as the request time or release time). The " "I is the time at which a task starts its execution. The " "I 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- comp. time -E|\n" " |E------- relative deadline ------E|\n" " |E-------------- period -------------------E|\n" msgstr "" "принятие/пробуждение абсолютный предельный срок\n" " | время начала |\n" " | | |\n" " v v v\n" "-----x--------xooooooooooooooooo--------x--------x---\n" " |E- comp. time -E|\n" " |E------- относительный предельный срок ------E|\n" " |E-------------- промежуток времени -------------------E|\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 policy for a thread using " "B(2), one can specify three parameters: I, " "I, and I. 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 scheduling, we have:" msgstr "" "При назначении нити алгоритма B с помощью " "B(2) можно указать три параметра: I, I и " "I. Эти параметры не обязательно соответствуют вышеупомянутым " "терминам: на практике, Runtime задаётся чуть больше чем среднее время " "вычисления (или время вычисления в самом плохом варианте для задач жёсткого " "реального времени), Deadline равен относительному предельному сроку, а " "Period равен промежутку времени. Таким образом, при планировании " "B мы имеем:" #. 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-- Runtime -------E|\n" " |E----------- Deadline -----------E|\n" " |E-------------- Period -------------------E|\n" msgstr "" "принятие/пробуждение абсолютный предельный срок\n" " | время начала |\n" " | | |\n" " v v v\n" "-----x--------xooooooooooooooooo--------x--------x---\n" " |E-- Runtime -------E|\n" " |E----------- Deadline -----------E|\n" " |E-------------- Period -------------------E|\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, " "I, and I fields of the I " "structure; see B(2). These fields express values in " "nanoseconds. If I is specified as 0, then it is made the same " "as I." msgstr "" "Три параметра алгоритма с крайним сроком соответствуют полям " "I, I и I структуры " "I; смотрите B(2). Значения этих полей задаются в " "наносекундах. Если I равно 0, то его значение равно " "I." #. 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= sched_deadline E= sched_period\n" msgid "sched_runtime E= sched_deadline E= sched_period\n" msgstr " sched_runtime E= sched_deadline E= 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(2) fails with the error B." 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(2) fails with the error B." msgstr "" "Также, в текущей реализации, значения всех параметров должны быть не менее " "1024 (т. е., чуть более одной микросекунды, ограничено в реализации) и " "меньше 2^63. При нарушении ограничений B(2) завершается с " "ошибкой B." #. 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 threads is not feasible (schedulable) " "within the given constraints. The kernel thus performs an admittance test " "when setting or changing B policy and attributes. This " "admission test calculates whether the change is feasible; if it is not, " "B(2) fails with the error B." msgstr "" "Чтобы гарантировать выполнение алгоритма планирования крайнего срока, ядро " "должно предотвращать ситуации, где установка B нитям не " "выполнима (не может быть запланирована) для указанных ограничений. Для этого " "ядро выполняет тест допустимости при назначении или изменении алгоритма " "B и атрибутов. В данном тесте вычисляется, выполнимы ли " "изменения; если нет, то B(2) завершается с ошибкой B." #. 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 policy, B threads are the highest " "priority (user controllable) threads in the system; if any B " "thread is runnable, it will preempt any thread scheduled under one of the " "other policies." msgstr "" "Чтобы удовлетворить гарантиям, которые даются, когда нити назначен алгоритм " "B, нити с B имеют наивысший приоритет " "(управляется пользователем) по сравнению с другими нитями в системе; если " "нить с B запускается, то она вытеснит любую нить, " "запланированную любым другим алгоритмом." #. 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(2) by a thread scheduled under the B " "policy fails with the error B, unless the thread has its reset-on-" "fork flag set (see below)." msgstr "" "Вызов B(2) в нити, запланированной B завершается " "ошибкой B, если у нити не установлен флаг 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 thread that calls B(2) will yield the " "current job and wait for a new period to begin." msgstr "" "Нить с B, вызывающая B(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 can be used at only static priority 0 (i.e., threads under " "real-time policies always have priority over B processes). " "B is the standard Linux time-sharing scheduler that is intended " "for all threads that do not require the special real-time mechanisms." msgstr "" "B можно использовать только с статическим приоритетом 0 (то " "есть, нити, работающие по алгоритму реального времени, всегда имеют " "приоритет над процессами с B). B — это стандартный " "планировщик 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 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 threads." msgstr "" "Для выполнения выбирается нить из списка со статическим приоритетом 0 на " "основе I<динамического> приоритета, существующего только внутри этого " "списка. Динамический приоритет основан на значении уступчивости (смотрите " "ниже) и увеличивается с каждым квантом времени, при котором нить была готова " "к работе, но ей было отказано в этом планировщиком. Таким образом время " "равномерно распределяется между всеми нитями с алгоритмом B." #. 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 policy is actually named " "B." msgstr "" "В дереве исходного кода ядра Linux алгоритм B на самом деле " "называется B." #. 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 and B (see below) " "processes. The nice value can be modified using B(2), " "B(2), or B(2)." msgstr "" "Значение уступчивости — это атрибут, который можно использовать для влияния " "на планировщик ЦП с целью сделать процесс более популярным (или наоборот) " "при принятии решений о планировании выполнения. Он учитывается при " "планировании процессов с B и B (смотрите ниже). " "Значение уступчивости можно изменять с помощью B(2), B(2) " "или B(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 processes likewise varies across UNIX systems and across " "Linux kernel versions." msgstr "" "Степень влияния значения уступчивости на процессы с подобным B " "в разных системах 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 resource limit can be used to define a limit to " "which an unprivileged process's nice value can be raised; see " "B(2) for details." msgstr "" "Для задания ограничения, до которого можно повышать значение уступчивости " "непривилегированному процессу, в используется Linux ограничение ресурса " "B; смотрите B(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 can be used only at static priority " "0. This policy is similar to B 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 можно использовать только с " "статическим приоритетом равным нулю. Этот алгоритм похож на B в " "том, что он планирует выполнение нити на основе её динамического приоритета " "(на основе значения 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 can be used only at static priority 0; " "the process nice value has no influence for this policy." msgstr "" "(начиная с Linux 2.6.23) B можно использовать только с " "статическим приоритетом равным нулю; значение 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 or B " "policies)." msgstr "" "Данный алгоритм предназначен для выполнения заданий с чрезвычайно низким " "приоритетом (даже ниже чем значение nice +19 в алгоритме B или " "B)." #. 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(2) do not inherit privileged scheduling " "policies. The reset-on-fork flag can be set by either:" msgstr "" "В каждой нити есть флаг планирования reset-on-fork. Когда этот флаг " "установлен, потомки, создаваемые B(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 flag into the I argument when " "calling B(2) (since Linux 2.6.32); or" msgstr "" "Логическим сложением флага B с аргументом I при " "вызове B(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 flag in I when " "calling B(2)." msgstr "" "заданием флага B в I при вызове " "B(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(2) and B(2)." msgstr "" "Заметим, что константы, используемые в этих двух вызовам имеют разные имена. " "Состояние флага reset-on-fork может быть получено аналогичным образом с " "помощью B(2) и B(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 resource " "limit (see B(2)) by creating multiple child processes." msgstr "" "Возможность reset-on-fork предназначена для приложений, проигрывающих медиа-" "файлы, и может использоваться для обхождения ограничения ресурса " "B (см. B(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 or " "B, the policy is reset to B in child processes." msgstr "" "Если вызывающая нить имеет алгоритм планирования B или " "B, то у потомков алгоритм сбрасывается в B." #. 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 capability. This flag is disabled in child " "processes created by B(2)." msgstr "" "После установки флага reset-on-fork его можно сбросить только, если нить " "имеет мандат B. Этот флаг выключается у потомков, созданных " "через B(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) " #| "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 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) whose policy is " #| "being changed." msgid "" "Before Linux 2.6.12, only privileged (B) 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 " "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) whose policy is being changed." msgstr "" "В ядрах Linux до версии 2.6.12, только привилегированные нити " "(B) могли устанавливать ненулевое значение статического " "приоритета (т.е. алгоритм планирования реального времени). " "Непривилегированные нити могли только установить алгоритм B, и " "это могло быть сделано только, если эффективный пользовательский " "идентификатор вызывающего совпадал с реальным или эффективным " "пользовательским идентификатором задаваемого нити (т.е., нити, указываемой в " "I)." #. 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) in order to set or modify a " "B policy." msgstr "" "Для задания или изменения B нить должна быть " "привилегированной (B)." #. 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 resource limit defines a ceiling on " "an unprivileged thread's static priority for the B and " "B policies. The rules for changing scheduling policy and " "priority are as follows:" msgstr "" "Начиная с Linux 2.6.12, ограничитель ресурса B определяет " "максимум статического приоритета непривилегированной нити для алгоритмов " "B и B. Правила для изменения алгоритма планирования и " "приоритета:" #. 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 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 soft limit." msgstr "" "Если непривилегированная нить имеет ненулевое значение мягкого ограничения " "B, то она может изменять свой алгоритм планирования и " "приоритет, но при этом значение приоритета не может быть больше чем " "максимальное значение её текущего приоритета и его мягкого ограничения " "B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the B 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 равно 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 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 " #| "resource limit. In Linux kernels since 2.6.39, an unprivileged thread " #| "can switch to either the B or the B policy so " #| "long as its nice value falls within the range permitted by its " #| "B resource limit (see B(2))." msgid "" "Special rules apply for the B policy. Before Linux 2.6.39, an " "unprivileged thread operating under this policy cannot change its policy, " "regardless of the value of its B resource limit. Since Linux " "2.6.39, an unprivileged thread can switch to either the B or " "the B policy so long as its nice value falls within the range " "permitted by its B resource limit (see B(2))." msgstr "" "Для политики B применяются специальные правила. В ядрах Linux до " "версии 2.6.39, сменить политику работы непривилегированной нити нельзя, " "независимо от значения её ограничителя ресурсов B. В ядрах " "Linux начиная с версии 2.6.39, непривилегированная нить может переключиться " "на политику B или B, если её значение уступчивости " "находится в диапазоне, разрешённом ей ограничителем ресурсов B " "(см. B(2))." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Privileged (B) threads ignore the B limit; as " "with older kernels, they can make arbitrary changes to scheduling policy and " "priority. See B(2) for further information on B." msgstr "" "Для привилегированных (B) нитей ограничение B " "игнорируется; как в старых ядрах, они могут произвольно менять алгоритм " "планирования и приоритет. Подробней смотрите в B(2) про " "B." #. 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, B, or B 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, " "B, or B 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, B или B потенциально может привести " "к вечному блокированию остальных нитей. До 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 " "resource limit to set a ceiling on the CPU time that a real-time process may " "consume. See B(2) for details." msgstr "" "Начиная с Linux 2.6.25, есть другие способы работы с процессами реального " "времени и процессами с крайним сроком. Один из них — использовать " "ограничитель ресурса B, задав потолок времени ЦП, которое " "процесс реального времени может задействовать. Подробней смотрите в " "B(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 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 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, " "которые можно использовать для резервирования определённого количества " "времени ЦП, используемое процессами нереального времени. Резервирование " "некоторого количества ЦП подобным образом позволяет оставить время на том же " "ЦП (скажем) оболочке root, через которую можно завершить неконтролируемый " "процесс. В этих файлах значение времени указывается в микросекундах:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. 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, 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, что даёт рабочий диапазон от 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" msgstr "I" #. 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-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-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-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(2). The scheduling policy and parameters are preserved across " "B(2)." msgstr "" "Дочерние процессы наследуют алгоритм планирования и его параметры после " "B(2). Алгоритм планирования и параметры сохраняются при вызове " "B(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(2) or B(2)." msgstr "" "Обычно, процессам реального времени необходимо блокировать память для того, " "чтобы избежать задержек при страничном обмене. Это можно сделать при помощи " "вызова B(2) или B(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(1) B<-j> flag)." msgstr "" "Начиная с Linux 2.6.38 в ядре появилось свойство, называемое " "автогруппировкой; оно улучшает интерактивность рабочего окружения несмотря " "на многопроцессную интенсивную нагрузку ЦП, такую как сборка ядра Linux " "большим количеством параллельно собирающих процессов (т. е., командой " "B(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. On a running " "system, this feature is enabled or disabled via the file I; 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 parameter." msgstr "" "Данное свойств работает совместно с планировщиком CFS, и ядро должно быть " "собрано с параметром B. В работающей системе " "свойство можно включать и выключать через файл I; значение 0 выключает свойство, а 1 — включает. " "Значение по умолчанию равно 1, если ядро не загружалось с параметром " "I." #. 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(2); " "this happens, for example, when a new terminal window is started. A new " "process created by B(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(2); например, это происходит при запуске нового окна терминала. " "Новый процесс, созданный B(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(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. 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(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. 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(1) все процессы " "вытеснены на один ЦП в многопроцессорной системе). Первая группа содержит 10 " "привязанных к ЦП процессов, запущенных для сборки ядра I. " "Вторая группа содержит один привязанный к ЦП процесс: видеопроигрыватель. Из-" "за автогруппировки в том, что каждая из групп получит половину циклов ЦП. То " "есть, видеопроигрыватель получит 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:" msgid "" "A process's autogroup (task group) membership can be viewed via the file IpidI:" msgstr "" "Членство автогруппы процесса (группу задач) можно увидеть через файл 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\n" "/autogroup-1 nice 0\n" msgstr "" "$ B\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(2) to fail with the error B.)" msgstr "" "Также этот файл можно использовать для изменения полосы пропускания ЦП, " "выделенной автогруппе. Для этого в файл записывается диапазон " "«уступчивости», задающий значение уступчивости автогруппы. Допускаемый " "диапазон: от +19 (низкий приоритет) до -20 (высокий приоритет) (запись через " "B(2) значений вне это диапазона приводит к ошибке B)." #. 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(7) CPU controller to place processes in cgroups " "other than the root CPU cgroup overrides the effect of autogrouping." msgstr "" "Использование контроллера ЦП B(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, B, and B). It does not " "group processes scheduled under real-time and deadline policies. Those " "processes are scheduled according to the rules described earlier." msgstr "" "Свойство автогруппировки группирует только процессы, планируемые алгоритмами " "не реального времени (B, B и B). Оно " "не группирует процессы, планируемые алгоритмами реального времени и с " "предельным сроком (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, B, and B policies), the CFS " "scheduler employs a technique known as \"group scheduling\", if the kernel " "was configured with the B option (which is typical)." msgstr "" "При планировании процессов не реального времени (т. е., планируемых по " "алгоритмам B, B и B), планировщик CFS " "использует технику называемую «групповое планирование», если ядро было " "собрано с параметром B (обычно так и есть)." #. 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(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(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), then all of the processes on the system are " "notionally placed in a single task group." msgstr "" "Если групповое планирование было запрещено (т. е., ядро собрано без " "параметра B), то все процессы системы условно " "помещаются в одну группу задач." #. 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. 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(2) or B(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(2) или " "B(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 I 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 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 /proc/self/autogroup>\n" msgstr "$ B /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 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 " "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. Пока заплатки не были полностью включены в " "основное ядро, их нужно было устанавливать отдельно. Файлы заплаток " "называются:" #. 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-rtI\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, B, and " "B which respectively provide no, some, and " "considerable reduction of the worst-case scheduling latency." msgstr "" "Без заплаток и до их полного включения в оригинальное ядро, через параметры " "ядра предлагается только три класса вытеснения: B, " "B и B, которые, " "соответственно, не сокращают, частично сокращают и значительно сокращают " "задержку планирования при наихудшем случае." #. 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 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. Если он будет выбран, то " "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(7) CPU controller can be used to limit the CPU consumption " "of groups of processes." msgstr "" "Для ограничения групп процессов потребления ЦП можно использовать контроллер " "ЦП B(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(1), B(1), B(1), B(1), B(1), B(1), " "B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), B(3), " "B(3), B(3), " "B(3), B(7), B(7)" msgstr "" "B(1), B(1), B(1), B(1), B(1), B(1), " "B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), B(3), " "B(3), B(3), " "B(3), B(7), B(7)" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I by Bill O.\\& Gallmeister, " "O'Reilly & Associates, Inc., ISBN 1-56592-074-0." msgstr "" "I 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, I, I, and I" 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, " "I, I и I" #. type: TH #: debian-bookworm opensuse-leap-15-6 #, 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: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "If a call to B(2), B(2), " "B(2), B(3), or " "B(3) changes the priority of the running or runnable " "B thread identified by I the effect on the thread's " "position in the list depends on the direction of the change to threads " "priority:" msgstr "" "Если вызовом B(2), B(2), " "B(2), B(3) или " "B(3) изменяется приоритет выполняющейся или готовой к " "выполнению нити B, задаваемой I, то результат положения " "нити в списке зависит от направления изменения приоритета нити:" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 октября 2023 г." #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Linux man-pages 6.06" #. type: TH #: fedora-rawhide #, no-wrap msgid "2024-02-18" msgstr "18 февраля 2024 г." #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Linux man-pages 6.7" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Linux man-pages 6.04" #. type: TH #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages (unreleased)" msgstr "Linux man-pages 6.7"