В инженерии , master-slave — это отношение между двумя системами, в котором одна контролирует другую. В некоторых случаях один master контролирует только одну подчиненную систему, но в других случаях есть несколько подчиненных систем, контролируемых одним и тем же master. Иногда master — это другой тип системы, чем slave, но иногда есть несколько похожих систем, и одна из них назначается master для централизации внешнего (т. е. пользовательского) управления коллекцией. [1]
Из-за связи с рабством терминология является предметом споров и в некоторых случаях заменяется альтернативными терминами. [2] [3] [4]
Ведущие часы вырабатывают сигналы времени, используемые для синхронизации одних или нескольких ведомых часов как части сети часов ; ведомые часы получают и отображают время от ведущего устройства; хотя они могут и сами вести отсчет времени, если ведущее устройство не работает.
Шина последовательного периферийного интерфейса (SPI) обычно имеет одно ведущее устройство, управляющее несколькими ведомыми устройствами. [5] [6] [7] [8]
I2C и I3C также являются примером технологии «ведущий-ведомый».
Modbus использует ведущее устройство для инициирования запросов на подключение к ведомым устройствам.
Триггер , запускаемый фронтом, может быть создан путем размещения двух запираемых защелок в конфигурации ведущий-ведомый. Он так назван, потому что ведущая защелка контролирует значение ведомой защелки и заставляет ведомую защелку удерживать свое значение, поскольку ведомая защелка всегда копирует свое новое значение из ведущей защелки.
В фотографии вторичные , или ведомые, вспышки подключаются к ведущему устройству для обеспечения синхронизированного освещения.
Параллельное аудиодублирование часто подразумевает использование нескольких записывающих устройств (например, кассетной ленты или компакт-диска ), соединенных вместе таким образом, что управление элементами управления главного устройства запускает те же команды на подчиненных устройствах.
Железнодорожные локомотивы, работающие в одном поезде (например, для перевозки груза, слишком тяжелого для одного локомотива), могут быть настроены для работы в режиме «главный-подчиненный», когда все локомотивы, кроме одного, контролируются первым. См. Управление составом поезда .
В гидравлической системе главный цилиндр — это управляющее устройство, преобразующее силу в гидравлическое давление, которое приводит в движение рабочий цилиндр на другом конце гидравлической линии. Распространенное применение — тормозная система транспортного средства.
Термин «главный» используется во многих технологических контекстах, которые не относятся к отношениям контроля. «Главный» может использоваться для обозначения копии, которая имеет большее значение, чем другие копии, в этом случае термин является абсолютным понятием, а не отношением. Иногда термин « главный-подчиненный» используется в контекстах, которые не подразумевают отношения контроля.
В репликации базы данных главная база данных является авторитетным источником. Реплика базы данных, иногда называемая подчиненной, синхронизируется с ней, но не контролируется ею.
Интерфейс жесткого диска Parallel ATA (он же IDE) поддерживает два жестких диска на кабеле, которые обозначены как главный и подчиненный . Это различие требуется интерфейсом, даже если ни один из дисков не имеет контроля или приоритета над другим.
Терминология «хозяин-раб» впервые была использована в 1904 году. [9]
Терминология использовалась в 1988 году для RFC 1059 и в 1997 году для RFC 2136, связанных с системой доменных имен . В 2020 году Пол Викси прокомментировал свой выбор слов:
Я ввел терминологию master/slave в RFC 2136, потому что мне нужны были имена для ролей в транзакции AXFR/IXFR , а иерархия передачи зоны могла быть более чем на один уровень глубже, так что сервер мог инициировать некоторые AXFR/IXFR для «первичного мастера», но затем отвечать на AXFR/IXFR от других серверов. Оглядываясь назад, я должен был выбрать термины «инициатор передачи» и «ответчик передачи». Однако гидравлические тормоза и системы сцепления в моей машине имели « главные цилиндры » и «ведомые цилиндры», и поэтому я не думал, что изобретаю новое использование слов «главный» и «ведомый», или что мое использование их для этой цели будет спорным. [10]
Упомянутые гидравлические тормоза для автомобильной промышленности были запатентованы в 1917 году Малкольмом Лоухедом . [11] Термин «рабочий цилиндр» использовался и в других патентных заявках, в том числе в заявке Роберта Эсно-Пельтери , опубликованной в 1919 году. [12]
Компания Global Language Monitor, занимающаяся медиааналитикой, поместила словосочетание «господин/раб» на первое место в своем ежегодном списке политически окрашенных выражений за 2004 год. [13] Движение Black Lives Matter в США вызвало возобновление дискуссий и изменений в терминологии в 2020 году. [14] Однако некоторые утверждают, что изменение терминологии является поверхностным, сравнивая его с перформативным активизмом . [15] [3] Тем не менее, были предложены различные альтернативные и в целом контекстно-зависимые термины, в том числе: [14] [3] [16] [17] [18] [19] [20]
В 2003 году, получив жалобу на дискриминацию от сотрудника округа, округ Лос-Анджелес в Калифорнии потребовал от производителей, поставщиков и подрядчиков прекратить использовать термины «хозяин» и «раб» в отношении продукции. [21] [22] После жалоб округ Лос-Анджелес опубликовал заявление, в котором говорилось, что решение было «не более чем просьбой». [21]
В 2018 году после жарких дебатов разработчики Python заменили этот термин. [4] Python перешел на main , parent и server ; а также worker , child и helper , в зависимости от контекста. [4] [23] Ядро Linux приняло похожую политику использования более конкретных терминов в новом коде и документации. [17] [24]
Руководство по стилю разработчика Google рекомендует избегать термина «главный» в документации по программному обеспечению, особенно в сочетании с «подчиненным » . [25] [ когда? ]
В 2020 году GitHub переименовал основную ветку git по умолчанию в main . [14]
«Мы обнаружили, что «хозяин/раб» был самым вопиющим примером политической корректности в 2004 году», — сказал Пол Дж. Дж. Паяк, президент The Global Language Monitor.