Master/Slave
# Master/Slave

Master/Slave (englisch für Herr/Sklave) ist in der Informationstechnik eine Form der hierarchischen Verwaltung von Zugriffen auf gemeinsame Ressourcen meist in Form eines gemeinsamen Datenkanals bei zahlreichen Problemstellungen der Regelung und Steuerung.

Aufgrund der Terminologie aus Zeiten der Sklaverei werden aus antirassistischen Erwägungen heraus in vielen Bereichen zunehmend alternative Ausdrücke wie Controller/Peripheral verwendet.

## Grundproblem

Für die Datenübertragung steht nur ein gemeinsamer Übertragungskanal zur Verfügung (z. B. als Funkstrecke oder in Form eines Datenbusses). Wenn mehrere Teilnehmer gleichzeitig senden würden, könnte keine Übertragung mehr stattfinden, da dann auf dem Bus bei den empfangenden Teilnehmern nur noch verstümmelte Daten ankämen. Es muss also eine Möglichkeit geschaffen werden, dass sich die Teilnehmer im gegenseitigen Einvernehmen den Datenkanal zeitlich teilen. Eine Möglichkeit ist, das Master/Slave-Prinzip anzuwenden.

## Arbeitsprinzip

Ein Teilnehmer ist der Master, alle anderen sind die Slaves. Der Master hat als einziger das Recht, unaufgefordert auf die gemeinsame Ressource, den Bus, zuzugreifen. Der Slave kann von sich aus nicht auf die gemeinsame Ressource zugreifen; er muss warten, bis er vom Master gefragt wird (Polling) oder über eine an der gemeinsamen Ressource vorbei gehenden Verbindung dem Master anzeigen, dass er gefragt werden will.

### Vor- und Nachteile

Hauptvorteil ist, dass der Master die Zugriffsverhältnisse beherrscht: um ihn wird das System aufgebaut, was die Planung einfach macht.

Master-Slave-Architekturen können auch mit dem Token Bus kombiniert werden, wobei dann nur die Master den Token weitergeben.

Ein großer Nachteil ist, dass keine direkte Kommunikation zwischen Slaves möglich ist. Mithin ist das Abfragen (Polling) der Slaves durch den Master ineffizient.

## Einsatz

Eingesetzt wird das Master-Slave-Verfahren zum Beispiel:

* bei Master-Slave-Steckdosen auf Strom
* bei einem Bussystem, z. B. ATA/ATAPI, bei den Feldbussen (Profibus, BITBUS, AS-I etc.) als Zugriffsverfahren, siehe ausführlich: Bus Mastering
* bei einem Computernetzwerk
* bei logischer Schaltnetzwerken wie zweiflankengesteuerten Flipflops
* in der Fotografie beim entfesselten Blitzen mit Blitzlichtgeräten
* bei der Bluetooth-Technologie, s. Piconet
* in der Kommunikationstechnik (siehe Ping-Pong-Verfahren )
* bei Bewegungsmeldern
* in der Veranstaltungstechnik (z. B. bei Movingheads)
* zwischen Datenbanken, wo ein Master alle Daten eines Slaves ändern kann

### Master-Slave bei ATA/ATAPI-Geräten

Im Umfeld der ATA/ATAPI-Schnittstelle werden die beiden von einer ATA/ATAPI-Schnittstelle ansteuerbaren Geräte traditionell als Master drive und Slave drive bezeichnet. Dies steht im Gegensatz zu der oben beschriebenen allgemeinen Bedeutung, da beide angeschlossenen Geräte (z. B. Festplatten) in diesem Sinne als Slaves zu verstehen sind, während als Master der Host (normalerweise ist das der PC) fungiert. Nach offizieller Sprachregelung werden jene beiden Geräte Device 0 bzw. Device 1 genannt. Details hierzu unter ATA/ATAPI.

### Master-Slave bei Steckdosenleisten

Steckdosenleisten nach dem Master-Slave-Prinzip (sogenannte Master-Slave-Steckdosenleisten) verfügen über eine Master-Steckdose und (in der Regel mehrere parallelgeschaltete) Slave-Steckdosen. Fließt ein bestimmter Mindeststrom in der Master-Steckdose, wird dies durch die eingebaute Elektronik erkannt, welche darauf auch die Slave-Steckdosen einschaltet. Schaltet man den Master-Verbraucher aus, werden auch die Slaves stromlos. In der Regel verfügt eine solche Steckdosenleiste auch über einen Knopf zur Einstellung der Ansprechempfindlichkeit und eine Signal-LED. Der Hauptvorteil ist, dass nur ein Gerät (Master) ein- bzw. ausgeschaltet werden muss, wenn mehrere elektrisch betriebene Geräte gleichzeitig betrieben werden sollen. Besonders beim Einsatz an einem Computerarbeitsplatz (PC = Master) dient eine solche Master-Slave-Automatik nicht nur der Bequemlichkeit, sondern sie verhindert außerdem, dass das Ausschalten von Peripheriegeräten wie Monitore, Drucker oder aktive Lautsprecher etc. vergessen wird. Nachteil ist ein geringer, permanenter Eigenenergieverbrauch der Steckdosenleiste, auch bei ausgeschalteten Geräten.

## Kritik an der Terminologie

Die Terminologie wurde in letzter Zeit oft vermieden bzw. durch eine andere ersetzt, da die Begriffe „master“ und „slave“ an die Praxis der Sklaverei erinnern.

Eine Alternative für Datenbanken ist „primary“ und „replica“, welche in den Dokumentationen von IBM, Microsoft, Engine Yard, Amazon Web Services, und ACM, wie auch in Python, Django, Drupal, CouchDB, Redis und MediaWiki (welche immer noch „master“ nutzt) verwendet wird.

Im Dezember 2017 entschied das Internet Systems Consortium die Wörter primary/secondary als Ersatz für die master/slave-Terminologie in ihrer DNS-Software BIND zuzulassen.

2003 forderte der Bezirk Los Angeles in Kalifornien Hersteller, Lieferanten und Auftragnehmer auf, die Verwendung von „master“ und „slave“ in ihren Produkten einzustellen; der Bezirk stelle diese Anfrage „basierend auf der kulturellen Vielfalt und Sensibilität von Los Angeles County“. Nach Beschwerden über diese Anfrage gab der Bezirk Los Angeles ein Statement ab, in der dieser erklärte, dass die Entscheidung „nichts anderes als ein Antrag“ sei. Nach dieser Kontroverse wählte Global Language Monitor, welches die Verwendung der englischen Sprache analysiert, die Begriffe „master/slave“ als das politisch inkorrekteste Wort von 2004.

Die „Black Lives Matter“-Bewegung entfachte die Diskussion im Jahr 2020 erneut.

Die Modbus Organisation ersetzt im Sommer 2020 das Begriffspaar "Master-Slave" durch "Client-Server".

