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 alternative Ausdrücke wie Controller/Peripheral verwendet.[1]

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:

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 ist seit dem frühen 21. Jahrhundert oft vermieden bzw. durch eine andere ersetzt worden, 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,[3] Microsoft,[4] Engine Yard,[5] Amazon Web Services,[6] ACM,[7] Python,[8][9] Django,[10][11] Drupal,[12] CouchDB,[13] Redis[14] und MediaWiki (welche immer noch „master“ nutzt) verwendet wird.[15][16]

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.[17]

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“.[18][19] 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.[20] 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.[21]

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

Die Modbus Organisation ersetzte im Sommer 2020 das Begriffspaar „Master/Slave“ durch „Client/Server“.[24]

Einzelnachweise

  1. Sinclair Im: There’s an industry that talks daily about ‘masters’ and ‘slaves.’ It needs to stop. In: The Washington Post (Online-Portal). 12. Juni 2020, abgerufen am 23. September 2020.
  2. Master-to-Slave replication. IBM, abgerufen am 10. Mai 2012 (englisch).
  3. IBM Knowledge Center. In: www.ibm.com. Abgerufen am 8. Mai 2018 (amerikanisches Englisch).
  4. Configure Database Replicas for Management Points. In: technet.microsoft.com. Abgerufen am 8. Mai 2018 (englisch).
  5. Set Up Database Replication. In: Engine Yard Developer Center. Abgerufen am 8. Mai 2018 (amerikanisches Englisch).
  6. Working with Read Replicas of MariaDB, MySQL, and PostgreSQL DB Instances - Amazon Relational Database Service. In: docs.aws.amazon.com. Abgerufen am 8. Mai 2018 (englisch).
  7. Sergey Savinov, Khuzaima Daudjee: Dynamic database replica provisioning through virtualization. In: Proceeding. ACM, 30. Oktober 2010, S. 41–46, doi:10.1145/1871929.1871937 (acm.org).
  8. Python joins movement to dump 'offensive' master, slave terms. Abgerufen am 12. September 2018 (englisch). 
  9. Github: Python-Entwickler wollen Begriffe Master und Slave ersetzen - Golem.de. 14. September 2018 (golem.de [abgerufen am 7. Oktober 2018]).
  10. Fixes #22667. Replaced leader/follower terminology with primary/replica by fcurella · Pull Request #2694 · django/django.
  11. Multiple databases. In: Django Project. Abgerufen am 8. Mai 2018 (englisch).
  12. Replace "master/slave" terminology with "primary/replica" In: Drupal.org, 28. Mai 2014. Abgerufen am 17. April 2018 (englisch). 
  13. CouchDB - Replace "master" and "slave" terminology (englisch). 
  14. Redis - Replace "master" and "slave" terms in Redis (englisch). 
  15. Rename DB_SLAVE constant to DB_REPLICA · wikimedia/mediawiki@950cf60. (englisch).
  16. https://lists.wikimedia.org/pipermail/wikitech-l/2016-September/086450.html
  17. ISC explanation via Twitter. (englisch).
  18. CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. Abgerufen am 7. Oktober 2018.
  19. FACT CHECK: Master/Slave. In: Snopes.com. (snopes.com [abgerufen am 7. Oktober 2018]).
  20. CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. Abgerufen am 7. Oktober 2018.
  21. 'Master/slave' named most politically incorrect term. In: Seattle PI (Hrsg.): seattlepi.com. 3. Dezember 2004 (englisch, seattlepi.com [abgerufen am 7. Oktober 2018]): “The computer term "master/slave," which was banned as racially offensive by a Los Angeles County purchasing department, was named the most politically incorrect term of the year.[...] Among other terms on the top 10 list of politically charged words and phrases, issued by the word usage group Global Language Monitor, were "non-same sex marriage" to describe heterosexual unions, "waitron" for waiter or waitress and "higher being" for God, a term some people found too religious.”
  22. Sebastian Grüner: Black Lives Matter: Linux-Kernel könnte "inklusive Sprache" bekommen. Golem.de, 6. Juli 2020, abgerufen am 6. Juli 2020 (deutsch).
  23. Stephen Shankland: Tech terms face scrutiny amid anti-racism efforts. CNET, 10. Juni 2020, abgerufen am 6. Juli 2020 (englisch).
  24. Modbus Organization Inc.: Modbus Organization Replaces Master-Slave with Client-Server. 9. Juli 2020, abgerufen am 21. Oktober 2020 (englisch).