Raccomandato, 2024

Scelta Del Redattore

Differenza tra multiprocessing simmetrico e asimmetrico

Esistono due tipi di multiprocessing, multiprocessing simmetrico e multiprocessing asimmetrico. Il sistema di multiprocessing ha più di un processore e possono eseguire più processi contemporaneamente. In Symmetric Multiprocessing, i processori condividono la stessa memoria. In Multiprocessing asimmetrico esiste un unico processore master che controlla la struttura dei dati del sistema. La differenza principale tra Multiprocessing simmetrico e asimmetrico è che in Symmetric Multiprocessing tutto il processore nel sistema esegue le attività nel sistema operativo. Ma, in Multiprocessing asimmetrico, solo l'operazione di esecuzione del processore master nel sistema operativo.

È possibile differenziare il multiprocessore simmetrico e il multiprocessore asimmetrico su altri punti di cui si discute nella tabella di confronto mostrata di seguito.

Grafico comparativo

Base per il confrontoMultiprocessing simmetricoMultiprocessing asimmetrico
Di baseOgni processore esegue le attività nel sistema operativo.Solo il processore principale esegue le attività del sistema operativo.
ProcessiIl processore prende i processi da una coda di pronto comune, oppure può esserci una coda di pronto privato per ciascun processore.I processori master assegnano i processi ai processori slave o hanno alcuni processi predefiniti.
ArchitetturaTutto il processore in Symmetric Multiprocessing ha la stessa architettura.Tutto il processore in Multiprocessing asimmetrico può avere un'architettura uguale o diversa.
ComunicazioneTutti i processori comunicano con un altro processore tramite una memoria condivisa.I processori non devono comunicare come sono controllati dal processore master.
FallimentoSe un processore fallisce, la capacità di calcolo del sistema si riduce.Se un processore master non funziona, uno slave viene passato al processore master per continuare l'esecuzione. Se un processore slave fallisce, il suo compito viene passato ad altri processori.
alleviareIl multiprocessore simmetrico è complesso poiché tutti i processori devono essere sincronizzati per mantenere il bilanciamento del carico.Il multiprocessore asimmetrico è semplice in quanto l'elaboratore principale accede alla struttura dati.

Definizione di Multiprocessing simmetrico

La multiprocessing simmetrica è quella in cui tutto il processore esegue le attività nel sistema operativo. Non ha una relazione master-slave come il multiprocessing asimmetrico. Tutti i processori qui comunicano usando la memoria condivisa .

I processori iniziano ad eseguire i processi dalla coda di pronto comune. Ogni processore può anche avere una propria coda privata di processi pronti per essere eseguita. Deve essere preso cura dallo scheduler che nessun due processori esegua lo stesso processo.

Symmetric Multiprocessing ha un corretto bilanciamento del carico, una migliore tolleranza agli errori e riduce anche la possibilità di colli di bottiglia della CPU. È complesso poiché la memoria è condivisa tra tutti i processori. In Simmetric Multiprocessing, un guasto del processore si traduce in una ridotta capacità di calcolo .

Definizione di Multiprocessing asimmetrico

Multiprocessing asimmetrico ha la relazione master-slave tra i processori. C'è un processore master che controlla il processore slave rimanente. Il processore principale assegna i processi al processore slave, oppure possono avere qualche compito predefinito da eseguire.

Il processore principale controlla la struttura dei dati . La pianificazione dei processi, l'elaborazione I / O e altre attività di sistema sono controllate dal processore principale .

Nel caso in cui un processore master non riesca, un processore tra il processore slave viene reso l'elaboratore master per continuare l'esecuzione. Nel caso in cui un processore slave non funzioni, l'altro processore slave subentra nel suo lavoro. La multiprocessing asimmetrica è semplice poiché esiste un solo processore che controlla la struttura dei dati e tutte le attività nel sistema.

Differenze chiave tra multiprocessing simmetrico e asimmetrico

  1. Il punto più distinguibile tra multiprocessing simmetrico e asimmetrico è che le attività nel sistema operativo sono gestite solo dal processore master in Multiprocessing asimmetrico. D'altra parte, tutti i processori in multiprocessing simmetrico eseguono le attività nel SO.
  2. In multiprocessing simmetrico, ciascun processore può disporre di una propria coda privata di processi pronti oppure può eseguire processi da una coda di attesa comune. Ma, in multiprocessing asimmetrico, il processore principale assegna i processi ai processori slave.
  3. Tutto il processore in Symmetric Multiprocessing ha la stessa architettura. Ma la struttura dei processori nel multiprocessore asimmetrico può differire.
  4. I processori in multiprocessing simmetrico comunicano tra loro dalla memoria condivisa. Tuttavia, i processori in Multiprocessing asimmetrico non devono necessariamente comunicare tra loro in quanto sono controllati dal processore master.
  5. Nel caso in cui il processore master non funzioni, un processore slave viene trasformato in processore master per continuare l'esecuzione. Tuttavia, se un processore in multiprocessing simmetrico fallisce, la capacità di calcolo del sistema viene ridotta.
  6. Il multiprocessore asimmetrico è semplice poiché solo il processore principale accede alla struttura dati mentre il multiprocessore simmetrico è complesso poiché tutti i processori devono lavorare in sincronizzazione.

Conclusione:

I multiprocessori aumentano la velocità del sistema, poiché è possibile eseguire più processi contemporaneamente. La multiprocessing asimmetrica è semplice, solo un processore (master) può accedere alla struttura dati. Mentre Symmetric Multiprocessing è complesso poiché la struttura dei dati è condivisa tra tutti i processori e tutti i processori devono lavorare in sincronizzazione.

Top