HOME

TheInfoList



OR:

Master/slave is a model of asymmetric communication or control where one
device A device is usually a constructed tool. Device may also refer to: Technology Computing * Device, a colloquial term encompassing desktops, laptops, tablets, smartphones, etc. * Device file, an interface of a device driver * Peripheral, any devi ...
or process (the "master") controls one or more other devices or processes (the "slaves") and serves as their communication hub. In some systems, a master is selected from a group of eligible devices, with the other devices acting in the role of slaves. The ''master/slave'' terminology was first used in 1904. Since the early 21st century, the terms have become a subject of controversy from their association with slavery and some organizations have opted to replace them with alternative terms.


Examples

* In electronics, master/slave relationships are used to describe some of the following scenarios: ** In
parallel ATA Parallel ATA (PATA), originally , also known as IDE, is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection ...
hard drive arrangements, the terms master and slave are used to describe drives on the same cable, but neither drive has control or priority over the other. ** A master clock that provides time signals used to synchronize one or more slave clocks as part of a
clock network A clock network or clock system is a set of synchronized clocks designed to always show exactly the same time by communicating with each other. Clock networks usually consist of a central master clock kept in sync with an official time source, ...
. ** In
AXI AXI or ''variation'', may refer to: * Automated X-ray inspection * Advanced eXtensible Interface of ARM for Advanced Microcontroller Bus Architecture (AMBA) * AXI car, the right-hand-drive version of the DMC DeLorean * Aeron International Airlines ...
, master and slave have differing roles, with master initiating transactions and the slave responding to those transactions. ** A Serial Peripheral Interface bus typically has a single master controlling multiple slaves. Many people recommend using more modern terms (controller, peripheral, etc.) and discontinuing the use of master/slave terms. ** Edge-triggered flip-flops can be created by arranging two latches (master latch and slave latch) in a master-slave configuration. It is named because the master latch controls the slave latch's value and forces the slave latch to hold its value, as the slave latch always copies its new value from the master latch. * In database replication, the master database is regarded as the authoritative source, and the slave (also called replica) databases are synchronized to it. * In photography, secondary or slave flash units may be synchronized to the master unit to provide light from additional directions. * Duplication is often done with several
cassette tape The Compact Cassette or Musicassette (MC), also commonly called the tape cassette, cassette tape, audio cassette, or simply tape or cassette, is an analog magnetic tape recording format for audio recording and playback. Invented by Lou Ottens ...
s or compact disc recorders linked together. Operating the controls on the master triggers the same commands on the slaves so that recording is done in parallel. * Railway
locomotive A locomotive or engine is a rail transport vehicle that provides the Power (physics), motive power for a train. If a locomotive is capable of carrying a payload, it is usually rather referred to as a multiple unit, Motor coach (rail), motor ...
s operating in multiple (for example: to pull loads too heavy for a single locomotive) can be referred to as a master/slave configuration with the operation of all locomotives in the train slaved to the controls of the first locomotive. See Multiple-unit train control. * In automotive engineering, the master cylinder is a control device that converts force into hydraulic pressure in the
brake A brake is a mechanical device that inhibits motion by absorbing energy from a moving system. It is used for slowing or stopping a moving vehicle, wheel, axle, or to prevent its motion, most often accomplished by means of friction. Background ...
system. This device controls slave cylinders located at the other end of the hydraulic system.


Early usages

The ''master/slave'' terminology was used in 1988 for RFC 1059 and in 1997 for RFC 2136, related to the domain name system. In 2020, Paul Vixie commented on his choice of words:
I introduced the master/slave terminology in RFC 2136, because I needed names for the roles in an AXFR/IXFR transaction, and the zone transfer hierarchy could be more than one layer deep, such that a server might initiate some AXFR/IXFR's to the "primary master" but then respond to AXFR/IXFR's from other servers. In retrospect I should have chosen the terms, "transfer initiator" and "transfer responder". However, the
hydraulic brake A hydraulic brake is an arrangement of braking mechanism which uses brake fluid, typically containing glycol ethers or diethylene glycol, to transfer pressure from the controlling mechanism to the braking mechanism. History During 1904, Frederick ...
and clutch systems in my car had " master cylinders" and "slave cylinders", and so I did not think I was either inventing a new use for the words "master" and "slave", or that my use of them for this purpose would be controversial.
Said
hydraulic brake A hydraulic brake is an arrangement of braking mechanism which uses brake fluid, typically containing glycol ethers or diethylene glycol, to transfer pressure from the controlling mechanism to the braking mechanism. History During 1904, Frederick ...
s for the automotive industry were patented in 1917 by
Malcolm Loughead Malcolm Lockheed ((né Malcolm Loughead; - ) was an American aviation engineer who formed the Alco Hydro-Aeroplane Company along with his brother, Allan Loughead, also known as Allan Lockheed. This company went on to become the Lockheed Corpora ...
. The term ''slave cylinder'' was used in other patent applications, including one by Robert Esnault-Pelterie, published in 1919.


Terminology concerns

In 2003 after receiving a discrimination complaint from a county employee, the County of Los Angeles in California asked that manufacturers, suppliers and contractors stop using ''master'' and ''slave'' terminology on products. Following complaints, the County of Los Angeles issued a statement saying that the decision was "nothing more than a request". Media analytics company Global Language Monitor placed the term first in their annual list of politically charged language for 2004. In 2018, after a heated debate, developers of the Python programming language replaced the term. The Black Lives Matter movement in the United States sparked renewed discussion and terminology changes in 2020. Some have argued that the change is superficial and that companies should make real change to support the black community. Google's developer documentation
style guide A style guide or manual of style is a set of standards for the writing, formatting, and design of documents. It is often called a style sheet, although that term also has multiple other meanings. The standards can be applied either for gene ...
recommends avoiding the term ''master'' in software documentation, especially in combination with ''slave''.


Other terminology

Various replacement terms for 'master' or 'slave' have been proposed and implemented. In 2020, GitHub replaced the default 'master' git branch with 'main', although this action was controversial because of the term's etymology—for example, a
master copy Mastering, a form of audio post production, is the process of preparing and transferring recorded audio from a source containing the final mix to a data storage device (the master), the source from which all copies will be produced (via meth ...
of an audio recording. Other replacement names include 'default', 'primary', 'controller', 'root', 'initiator', 'leader', 'director'; and for 'slave', 'performer', 'worker', 'responder', 'device', 'replica', and 'secondary'. Python switched to 'main', 'parent', and 'server'; and 'worker', 'child', and 'helper', depending on context. The
Linux kernel The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
has adopted a similar policy to use more specific terms in new code or documentation. Many projects and standards have already used alternative terms since their inception.


See also

* Flexible single master operation * Bus mastering * Master clock * Multi-master replication * SCSI initiator and target


References

{{Reflist Network protocols Distributed computing architecture