Qual è la differenza tra multiprocessing simmetrico e asimmetrico

Il differenza principale tra il multiprocessing simmetrico e asimmetrico è quello, in multiprocessing simmetrico, le CPU sono identiche e condividono la memoria principale mentre, in multiprocessing asimmetrico, le CPU non sono identiche e seguono la relazione slave-master.

Un processore o la CPU è un componente importante nel computer. Gestisce operazioni aritmetiche e logiche e gestisce le attività di input-output. Genera anche segnali per sincronizzare le operazioni di altri componenti. A seconda del numero di processori, esistono due tipi di sistemi informatici come sistemi a processore singolo e sistemi multiprocessore. Nel sistema a processore singolo, una CPU esegue il set di istruzioni generiche e le istruzioni dei processi utente. I sistemi multiprocessore sono costituiti da più processori e possono eseguire più attività contemporaneamente. Questi sistemi aumentano il throughput e l'affidabilità. Esistono due tipi di sistemi multiprocessore denominati multiprocessing simmetrico e asimmetrico.

Aree chiave coperte

1. Cos'è il simmetrico Multiprocessing
     - Definizione, Funzionalità
2. Cos'è il multiprocessing asimmetrico
     - Definizione, Funzionalità
3. Qual è la differenza tra multiprocessing simmetrico e asimmetrico
     - Confronto tra le principali differenze

Parole chiave

Multiprocessing asimmetrico, multiprocessing simmetrico

Cos'è il simmetrico Multiprocessing

In un sistema di multiprocessing simmetrico, due o più processori sono collegati a una singola memoria principale condivisa. Tutti i processori hanno pieno accesso ai dispositivi di input e output. Il sistema operativo tratta ugualmente tutti questi processori. È un sistema multiprocessore strettamente accoppiato con un insieme di processori simili che funzionano indipendentemente. Ogni processore esegue programmi diversi e funziona su diversi set di dati. Condividono le risorse comuni come memoria, dispositivo IO, ecc.

Figura 1: Multiprocessing simmetrico

Cos'è il multiprocessing asimmetrico

Nei sistemi di multiprocessing asimmetrici, tutte le CPU non sono uguali. In altre parole, un processore potrebbe eseguire il codice del sistema operativo mentre un altro processore sta eseguendo attività di input e output. Le applicazioni di multiprocessing asimmetriche vengono utilizzate quando ciascun processore è dedicato all'esecuzione di un'attività specifica.

La multiprocessing asimmetrica utilizza un approccio master-slave. Un processore funziona come master mentre gli altri processori funzionano come processori slave. Il processore master monitora gli altri processori e assegna i compiti a ciascun processore slave. Supponiamo che ci siano quattro CPU come C1, C2, C3 e C4. C4 è l'elaboratore principale e assegna i compiti agli altri processori. Supponiamo che C1 sia assegnato con il processo P1, C2 sia assegnato con il processo p2 e C3 sia assegnato con il processo p3. Ogni processore funzionerà solo sui processi assegnati.

Differenza tra multiprocessing simmetrico e asimmetrico

Definizione

La multiprocessing simmetrica è l'elaborazione di programmi da parte di più processori che condividono un sistema operativo e una memoria comuni. La multiprocessing asimmetrica è l'elaborazione di programmi da parte di più processori che funzionano in base alla relazione master-slave. Quindi, questo spiega la differenza fondamentale tra il multiprocessing simmetrico e asimmetrico.

processori

Inoltre, in multiprocessing simmetrico, tutti i processori sono trattati allo stesso modo mentre in multiprocessing asimmetrico, i processori non sono trattati allo stesso modo. Questa è una grande differenza tra il multiprocessing simmetrico e asimmetrico.

Architettura

Per aggiungere a questo, un'altra differenza tra multiprocessing simmetrico e asimmetrico è l'architettura dei processori. Tutti i processori hanno la stessa architettura in multiprocessing simmetrico. Ma l'architettura può essere diversa per ogni processore in multiprocessing asimmetrico.

Processi

Inoltre, in multiprocessing simmetrico, i processori prendono i processi dalla coda pronta. Ogni processore può avere code di pronto separate. Ma, in multiprocessing asimmetrico, il processore principale assegna i processi ai processori slave.

Comunicazione

Un'altra differenza tra multiprocessing simmetrico e asimmetrico è il modo in cui i processori comunicano tra loro. In multiprocessing simmetrico, i processori comunicano tra loro dalla memoria condivisa. Ma, in multiprocessing asimmetrico, i processori comunicano con il processore master.

Complessità

Inoltre, in multiprocessing simmetrico, i processori devono essere sincronizzati per mantenere il bilanciamento del carico. Pertanto, è complesso. In multiprocessing asimmetrico, l'elaboratore principale accede ai dati ecc. Pertanto è semplice.

Progettazione

Inoltre, i sistemi di multiprocessing asimmetrici sono più facili da progettare e gestire rispetto ai sistemi di multiprocessing simmetrici.

Costo

Inoltre, i sistemi di multiprocessing asimmetrici sono più economici dei sistemi di multiprocessing simmetrici.

Conclusione

I sistemi di multiprocessing possono essere multiprocessing simmetrici o asimmetrici. La differenza tra multiprocessing simmetrica e asimmetrica è che in multiprocessing simmetrico le CPU sono identiche e condividono la memoria principale mentre in multiprocessing asimmetrico, le CPU non sono identiche e seguono la relazione slave, master.

Riferimento:

1. "Architettura del sistema informatico". Architettura del sistema informatico, Neso Academy, 20 febbraio 2018, disponibile qui.
2. "Multiprocessing simmetrico." Wikipedia, Wikimedia Foundation, 2 agosto 2018, disponibile qui.
3. "Multiprocessing asimmetrico." Wikipedia, Wikimedia Foundation, 28 febbraio 2018, disponibile qui.

Cortesia dell'immagine:

1. "SMP - Symmetric Multiprocessor System" di Ferry24.Milan - Opera propria (CC BY-SA 3.0) via Commons Wikimedia