Master/Slave

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Master/Slave (englisch für Herr/Sklave) ist eine Form der hierarchischen Verwaltung des Zugriffs auf eine gemeinsame Ressource meist in Form eines gemeinsamen Datenkanals in zahlreichen Problemstellungen der Regelung und Steuerung.

Grundproblem[Bearbeiten | Quelltext bearbeiten]

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, kann keine Übertragung mehr stattfinden, da dann auf dem Bus bei den empfangenden Teilnehmern nur noch verstümmelte Daten ankommen. Es muss also eine Möglichkeit geschaffen werden, dass sich die Teilnehmer im gegenseitigen Einvernehmen den Datenkanal teilen. Eine Möglichkeit ist das Master/Slave-Prinzip anzuwenden.

Arbeitsprinzip[Bearbeiten | Quelltext bearbeiten]

Ein Teilnehmer ist der Master, alle anderen sind die Slaves. Der Master hat als einziger das Recht, unaufgefordert auf die gemeinsame Ressource 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[Bearbeiten | Quelltext bearbeiten]

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 die Kommunikation zwischen Slaves nicht möglich ist. Weiterhin ist das Abfragen (Polling) der Slaves durch den Master ineffizient.

Einsatz[Bearbeiten | Quelltext bearbeiten]

Eingesetzt wird das Master-Slave-Verfahren zum Beispiel:

Master-Slave bei ATA/ATAPI-Geräten[Bearbeiten | Quelltext bearbeiten]

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. Der Begriff wird dennoch genutzt, da die Schnittstelle die Eigenheit hat, ein Slave-Gerät nur dann korrekt anzusprechen, wenn zugleich auch ein Gerät als Master deklariert und vorhanden ist. Nach offizieller Sprachregelung werden jene beiden Geräte Device 0 bzw. Device 1 genannt. Details hierzu unter ATA/ATAPI.

Master-Slave bei Steckdosenleisten[Bearbeiten | Quelltext bearbeiten]

Steckdosenleisten nach dem Master-Slave-Prinzip (so genannte 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[Bearbeiten | Quelltext bearbeiten]

Die Terminologie wurde in letzter Zeit oft vermieden bzw. mit einer anderen 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,[2] Microsoft,[3] Engine Yard,[4] Amazon Web Services,[5] und ACM[6], wie auch in Python,[7][8] Django,[9][10] Drupal,[11] CouchDB,[12] Redis[13] und MediaWiki (welche immer noch „master“ nutzt) verwendet wird.[14][15]

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

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

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

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Master-to-Slave replication (englisch) IBM. Abgerufen am 10. Mai 2012.
  2. IBM Knowledge Center (en-US)
  3. Configure Database Replicas for Management Points (en)
  4. Set Up Database Replication (en-US)
  5. Working with Read Replicas of MariaDB, MySQL, and PostgreSQL DB Instances - Amazon Relational Database Service.
  6. Sergey Savinov, Khuzaima Daudjee: Dynamic database replica provisioning through virtualization. In: ACM (Hrsg.): Proceeding. 30. Oktober 2010, S. 41–46. doi:10.1145/1871929.1871937.
  7. Python joins movement to dump 'offensive' master, slave terms (en). 
  8. Github: Python-Entwickler wollen Begriffe Master und Slave ersetzen - Golem.de. 14. September 2018 (golem.de [abgerufen am 7. Oktober 2018]).
  9. Fixes #22667. Replaced leader/follower terminology with primary/replica by fcurella · Pull Request #2694 · django/django.
  10. Multiple databases (en)
  11. Replace "master/slave" terminology with "primary/replica" (en). In: Drupal.org, 28. Mai 2014. 
  12. CouchDB - Replace "master" and "slave" terminology (en). 
  13. Redis - Replace "master" and "slave" terms in Redis (en). 
  14. Rename DB_SLAVE constant to DB_REPLICA · wikimedia/mediawiki@950cf60.
  15. https://lists.wikimedia.org/pipermail/wikitech-l/2016-September/086450.html
  16. ISC explanation via Twitter.
  17. CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. Abgerufen am 7. Oktober 2018.
  18. FACT CHECK: Master/Slave. In: Snopes.com. (snopes.com [abgerufen am 7. Oktober 2018]).
  19. CNN.com - 'Master' and 'slave' computer labels unacceptable, officials say - Nov. 26, 2003. Abgerufen am 7. Oktober 2018.
  20. '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.”
  21. Sebastian Grüner: Black Lives Matter: Linux-Kernel könnte "inklusive Sprache" bekommen. Golem.de, 6. Juli 2020, abgerufen am 6. Juli 2020 (deutsch).
  22. Stephen Shankland: Tech terms face scrutiny amid anti-racism efforts. CNET, 10. Juni 2020, abgerufen am 6. Juli 2020 (englisch).