diff options
Diffstat (limited to 'po/ru/man2/sched_setaffinity.2.po')
-rw-r--r-- | po/ru/man2/sched_setaffinity.2.po | 998 |
1 files changed, 998 insertions, 0 deletions
diff --git a/po/ru/man2/sched_setaffinity.2.po b/po/ru/man2/sched_setaffinity.2.po new file mode 100644 index 00000000..dcbc72f2 --- /dev/null +++ b/po/ru/man2/sched_setaffinity.2.po @@ -0,0 +1,998 @@ +# Russian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Alexander Golubev <fatzer2@gmail.com>, 2018. +# Azamat Hackimov <azamat.hackimov@gmail.com>, 2011, 2014-2016. +# Hotellook, 2014. +# Nikita <zxcvbnm3230@mail.ru>, 2014. +# Spiros Georgaras <sng@hellug.gr>, 2016. +# Vladislav <ivladislavefimov@gmail.com>, 2015. +# Yuri Kozlov <yuray@komyakino.ru>, 2011-2019. +# Иван Павлов <pavia00@gmail.com>, 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 17:07+0100\n" +"PO-Revision-Date: 2019-10-15 18:55+0300\n" +"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" +"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Lokalize 2.0\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "sched_setaffinity" +msgstr "sched_setaffinity" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 октября 2023 г." + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Linux man-pages 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "ИМЯ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"sched_setaffinity, sched_getaffinity - set and get a thread's CPU affinity " +"mask" +msgstr "" +"sched_setaffinity, sched_getaffinity - устанавливает и получает процессорную " +"маску увязывания для нити" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Standard C library (I<libc>, I<-lc>)" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "СИНТАКСИС" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" +"B<#include E<lt>sched.hE<gt>>\n" +msgstr "" +"B<#define _GNU_SOURCE> /* Смотрите feature_test_macros(7) */\n" +"B<#include E<lt>sched.hE<gt>>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n" +"B< const cpu_set_t *>I<mask>B<);>\n" +"B<int sched_getaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n" +"B< cpu_set_t *>I<mask>B<);>\n" +msgstr "" +"B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n" +"B< const cpu_set_t *>I<mask>B<);>\n" +"B<int sched_getaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n" +"B< cpu_set_t *>I<mask>B<);>\n" + +#. 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 "" +"A thread's CPU affinity mask determines the set of CPUs on which it is " +"eligible to run. On a multiprocessor system, setting the CPU affinity mask " +"can be used to obtain performance benefits. For example, by dedicating one " +"CPU to a particular thread (i.e., setting the affinity mask of that thread " +"to specify a single CPU, and setting the affinity mask of all other threads " +"to exclude that CPU), it is possible to ensure maximum execution speed for " +"that thread. Restricting a thread to run on a single CPU also avoids the " +"performance cost caused by the cache invalidation that occurs when a thread " +"ceases to execute on one CPU and then recommences execution on a different " +"CPU." +msgstr "" +"Процессорной маской увязывания нити задаётся набор процессоров, на которых " +"разрешено выполняться нити. В многопроцессорных системах задание " +"процессорной маски увязывания можно использовать для получения большей " +"производительности. Например, выделение специального процессора определённой " +"нити (т.е., задание в процессорной маске увязывания для нити одного ЦП и " +"исключение этого ЦП из процессорных масок увязывания для остальных нитей) " +"обеспечивает максимальную скорость выполнения этой нити. Ограничение для " +"нити одним ЦП также исключает сокращение производительности в следствие " +"недостоверности данных кэша, которая возникает, когда нить прекращает " +"выполнение на одном ЦП и затем продолжает выполнение на другом." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A CPU affinity mask is represented by the I<cpu_set_t> structure, a \"CPU " +"set\", pointed to by I<mask>. A set of macros for manipulating CPU sets is " +"described in B<CPU_SET>(3)." +msgstr "" +"Маска увязывания ЦП представляется в виде структуры I<cpu_set_t>, «набором " +"процессоров», на которую указывает I<mask>. В B<CPU_SET>(3) описаны макросы " +"для изменения набора ЦП." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<sched_setaffinity>() sets the CPU affinity mask of the thread whose ID is " +"I<pid> to the value specified by I<mask>. If I<pid> is zero, then the " +"calling thread is used. The argument I<cpusetsize> is the length (in bytes) " +"of the data pointed to by I<mask>. Normally this argument would be " +"specified as I<sizeof(cpu_set_t)>." +msgstr "" +"Вызов B<sched_setaffinity>() устанавливает маску увязывания ЦП I<mask> для " +"нити, чей ID указан в I<pid>. Если значение I<pid> равно нулю, то " +"используется вызывающая нить. В аргументе I<cpusetsize> задаётся количество " +"данных (в байтах), на которые указывает I<mask>. Обычно его значение " +"указывается как I<sizeof(cpu_set_t)>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread specified by I<pid> is not currently running on one of the " +"CPUs specified in I<mask>, then that thread is migrated to one of the CPUs " +"specified in I<mask>." +msgstr "" +"Если нить, указанная в I<pid>, в данный момент не выполняется на одном из " +"ЦП, заданном в I<mask>, то эта нить переносится на один из процессоров, " +"назначаемых I<mask>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<sched_getaffinity>() writes the affinity mask of the thread whose ID is " +"I<pid> into the I<cpu_set_t> structure pointed to by I<mask>. The " +"I<cpusetsize> argument specifies the size (in bytes) of I<mask>. If I<pid> " +"is zero, then the mask of the calling thread is returned." +msgstr "" +"Вызов B<sched_getaffinity>() записывает в структуру I<cpu_set_t>, на которую " +"указывает I<mask>, значение маски увязывания ЦП для нити, чей ID указан в " +"I<pid>. В аргументе I<cpusetsize> задаётся размер I<mask> (в байтах). Если " +"значение I<pid> равно нулю, то возвращается маска вызывающей нити." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RETURN VALUE" +msgstr "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "On success, B<sched_setaffinity>() and B<sched_getaffinity>() return 0 " +#| "(but see \"C library/kernel differences\" below, which notes that the " +#| "underlying B<sched_getaffinity>() differs in its return value). On " +#| "error, -1 is returned, and I<errno> is set appropriately." +msgid "" +"On success, B<sched_setaffinity>() and B<sched_getaffinity>() return 0 " +"(but see \"C library/kernel differences\" below, which notes that the " +"underlying B<sched_getaffinity>() differs in its return value). On " +"failure, -1 is returned, and I<errno> is set to indicate the error." +msgstr "" +"При успешном выполнении B<sched_setaffinity>() и B<sched_getaffinity>() " +"возвращается 0 (но смотрите «различия в библиотеке C/ядре» ниже, где " +"показано при каких условиях B<sched_getaffinity>() возвращает разные " +"значения). При ошибке возвращается -1, и в I<errno> записывается " +"соответствующее значение." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "ОШИБКИ" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFAULT>" +msgstr "B<EFAULT>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A supplied memory address was invalid." +msgstr "Указан некорректный адрес памяти." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL>" +msgstr "B<EINVAL>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The affinity bit mask I<mask> contains no processors that are currently " +"physically on the system and permitted to the thread according to any " +"restrictions that may be imposed by I<cpuset> cgroups or the \"cpuset\" " +"mechanism described in B<cpuset>(7)." +msgstr "" +"В маске увязывания ЦП I<mask> указаны процессоры, которых физически нет в " +"системе, и которые разрешены нити согласно любым ограничениям, которые могут " +"налагаться I<cpuset> cgroups или механизмом «cpuset», описанном в " +"B<cpuset>(7)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "(B<sched_getaffinity>() and, in kernels before 2.6.9, " +#| "B<sched_setaffinity>()) I<cpusetsize> is smaller than the size of the " +#| "affinity mask used by the kernel." +msgid "" +"(B<sched_getaffinity>() and, before Linux 2.6.9, B<sched_setaffinity>()) " +"I<cpusetsize> is smaller than the size of the affinity mask used by the " +"kernel." +msgstr "" +"(B<sched_getaffinity>() и, в ядрах до 2.6.9, B<sched_setaffinity>()) " +"Значение I<cpusetsize> меньше размера маски увязывания, используемой в ядре." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM>" +msgstr "B<EPERM>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(B<sched_setaffinity>()) The calling thread does not have appropriate " +"privileges. The caller needs an effective user ID equal to the real user ID " +"or effective user ID of the thread identified by I<pid>, or it must possess " +"the B<CAP_SYS_NICE> capability in the user namespace of the thread I<pid>." +msgstr "" +"(B<sched_setaffinity>()) Вызывающая нить не имеет достаточно прав. " +"Вызывающему требуется иметь эффективный пользовательский ID равный реальному " +"пользовательскому ID или эффективному пользовательскому ID нити, указанной в " +"I<pid>, или он должен обладать мандатом B<CAP_SYS_NICE> в пространстве имён " +"пользователя нити I<pid>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ESRCH>" +msgstr "B<ESRCH>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The thread whose ID is I<pid> could not be found." +msgstr "Нить с идентификатором I<pid> не найдена." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "СТАНДАРТЫ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux." +msgstr "Linux." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "ИСТОРИЯ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux 2.5.8, glibc 2.3." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The CPU affinity system calls were introduced in Linux kernel 2.5.8. The " +#| "system call wrappers were introduced in glibc 2.3. Initially, the glibc " +#| "interfaces included a I<cpusetsize> argument, typed as I<unsigned int>. " +#| "In glibc 2.3.3, the I<cpusetsize> argument was removed, but was then " +#| "restored in glibc 2.3.4, with type I<size_t>." +msgid "" +"Initially, the glibc interfaces included a I<cpusetsize> argument, typed as " +"I<unsigned int>. In glibc 2.3.3, the I<cpusetsize> argument was removed, " +"but was then restored in glibc 2.3.4, with type I<size_t>." +msgstr "" +"Системные вызовы увязывания ЦП появились в ядре Linux версии 2.5.8. " +"Обёрточные функции появились в glibc 2.3. Первоначально, в интерфейсе glibc " +"присутствовал аргумент I<cpusetsize>, имевший тип I<unsigned int>. В glibc " +"2.3.3 аргумент I<cpusetsize> был удалён, но появился вновь в glibc 2.3.4 с " +"типом I<size_t>." + +#. 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 "" +"After a call to B<sched_setaffinity>(), the set of CPUs on which the thread " +"will actually run is the intersection of the set specified in the I<mask> " +"argument and the set of CPUs actually present on the system. The system may " +"further restrict the set of CPUs on which the thread runs if the \"cpuset\" " +"mechanism described in B<cpuset>(7) is being used. These restrictions on " +"the actual set of CPUs on which the thread will run are silently imposed by " +"the kernel." +msgstr "" +"После вызова B<sched_setaffinity>() набор процессоров, на которых " +"действительно будет выполняться нить, вычисляется пересечением набора из " +"аргумента I<mask> и набором процессоров, присутствующих в системе. В " +"дальнейшем, система может ограничить набор процессоров нити, если " +"задействован механизм «cpuset», описанный в B<cpuset>(7). Эти ограничения на " +"действительный набор процессоров, используемых для нити, без уведомления " +"налагаются ядром." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"There are various ways of determining the number of CPUs available on the " +"system, including: inspecting the contents of I</proc/cpuinfo>; using " +"B<sysconf>(3) to obtain the values of the B<_SC_NPROCESSORS_CONF> and " +"B<_SC_NPROCESSORS_ONLN> parameters; and inspecting the list of CPU " +"directories under I</sys/devices/system/cpu/>." +msgstr "" +"Есть несколько способов определения количества процессоров в системе: по " +"содержимому I</proc/cpuinfo>; с помощью B<sysconf>(3) получить значение " +"параметров B<_SC_NPROCESSORS_CONF> и B<_SC_NPROCESSORS_ONLN>; посчитать " +"количество подкаталогов cpu в I</sys/devices/system/cpu/>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<sched>(7) has a description of the Linux scheduling scheme." +msgstr "В B<sched>(7) приведено описание схемы планирования Linux." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The affinity mask is a per-thread attribute that can be adjusted " +"independently for each of the threads in a thread group. The value returned " +"from a call to B<gettid>(2) can be passed in the argument I<pid>. " +"Specifying I<pid> as 0 will set the attribute for the calling thread, and " +"passing the value returned from a call to B<getpid>(2) will set the " +"attribute for the main thread of the thread group. (If you are using the " +"POSIX threads API, then use B<pthread_setaffinity_np>(3) instead of " +"B<sched_setaffinity>().)" +msgstr "" +"Маска увязывания является атрибутом нити, которая может изменяться " +"независимо для каждой нити в группе нитей. В аргументе I<pid> можно " +"передавать значение, возвращаемое вызовом B<gettid>(2). При значении I<pid> " +"равным 0 будет установлен атрибут вызывающей нити, а при передаче значения, " +"возвращаемого вызовом B<getpid>(2), устанавливается атрибут главной нити " +"группы нитей (при работе с программным интерфейсом POSIX используйте функцию " +"B<pthread_setaffinity_np>(3) вместо B<sched_setaffinity>()). " + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<isolcpus> boot option can be used to isolate one or more CPUs at boot " +"time, so that no processes are scheduled onto those CPUs. Following the use " +"of this boot option, the only way to schedule processes onto the isolated " +"CPUs is via B<sched_setaffinity>() or the B<cpuset>(7) mechanism. For " +"further information, see the kernel source file I<Documentation/admin-guide/" +"kernel-parameters.txt>. As noted in that file, I<isolcpus> is the preferred " +"mechanism of isolating CPUs (versus the alternative of manually setting the " +"CPU affinity of all processes on the system)." +msgstr "" +"Параметр начальной загрузки I<isolcpus> можно использовать для изоляции " +"одного и более ЦП во время загрузки, и ни один процесс не будет запланирован " +"к выполнению на этих ЦП. После использования этого параметра единственный " +"способ запланировать процессы на изолированных ЦП — использовать " +"B<sched_setaffinity>() или механизм B<cpuset>(7). Подробности смотрите в " +"файле исходного кода ядра I<Documentation/admin-guide/kernel-parameters." +"txt>. Согласно тексту файла, I<isolcpus> является предпочтительным " +"механизмом изоляции ЦП (по сравнению с ручным увязыванием ЦП всех процессов " +"в системе)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A child created via B<fork>(2) inherits its parent's CPU affinity mask. " +"The affinity mask is preserved across an B<execve>(2)." +msgstr "" +"Потомок, создаваемый с помощью B<fork>(2), наследует маску увязывания ЦП. " +"Маска увязывания сохраняется при вызове B<execve>(2)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "C library/kernel differences" +msgstr "Отличия между библиотекой C и ядром" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This manual page describes the glibc interface for the CPU affinity calls. " +"The actual system call interface is slightly different, with the I<mask> " +"being typed as I<unsigned long\\ *>, reflecting the fact that the underlying " +"implementation of CPU sets is a simple bit mask." +msgstr "" +"В данной справочной странице описан интерфейс glibc для вызовов увязывания " +"ЦП. Интерфейс реальных системных вызов чуть отличается: аргумент I<mask> " +"имеет тип I<unsigned long\\ *>, отражая факт того, что используемая " +"реализация наборов ЦП представляет собой просто битовую маску." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On success, the raw B<sched_getaffinity>() system call returns the number " +"of bytes placed copied into the I<mask> buffer; this will be the minimum of " +"I<cpusetsize> and the size (in bytes) of the I<cpumask_t> data type that is " +"used internally by the kernel to represent the CPU set bit mask." +msgstr "" +"При успешном выполнении ядерный системный вызов B<sched_getaffinity>() " +"возвращает количество скопированных в буфер I<mask> байт; минимальным " +"значением будет I<cpusetsize> и размер (в байтах) типа данных I<cpumask_t>, " +"который используется в ядре для представления процессорной битовой маски." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Handling systems with large CPU affinity masks" +msgstr "Работа систем с масками увязывания ЦП большого размера" + +#. FIXME . See https://sourceware.org/bugzilla/show_bug.cgi?id=15630 +#. and https://sourceware.org/ml/libc-alpha/2013-07/msg00288.html +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The underlying system calls (which represent CPU masks as bit masks of type " +"I<unsigned long\\ *>) impose no restriction on the size of the CPU mask. " +"However, the I<cpu_set_t> data type used by glibc has a fixed size of 128 " +"bytes, meaning that the maximum CPU number that can be represented is 1023. " +"If the kernel CPU affinity mask is larger than 1024, then calls of the form:" +msgstr "" +"Лежащие в основе системные вызовы (которые представляют маски ЦП в виде " +"маски битов с типом I<unsigned long\\ *>) не накладывают ограничений на " +"размер маски ЦП. Однако, тип данных I<cpu_set_t>, используемый в glibc, " +"имеет постоянный размер 128 байт, то есть максимальный номер представляемых " +"ЦП равен 1023. Если ядерная маска увязывания ЦП больше 1024, то вызовы вида:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "sched_getaffinity(pid, sizeof(cpu_set_t), &mask);\n" +msgstr "sched_getaffinity(pid, sizeof(cpu_set_t), &mask);\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"fail with the error B<EINVAL>, the error produced by the underlying system " +"call for the case where the I<mask> size specified in I<cpusetsize> is " +"smaller than the size of the affinity mask used by the kernel. (Depending " +"on the system CPU topology, the kernel affinity mask can be substantially " +"larger than the number of active CPUs in the system.)" +msgstr "" +"завершается ошибкой B<EINVAL>; ошибка выдаётся подлежащим системным вызовом " +"в случае, когда размер I<mask>, указанный в I<cpusetsize>, меньше чем размер " +"маски увязывания используемой ядром (в зависимости от топологии ЦП системы, " +"ядерная маска увязывания может быть значительно больше, чем количество " +"активных ЦП в системе)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When working on systems with large kernel CPU affinity masks, one must " +"dynamically allocate the I<mask> argument (see B<CPU_ALLOC>(3)). Currently, " +"the only way to do this is by probing for the size of the required mask " +"using B<sched_getaffinity>() calls with increasing mask sizes (until the " +"call does not fail with the error B<EINVAL>)." +msgstr "" +"При работе в системах с ядерными масками увязывания ЦП большого размера, " +"место под аргумент I<mask> должно выделяться динамически (смотрите " +"B<CPU_ALLOC>(3)). В настоящее время единственный способ сделать это — " +"определить размер требуемой маски с помощью вызовов B<sched_getaffinity>() с " +"увеличиваемым размером маски (пока вызов не перестанет выдавать ошибку " +"B<EINVAL>)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Be aware that B<CPU_ALLOC>(3) may allocate a slightly larger CPU set than " +"requested (because CPU sets are implemented as bit masks allocated in units " +"of I<sizeof(long)>). Consequently, B<sched_getaffinity>() can set bits " +"beyond the requested allocation size, because the kernel sees a few " +"additional bits. Therefore, the caller should iterate over the bits in the " +"returned set, counting those which are set, and stop upon reaching the value " +"returned by B<CPU_COUNT>(3) (rather than iterating over the number of bits " +"requested to be allocated)." +msgstr "" +"Учтите, что B<CPU_ALLOC>(3) может выделить несколько больший набор ЦП, чем " +"запрашивается (так как наборы ЦП реализованы как битовые маски, выделяемые в " +"объёмах I<sizeof(long)>). Следовательно, B<sched_getaffinity>() может задать " +"биты за границами запрашиваемого выделяемого размера, так как ядро видит " +"несколько дополнительных бит. Поэтому вызывающий должен пройтись по всем " +"возвращённым битам, считая установленные и остановиться при достижении " +"значения, полученного от B<CPU_COUNT>(3) (а не останавливаться на количестве " +"запрошенных к выделению бит)." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "ПРИМЕРЫ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The program below creates a child process. The parent and child then each " +"assign themselves to a specified CPU and execute identical loops that " +"consume some CPU time. Before terminating, the parent waits for the child " +"to complete. The program takes three command-line arguments: the CPU number " +"for the parent, the CPU number for the child, and the number of loop " +"iterations that both processes should perform." +msgstr "" +"Программа, представленная ниже, создаёт дочерний процесс. Затем родитель и " +"потомок назначают выполнение себя на указанных ЦП и выполняют одинаковые " +"циклы, которые выполняются на ЦП какое-то время. Перед завершением, родитель " +"ждёт завершения потомка. Программа имеет три аргумента командной строки: " +"номер ЦП для родителя, номер ЦП для потомка и количество итераций цикла, " +"который будут выполнять оба процесса." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As the sample runs below demonstrate, the amount of real and CPU time " +"consumed when running the program will depend on intra-core caching effects " +"and whether the processes are using the same CPU." +msgstr "" +"В примере работы, показанном ниже, количество реального времени и времени " +"использованного ЦП при работе программы, будет зависеть он меж ядерного " +"кэширования и будут ли процессы использовать одинаковый ЦП." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"We first employ B<lscpu>(1) to determine that this (x86) system has two " +"cores, each with two CPUs:" +msgstr "" +"Сначала запустим B<lscpu>(1) для определения, что эта система (x86) имеет по " +"два потока выполнения в двух ЦП:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "" +#| "$ B<lscpu | egrep -i \\(aqcore.*:|socket\\(aq>\n" +#| "Thread(s) per core: 2\n" +#| "Core(s) per socket: 2\n" +#| "Socket(s): 1\n" +msgid "" +"$ B<lscpu | egrep -i \\[aq]core.*:|socket\\[aq]>\n" +"Thread(s) per core: 2\n" +"Core(s) per socket: 2\n" +"Socket(s): 1\n" +msgstr "" +"$ B<lscpu | egrep -i \\(aqcore.*:|socket\\(aq>\n" +"Thread(s) per core: 2\n" +"Core(s) per socket: 2\n" +"Socket(s): 1\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"We then time the operation of the example program for three cases: both " +"processes running on the same CPU; both processes running on different CPUs " +"on the same core; and both processes running on different CPUs on different " +"cores." +msgstr "" +"Затем запустим подсчёт времени выполнения программы для трёх случаев: оба " +"процесс выполняются на одном ЦП; оба процесса выполняются на разных ЦП " +"одного ядра; оба процесса выполняются на разных ЦП разных ядер." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"$ B<time -p ./a.out 0 0 100000000>\n" +"real 14.75\n" +"user 3.02\n" +"sys 11.73\n" +"$ B<time -p ./a.out 0 1 100000000>\n" +"real 11.52\n" +"user 3.98\n" +"sys 19.06\n" +"$ B<time -p ./a.out 0 3 100000000>\n" +"real 7.89\n" +"user 3.29\n" +"sys 12.07\n" +msgstr "" +"$ B<time -p ./a.out 0 0 100000000>\n" +"real 14.75\n" +"user 3.02\n" +"sys 11.73\n" +"$ B<time -p ./a.out 0 1 100000000>\n" +"real 11.52\n" +"user 3.98\n" +"sys 19.06\n" +"$ B<time -p ./a.out 0 3 100000000>\n" +"real 7.89\n" +"user 3.29\n" +"sys 12.07\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Program source" +msgstr "Исходный код программы" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>sched.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/wait.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int parentCPU, childCPU;\n" +" cpu_set_t set;\n" +" unsigned int nloops;\n" +"\\&\n" +" if (argc != 4) {\n" +" fprintf(stderr, \"Usage: %s parent-cpu child-cpu num-loops\\en\",\n" +" argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +"\\&\n" +" parentCPU = atoi(argv[1]);\n" +" childCPU = atoi(argv[2]);\n" +" nloops = atoi(argv[3]);\n" +"\\&\n" +" CPU_ZERO(&set);\n" +"\\&\n" +" switch (fork()) {\n" +" case -1: /* Error */\n" +" err(EXIT_FAILURE, \"fork\");\n" +"\\&\n" +" case 0: /* Child */\n" +" CPU_SET(childCPU, &set);\n" +"\\&\n" +" if (sched_setaffinity(getpid(), sizeof(set), &set) == -1)\n" +" err(EXIT_FAILURE, \"sched_setaffinity\");\n" +"\\&\n" +" for (unsigned int j = 0; j E<lt> nloops; j++)\n" +" getppid();\n" +"\\&\n" +" exit(EXIT_SUCCESS);\n" +"\\&\n" +" default: /* Parent */\n" +" CPU_SET(parentCPU, &set);\n" +"\\&\n" +" if (sched_setaffinity(getpid(), sizeof(set), &set) == -1)\n" +" err(EXIT_FAILURE, \"sched_setaffinity\");\n" +"\\&\n" +" for (unsigned int j = 0; j E<lt> nloops; j++)\n" +" getppid();\n" +"\\&\n" +" wait(NULL); /* Wait for child to terminate */\n" +" exit(EXIT_SUCCESS);\n" +" }\n" +"}\n" +msgstr "" + +#. SRC END +#. 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<lscpu>(1), B<nproc>(1), B<taskset>(1), B<clone>(2), B<getcpu>(2), " +"B<getpriority>(2), B<gettid>(2), B<nice>(2), B<sched_get_priority_max>(2), " +"B<sched_get_priority_min>(2), B<sched_getscheduler>(2), " +"B<sched_setscheduler>(2), B<setpriority>(2), B<CPU_SET>(3), " +"B<get_nprocs>(3), B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), " +"B<capabilities>(7), B<cpuset>(7), B<sched>(7), B<numactl>(8)" +msgstr "" +"B<lscpu>(1), B<nproc>(1), B<taskset>(1), B<clone>(2), B<getcpu>(2), " +"B<getpriority>(2), B<gettid>(2), B<nice>(2), B<sched_get_priority_max>(2), " +"B<sched_get_priority_min>(2), B<sched_getscheduler>(2), " +"B<sched_setscheduler>(2), B<setpriority>(2), B<CPU_SET>(3), " +"B<get_nprocs>(3), B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), " +"B<capabilities>(7), B<cpuset>(7), B<sched>(7), B<numactl>(8)" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "5 февраля 2023 г." + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Linux man-pages 6.03" + +#. type: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "ВЕРСИИ" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The CPU affinity system calls were introduced in Linux kernel 2.5.8. The " +"system call wrappers were introduced in glibc 2.3. Initially, the glibc " +"interfaces included a I<cpusetsize> argument, typed as I<unsigned int>. In " +"glibc 2.3.3, the I<cpusetsize> argument was removed, but was then restored " +"in glibc 2.3.4, with type I<size_t>." +msgstr "" +"Системные вызовы увязывания ЦП появились в ядре Linux версии 2.5.8. " +"Обёрточные функции появились в glibc 2.3. Первоначально, в интерфейсе glibc " +"присутствовал аргумент I<cpusetsize>, имевший тип I<unsigned int>. В glibc " +"2.3.3 аргумент I<cpusetsize> был удалён, но появился вновь в glibc 2.3.4 с " +"типом I<size_t>." + +#. type: Plain text +#: debian-bookworm +msgid "These system calls are Linux-specific." +msgstr "Данные системные вызовы есть только в Linux." + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>sched.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/wait.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +msgstr "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>sched.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/wait.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int parentCPU, childCPU;\n" +" cpu_set_t set;\n" +" unsigned int nloops;\n" +msgstr "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int parentCPU, childCPU;\n" +" cpu_set_t set;\n" +" unsigned int nloops;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (argc != 4) {\n" +" fprintf(stderr, \"Usage: %s parent-cpu child-cpu num-loops\\en\",\n" +" argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" +" if (argc != 4) {\n" +" fprintf(stderr, \"Использование: %s parent-cpu child-cpu num-loops\\en\",\n" +" argv[0]);\n" +" exit(EXIT_FAILURE);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" parentCPU = atoi(argv[1]);\n" +" childCPU = atoi(argv[2]);\n" +" nloops = atoi(argv[3]);\n" +msgstr "" +" parentCPU = atoi(argv[1]);\n" +" childCPU = atoi(argv[2]);\n" +" nloops = atoi(argv[3]);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " CPU_ZERO(&set);\n" +msgstr " CPU_ZERO(&set);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" switch (fork()) {\n" +" case -1: /* Error */\n" +" err(EXIT_FAILURE, \"fork\");\n" +msgstr "" +" switch (fork()) {\n" +" case -1: /* Ошибка */\n" +" err(EXIT_FAILURE, \"fork\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" case 0: /* Child */\n" +" CPU_SET(childCPU, &set);\n" +msgstr "" +" case 0: /* потомок */\n" +" CPU_SET(childCPU, &set);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (sched_setaffinity(getpid(), sizeof(set), &set) == -1)\n" +" err(EXIT_FAILURE, \"sched_setaffinity\");\n" +msgstr "" +" if (sched_setaffinity(getpid(), sizeof(set), &set) == -1)\n" +" err(EXIT_FAILURE, \"sched_setaffinity\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" for (unsigned int j = 0; j E<lt> nloops; j++)\n" +" getppid();\n" +msgstr "" +" for (unsigned int j = 0; j E<lt> nloops; j++)\n" +" getppid();\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " exit(EXIT_SUCCESS);\n" +msgstr " exit(EXIT_SUCCESS);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" default: /* Parent */\n" +" CPU_SET(parentCPU, &set);\n" +msgstr "" +" default: /* родитель */\n" +" CPU_SET(parentCPU, &set);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" wait(NULL); /* Wait for child to terminate */\n" +" exit(EXIT_SUCCESS);\n" +" }\n" +"}\n" +msgstr "" +" wait(NULL); /* ждём завершения потомка */\n" +" exit(EXIT_SUCCESS);\n" +" }\n" +"}\n" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-05-03" +msgstr "3 мая 2023 г." + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Linux man-pages 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "30 марта 2023 г." + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Linux man-pages 6.04" |