Architettura master-slave
Con architettura di tipo master-slave, in informatica, si indica un tipo di architettura per computer che permette di creare un rapporto tra hardware, in cui uno ha il pieno controllo dell'altro.
In particolare, si definisce master il dispositivo informatico che prende il controllo del bus, incomincia l'interazione, mentre con slave ci si riferisca a quello che risponde al primo.
Descrizione
modificaNei calcolatori tale architettura è generalmente riservata alla CPU e alle periferiche. Questi componenti sono connessi tramite bus. In prima istanza il collegamento contemporaneo di tutti i dispositivi può risultare poco gestibile, si pensi ad una CPU che sta accedendo alla memoria centrale per leggere un dato utilizzando uno specifico bus e contemporaneamente siano in arrivo altri dati da una interfaccia ingresso/uscita che transitano sullo stesso bus.
La contesa del bus viene risolta affidando alla CPU il ruolo di master e dunque la gestione dell'intero sistema, quindi delle periferiche, negando a quest'ultime (slave) di accedere autonomamente al bus. Tramite tale architettura il trasferimento dei dati avviene sotto la supervisione della CPU, che identifica, mediante il loro indirizzo, la sorgente e la destinazione dei dati, e sincronizza i dispositivi che devono colloquiare. Nel bus si evita qualsiasi collisione tra dati di competenza delle diverse periferiche.
Proposta di cambio di terminologia
modificaAlcuni sviluppatori hanno proposto di sostituire questa terminologia, poiché ritenuta poco inclusiva, con riferimenti culturali al razzismo e alla schiavitù.
In seguito a questo dibattito la terminologia master/slave è stata sostituita da Django e da Drupal (nel 2014), da Redis (nel 2017), da Python (nel 2018).[1]
Nel 2020, in seguito all'ondata internazionale di proteste per la morte di George Floyd, realtà importanti della tecnologia IT hanno dichiarato di voler sostituire questa terminologia. Fra queste Android, Google Chrome, Curl, GitHub, Microsoft e Twitter.
Linus Torvalds ha indicato delle linee guida[2] per sostituire (ove possibile), dalla release 5.8-rc5 del kernel Linux, i termini master/slave con:
- {primary, main} / {secondary, replica, subordinate}
- {initiator, requester} / {target, responder}
- {controller, host} / {device, worker, proxy}
- leader / follower
- director / performer
Contestualmente è stato consigliato di sostituire i termini blacklist/whitelist con allowlist/passlist oppure denylist/blocklist.[3]
Note
modifica- ^ (EN) Daniel Oberhaus, ‘Master/Slave’ Terminology Was Removed from Python Programming Language, su Vice Media, 13 settembre 2018. URL consultato il 26 settembre 2023 (archiviato dall'url originale il 14 febbraio 2020).
- ^ (EN) index : kernel/git/torvalds/linux.git, su git.kernel.org. URL consultato il 26 settembre 2023 (archiviato dall'url originale il 28 luglio 2023).
- ^ Master, slave, blacklist: terminologia discriminatoria fuori dal kernel Linux, su Hardware Upgrade. URL consultato il 26 settembre 2023 (archiviato dall'url originale il 13 luglio 2020).
Bibliografia
modifica- IT Administrator Fundamentals - Il manuale del sistemista; 2013, Formatica, Maggioli Editore, ISBN 9788838789922.