Master/Slave (Technik) - Master/slave (technology)

Master/Slave ist ein Modell asymmetrischer Kommunikation oder Steuerung, bei dem ein Gerät oder Prozess (der „Master“) ein oder mehrere andere Geräte oder Prozesse (die „Slaves“) steuert und als deren Kommunikationsknotenpunkt dient. In einigen Systemen wird ein Master aus einer Gruppe von berechtigten Geräten ausgewählt, wobei die anderen Geräte in der Rolle von Slaves agieren. Historisch wurde die Master / Slave - Terminologie zuerst im Jahr 1904 verwendet, obwohl erst im 21. Jahrhundert hat es ein Gegenstand von Kontroversen worden wegen seiner Vereinigung mit Sklaverei und Organisationen und Produkte begannen sie mit alternativen Begriffen zu ersetzen.

Beispiele

  • In der Elektronik werden Master/Slave-Beziehungen verwendet, um einige der folgenden Szenarien zu beschreiben:
    • Bei parallelen ATA- Festplattenanordnungen werden die Begriffe Master und Slave verwendet, um Laufwerke am selben Kabel zu beschreiben, aber keines der Laufwerke hat die Kontrolle oder Priorität gegenüber dem anderen.
    • Eine Hauptuhr , die Zeitsignale bereitstellt , die verwendet werden, um eine oder mehrere Nebenuhren als Teil eines Uhrennetzwerks zu synchronisieren .
    • In AXI haben Master und Slave unterschiedliche Rollen, wobei der Master Transaktionen initiiert und der Slave auf diese Transaktionen antwortet.
    • Flankengetriggerte Flip-Flops können durch Anordnen von zwei Latches (Master-Latch und Slave-Latch) in einer Master-Slave-Konfiguration erzeugt werden . Es wird benannt, weil das Master-Latch den Wert des Slave-Latch steuert und das Slave-Latch zwingt, seinen Wert zu halten, da das Slave-Latch immer seinen neuen Wert vom Master-Latch kopiert.
  • Bei der Datenbankreplikation wird die Master-Datenbank als autoritative Quelle betrachtet und die Slave-Datenbanken (auch Replikat genannt) werden mit ihr synchronisiert.
  • Bei der Fotografie können sekundäre oder Slave-Blitzgeräte mit der Master-Einheit synchronisiert werden, um Licht aus zusätzlichen Richtungen bereitzustellen.
  • Die Vervielfältigung erfolgt oft mit mehreren miteinander verbundenen Kassettenbändern oder CD- Recordern. Die Bedienelemente auf der Master - Betriebs triggert dieselben Befehle an die Slaves , so daß Aufzeichnungs parallel durchgeführt wird.
  • Eisenbahnlokomotiven , die in mehreren Zügen betrieben werden (z. B. um zu schwere Lasten für eine einzelne Lokomotive zu ziehen) können als Master/Slave-Konfiguration bezeichnet werden, wobei der Betrieb aller Lokomotiven im Zug der Steuerung der ersten Lokomotive untergeordnet ist. Siehe Zugbeeinflussung von mehreren Einheiten .
  • In der Kraftfahrzeugtechnik, der Hauptzylinder ist ein Steuergerät , das Kraft in einem hydraulischen Druck in der wandelt Bremssystem. Dieses Gerät steuert Nehmerzylinder, die sich am anderen Ende des Hydrauliksystems befinden.

Frühe Verwendungen

Die Master/Slave-Terminologie wurde 1997 für RFC 2136 verwendet, das sich auf das Domain Name System bezieht . Laut Paul Vixie :

Ich habe die Master/Slave-Terminologie in RFC 2136 eingeführt , weil ich Namen für die Rollen in einer AXFR/IXFR-Transaktion benötigte und die Zonentransferhierarchie mehr als eine Schicht tief sein konnte, sodass ein Server möglicherweise einige AXFR/IXFRs an die "primary master", aber antwortet dann auf AXFR/IXFR's von anderen Servern. Im Nachhinein hätte ich die Begriffe "Transfer-Initiator" und "Transfer-Responder" wählen sollen. Die hydraulischen Brems- und Kupplungssysteme in meinem Auto hatten jedoch "Hauptzylinder" und "Nehmerzylinder", und so dachte ich nicht, dass ich entweder eine neue Verwendung für die Wörter "Master" und "Slave" erfinde oder dass meine Verwendung von ihnen für diesen Zweck wäre umstritten.

Diese hydraulischen Bremsen für die Automobilindustrie wurden 1917 von Malcolm Loughead patentiert . Der Begriff "Nehmerzylinder" wurde in anderen Patentanmeldungen verwendet, darunter einer von Robert Esnault-Pelterie , die 1919 veröffentlicht wurde.

Terminologische Bedenken

Im Jahr 2003 forderte der Bezirk Los Angeles in Kalifornien Hersteller, Zulieferer und Auftragnehmer auf, die Verwendung von „Master“- und „Slave“-Terminologie auf Produkten einzustellen; der Landkreis stellte diese Anfrage „auf der Grundlage der kulturellen Vielfalt und Sensibilität des Los Angeles County“. Nach Aufschreien über den Antrag gab der Landkreis Los Angeles eine Erklärung ab, in der es hieß, dass die Entscheidung „nicht mehr als eine Anfrage“ sei. Als Reaktion auf die Anfrage des County of Los Angeles fand Global Language Monitor den Begriff „Master/Slave“ im Jahr 2004 als das ungeheuerlichste Beispiel für politische Inkorrektheit und nannte ihn den politisch inkorrektsten Begriff dieses Jahres: „[ Dies ist nur ein weiteres Beispiel für die Einfügung von Politik in alle Facetten des modernen Lebens, bis hin zu den Kontrollprozessen der Computertechnologie." Im Jahr 2018 ersetzte Python den Begriff nach einer hitzigen Debatte. Viele Entwickler stimmten in der Diskussion über die Ersetzung überein, dass der Begriff "Slave" ersetzt werden sollte, während "Master" nicht anstößig sei, während andere argumentierten, dass ein Wechsel von "Slave" ebenfalls unnötig sei. Unter Entwicklern gab es ähnlich umstrittene Debatten, als Django und Drupal (2014) und Redis (2017) den Begriff ersetzten. Die Black Lives Matter- Bewegung hat diese Diskussion im Jahr 2020 erneut entfacht. Einige haben argumentiert, dass die Änderung oberflächlich ist und dass Unternehmen echte Veränderungen vornehmen sollten, um die schwarze Gemeinschaft zu unterstützen. Siehe auch ähnliche Bedenken bezüglich des Technologiebegriffs "Blacklist" .

Im Jahr 2020 veröffentlichte das Open Compute Project Terminologierichtlinien für Inklusion und Offenheit, in denen allgemeine Terminologie und häufig verwendete Pinbelegung und Signalnamen empfohlen werden, die veraltet sind, und Ersatzterminologie vorgeschlagen.

Mögliche Ersetzungskonventionen

Es wurden verschiedene Phrasen angenommen, um die bestehende Verwendung der Phrase zu ersetzen, aber es gibt wenig Konsens. Einige Beispiele sind:

Controller/Agent
Das Jenkins- Softwareprojekt hat die Wörter "Master/Slave" abgeschafft und durch "Controller" / "Agent" ersetzt.
Primär sekundär
Im Dezember 2017 beschloss das Internet Systems Consortium , die Wörter „primär“ und „sekundär“ als Ersatz für die Master/Slave-Terminologie in seiner DNS-Server-Software BIND zuzulassen .
Primär/Replikat
Im Mai 2014 ersetzte Django in seiner Dokumentation "Master/Slave" durch "Leader/Follower" und dann innerhalb von zwei Tagen durch "Primary/Replica". Im Juni 2014 ersetzte Drupal "Master/Slave" durch "Primary/Replica", inspiriert von Django. Dies wurde auch von Microsoft und Amazon Web Services / Amazon Relational Database Service übernommen .
Meister/Replik
Die Master-/Replikat-Terminologie wurde von Engine Yard und Redis übernommen .
Quelle/Replik
Im Juli 2020 kündigte MySQL an, in zukünftigen Releases „master/slave“ durch „source/replica“ zu ersetzen. Die Änderung erfolgte im Oktober 2020.
Master/Standby
Die Master-/Standby-Terminologie wurde von PostgreSQL übernommen .
Meister/Minion
Die Master/Minion-Terminologie wurde von Salt übernommen .
Anbieter/Verbraucher
Die Provider-/Consumer-Terminologie wurde von OpenLDAP übernommen .
Meister/Puppe
Die Master/Mariont-Terminologie wurde von Godot Engine übernommen .
Controller/Peripheriegeräte
Im Juni 2020 beschloss die Open Source Hardware Association , für den SPI-Bus verwendete Begriffe wie MOSI/MISO einzustellen und sich stattdessen für die Akronyme COPI/CIPO zu entscheiden, obwohl diese Gruppe nicht Eigentümer der SPI-Bus-Spezifikation ist.
Initiator/Anhänger
Die HDMI- Spezifikation verwendet "Initiator" und "Follower" für das CEC- Kommunikationsprotokoll.
Hauptsächlich
GitHub hat den Standard-Branch im Oktober 2020 von "master" in "main" umbenannt. Git verwendet weiterhin "master" als Standard-Branch-Namen git initaus Gründen der Abwärtskompatibilität und erwägt, ihn in Zukunft zu ändern. Manche Leute finden diesen Ersatz fragwürdig, da sich "Master" eher auf die Bedeutung von Master-Kopie oder Original als Master/Slave bezieht .
Kundenserver
Die Modbus-Organisation hat im Juli 2020 "Master-Slave" durch "Client-Server" ersetzt.
Quelle/Mix
Im Jahr 2021 aktualisierte Adobe die Terminologie seiner Creative Cloud- App-Suite und ersetzte „master“ durch „source“ oder „mix“ oder entfernte den Begriff in einigen Fällen vollständig, obwohl sich „master“ auf die Bedeutung von „ master “ bezieht copy " (Original) oder globale Einstellungen, statt Master/Slave. Sie ersetzten auch den Begriff "Blacklist" durch "Blocklist".
Haupt-Eltern-Server/Arbeiter-Kind-Helfer
Im Jahr 2018 ersetzte Python die Verwendung des Begriffs „Master“ unterschiedlich durch „main“, „parent“ und „server“; und "slave" mit "worker", "child" und "helper", je nach Kontext. Der Linux- Kernel hat eine ähnliche Richtlinie eingeführt, um spezifischere Begriffe in neuem Code oder neuer Dokumentation zu verwenden.
Master/Satellit
Die AUTOSAR-Organisation verwendet die Begriffe Master und Satellit für die Kommunikation zwischen Partitionen.

Siehe auch

Verweise