diff options
Diffstat (limited to 'documentation/content/ru/books/arch-handbook/locking/_index.po')
| -rw-r--r-- | documentation/content/ru/books/arch-handbook/locking/_index.po | 409 |
1 files changed, 409 insertions, 0 deletions
diff --git a/documentation/content/ru/books/arch-handbook/locking/_index.po b/documentation/content/ru/books/arch-handbook/locking/_index.po new file mode 100644 index 0000000000..9653ca2162 --- /dev/null +++ b/documentation/content/ru/books/arch-handbook/locking/_index.po @@ -0,0 +1,409 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-05-01 19:56-0300\n" +"PO-Revision-Date: 2025-06-30 23:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/booksarch-handbooklocking_index/ru/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Title = +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:1 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:14 +#, no-wrap +msgid "Locking Notes" +msgstr "Заметки о блокировках" + +#. type: YAML Front Matter: title +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:1 +#, no-wrap +msgid "Chapter 2. Locking Notes" +msgstr "Глава 2. Заметки о блокировках" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:52 +msgid "" +"_This chapter is maintained by the FreeBSD SMP Next Generation Project._" +msgstr "" +"_Эта глава сопровождается и поддерживается проектом FreeBSD SMP Next " +"Generation._" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:54 +msgid "" +"This document outlines the locking used in the FreeBSD kernel to permit " +"effective multi-processing within the kernel. Locking can be achieved via " +"several means. Data structures can be protected by mutexes or man:lockmgr[9] " +"locks. A few variables are protected simply by always using atomic " +"operations to access them." +msgstr "" +"Этот документ описывает механизмы блокировки, используемые в ядре FreeBSD " +"для эффективной многопроцессорной обработки. Блокировка может быть " +"достигнута несколькими способами. Структуры данных могут защищаться " +"мьютексами или блокировками (lock) из man:lockmgr[9]. Некоторые переменные " +"защищаются просто за счёт использования атомарных операций для доступа к ним." + +#. type: Title == +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:56 +#, no-wrap +msgid "Mutexes" +msgstr "Mutexes" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:59 +msgid "" +"A mutex is simply a lock used to guarantee mutual exclusion. Specifically, a " +"mutex may only be owned by one entity at a time. If another entity wishes to " +"obtain a mutex that is already owned, it must wait until the mutex is " +"released. In the FreeBSD kernel, mutexes are owned by processes." +msgstr "" +"Мьютекс — это просто блокировка, используемая для обеспечения взаимного " +"исключения. Конкретно, мьютекс может принадлежать только одному объекту в " +"один момент времени. Если другой объект хочет получить мьютекс, который уже " +"принадлежит кому-то, он должен ждать, пока мьютекс не будет освобожден. В " +"ядре FreeBSD мьютексы принадлежат процессам." + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:61 +msgid "" +"Mutexes may be recursively acquired, but they are intended to be held for a " +"short period of time. Specifically, one may not sleep while holding a mutex. " +"If you need to hold a lock across a sleep, use a man:lockmgr[9] lock." +msgstr "" +"Мьютексы могут быть получены рекурсивно, но предполагается, что они " +"удерживаются в течение короткого периода времени. В частности, нельзя " +"переходить в режим сна, удерживая мьютекс. Если необходимо удерживать " +"блокировку во время сна, используйте блокировку man:lockmgr[9]." + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:63 +msgid "Each mutex has several properties of interest:" +msgstr "Каждый мьютекс обладает несколькими важными свойствами:" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:64 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:92 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:131 +#, no-wrap +msgid "Variable Name" +msgstr "Имя переменной" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:66 +msgid "The name of the struct mtx variable in the kernel source." +msgstr "Имя переменной struct mtx в исходном коде ядра." + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:67 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:93 +#, no-wrap +msgid "Logical Name" +msgstr "Логическое имя" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:69 +msgid "" +"The name of the mutex assigned to it by `mtx_init`. This name is displayed " +"in KTR trace messages and witness errors and warnings and is used to " +"distinguish mutexes in the witness code." +msgstr "" +"Имя мьютекса, назначенное ему с помощью `mtx_init`. Это имя отображается в " +"сообщениях трассировки KTR, ошибках и предупреждениях witness, а также " +"используется для различения мьютексов в коде witness." + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:70 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:94 +#, no-wrap +msgid "Type" +msgstr "Тип" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:72 +msgid "" +"The type of the mutex in terms of the `MTX_*` flags. The meaning for each " +"flag is related to its meaning as documented in man:mutex[9]." +msgstr "" +"Тип мьютекса в терминах флагов `MTX_*`. Значение каждого флага связано с его " +"значением, как описано в man:mutex[9]." + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:73 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:106 +#, no-wrap +msgid "`MTX_DEF`" +msgstr "`MTX_DEF`" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:75 +msgid "A sleep mutex" +msgstr "Мьютекс блокировки с ожиданием" + +#. type: Labeled list +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:76 +#, no-wrap +msgid "`MTX_SPIN`" +msgstr "`MTX_SPIN`" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:78 +msgid "A spin mutex" +msgstr "Мьютекс с вращающейся блокировкой (spin mutex)" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:79 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:100 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:112 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:118 +#, no-wrap +msgid "`MTX_RECURSE`" +msgstr "`MTX_RECURSE`" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:81 +msgid "This mutex is allowed to recurse." +msgstr "Этот мьютекс допускает рекурсию." + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:82 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:95 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:133 +#, no-wrap +msgid "Protectees" +msgstr "Защищаемые системы" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:84 +msgid "" +"A list of data structures or data structure members that this entry " +"protects. For data structure members, the name will be in the form of " +"`structure name`.`member name`." +msgstr "" +"Список структур данных или членов структур данных, которые защищает эта " +"запись. Для членов структур данных имя будет указано в формате `имя " +"структуры`.`имя члена`." + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:85 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:97 +#, no-wrap +msgid "Dependent Functions" +msgstr "Зависимые функции" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:87 +msgid "Functions that can only be called if this mutex is held." +msgstr "" +"Функции, которые могут быть вызваны только при удержании этого мьютекса." + +#. type: Block title +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:88 +#, no-wrap +msgid "Mutex List" +msgstr "Список мьютексов" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:98 +#, no-wrap +msgid "sched_lock" +msgstr "sched_lock" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:99 +#, no-wrap +msgid "\"sched lock\"" +msgstr "\"sched lock\"" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:99 +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:117 +#, no-wrap +msgid "`MTX_SPIN` \\" +msgstr "`MTX_SPIN` \\" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:101 +#, no-wrap +msgid "`_gmonparam`, `cnt.v_swtch`, `cp_time`, `curpriority`, `mtx`.`mtx_blocked`, `mtx`.`mtx_contested`, `proc`.`p_procq`, `proc`.`p_slpq`, `proc`.`p_sflag`, `proc`.`p_stat`, `proc`.`p_estcpu`, `proc`.`p_cpticks` `proc`.`p_pctcpu`, `proc`.`p_wchan`, `proc`.`p_wmesg`, `proc`.`p_swtime`, `proc`.`p_slptime`, `proc`.`p_runtime`, `proc`.`p_uu`, `proc`.`p_su`, `proc`.`p_iu`, `proc`.`p_uticks`, `proc`.`p_sticks`, `proc`.`p_iticks`, `proc`.`p_oncpu`, `proc`.`p_lastcpu`, `proc`.`p_rqindex`, `proc`.`p_heldmtx`, `proc`.`p_blocked`, `proc`.`p_mtxname`, `proc`.`p_contested`, `proc`.`p_priority`, `proc`.`p_usrpri`, `proc`.`p_nativepri`, `proc`.`p_nice`, `proc`.`p_rtprio`, `pscnt`, `slpque`, `itqueuebits`, `itqueues`, `rtqueuebits`, `rtqueues`, `queuebits`, `queues`, `idqueuebits`, `idqueues`, `switchtime`, `switchticks`" +msgstr "" +"`_gmonparam`, `cnt.v_swtch`, `cp_time`, `curpriority`, `mtx`.`mtx_blocked`, " +"`mtx`.`mtx_contested`, `proc`.`p_procq`, `proc`.`p_slpq`, `proc`.`p_sflag`, " +"`proc`.`p_stat`, `proc`.`p_estcpu`, `proc`.`p_cpticks` `proc`.`p_pctcpu`, " +"`proc`.`p_wchan`, `proc`.`p_wmesg`, `proc`.`p_swtime`, `proc`.`p_slptime`, " +"`proc`.`p_runtime`, `proc`.`p_uu`, `proc`.`p_su`, `proc`.`p_iu`, " +"`proc`.`p_uticks`, `proc`.`p_sticks`, `proc`.`p_iticks`, `proc`.`p_oncpu`, " +"`proc`.`p_lastcpu`, `proc`.`p_rqindex`, `proc`.`p_heldmtx`, " +"`proc`.`p_blocked`, `proc`.`p_mtxname`, `proc`.`p_contested`, " +"`proc`.`p_priority`, `proc`.`p_usrpri`, `proc`.`p_nativepri`, `proc`.`p_nice`" +", `proc`.`p_rtprio`, `pscnt`, `slpque`, `itqueuebits`, `itqueues`, " +"`rtqueuebits`, `rtqueues`, `queuebits`, `queues`, `idqueuebits`, `idqueues`, " +"`switchtime`, `switchticks`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:103 +#, no-wrap +msgid "`setrunqueue`, `remrunqueue`, `mi_switch`, `chooseproc`, `schedclock`, `resetpriority`, `updatepri`, `maybe_resched`, `cpu_switch`, `cpu_throw`, `need_resched`, `resched_wanted`, `clear_resched`, `aston`, `astoff`, `astpending`, `calcru`, `proc_compare`" +msgstr "" +"`setrunqueue`, `remrunqueue`, `mi_switch`, `chooseproc`, `schedclock`, " +"`resetpriority`, `updatepri`, `maybe_resched`, `cpu_switch`, `cpu_throw`, " +"`need_resched`, `resched_wanted`, `clear_resched`, `aston`, `astoff`, " +"`astpending`, `calcru`, `proc_compare`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:104 +#, no-wrap +msgid "vm86pcb_lock" +msgstr "vm86pcb_lock" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:105 +#, no-wrap +msgid "\"vm86pcb lock\"" +msgstr "\"vm86pcb lock\"" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:107 +#, no-wrap +msgid "`vm86pcb`" +msgstr "`vm86pcb`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:109 +#, no-wrap +msgid "`vm86_bioscall`" +msgstr "`vm86_bioscall`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:110 +#, no-wrap +msgid "Giant" +msgstr "Giant" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:111 +#, no-wrap +msgid "\"Giant\"" +msgstr "\"Giant\"" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:111 +#, no-wrap +msgid "`MTX_DEF` \\" +msgstr "`MTX_DEF` \\" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:113 +#, no-wrap +msgid "nearly everything" +msgstr "почти всё" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:115 +#, no-wrap +msgid "lots" +msgstr "много" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:116 +#, no-wrap +msgid "callout_lock" +msgstr "callout_lock" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:117 +#, no-wrap +msgid "\"callout lock\"" +msgstr "\"callout lock\"" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:119 +#, no-wrap +msgid "`callfree`, `callwheel`, `nextsoftcheck`, `proc`.`p_itcallout`, `proc`.`p_slpcallout`, `softticks`, `ticks`" +msgstr "" +"`callfree`, `callwheel`, `nextsoftcheck`, `proc`.`p_itcallout`, " +"`proc`.`p_slpcallout`, `softticks`, `ticks`" + +#. type: Title == +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:123 +#, no-wrap +msgid "Shared Exclusive Locks" +msgstr "Разделяемые эксклюзивные блокировки" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:126 +msgid "" +"These locks provide basic reader-writer type functionality and may be held " +"by a sleeping process. Currently they are backed by man:lockmgr[9]." +msgstr "" +"Эти блокировки обеспечивают базовую функциональность типа читатель-писатель " +"и могут удерживаться спящим процессом. В настоящее время они реализованы " +"через man:lockmgr[9]." + +#. type: Block title +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:127 +#, no-wrap +msgid "Shared Exclusive Lock List" +msgstr "Список разделяемых эксклюзивных блокировок" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:134 +#, no-wrap +msgid "`allproc_lock`" +msgstr "`allproc_lock`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:136 +#, no-wrap +msgid "`allproc` `zombproc` `pidhashtbl` `proc`.`p_list` `proc`.`p_hash` `nextpid`" +msgstr "" +"`allproc` `zombproc` `pidhashtbl` `proc`.`p_list` `proc`.`p_hash` `nextpid`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:137 +#, no-wrap +msgid "`proctree_lock`" +msgstr "`proctree_lock`" + +#. type: Table +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:138 +#, no-wrap +msgid "`proc`.`p_children` `proc`.`p_sibling`" +msgstr "`proc`.`p_children` `proc`.`p_sibling`" + +#. type: Title == +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:141 +#, no-wrap +msgid "Atomically Protected Variables" +msgstr "Атомарно защищённые переменные" + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:144 +msgid "" +"An atomically protected variable is a special variable that is not protected " +"by an explicit lock. Instead, all data accesses to the variables use special " +"atomic operations as described in man:atomic[9]. Very few variables are " +"treated this way, although other synchronization primitives such as mutexes " +"are implemented with atomically protected variables." +msgstr "" +"Переменная с атомарной защитой — это специальная переменная, которая не " +"защищена явной блокировкой. Вместо этого все операции доступа к данным этой " +"переменной используют специальные атомарные операции, как описано в " +"man:atomic[9]. Очень немногие переменные обрабатываются таким образом, хотя " +"другие примитивы синхронизации, такие как мьютексы, реализованы с " +"использованием переменных с атомарной защитой." + +#. type: Plain text +#: documentation/content/en/books/arch-handbook/locking/_index.adoc:145 +msgid "`mtx`.`mtx_lock`" +msgstr "`mtx`.`mtx_lock`" |
