Il multiprocessing, applicata all'informatica, è una forma di funzionamento di un computer in cui è fisicamente presente più di un processore. Lo scopo è avere la disposizione per eseguire contemporaneamente diverse parti di un programma.
Queste più unità di elaborazione centrale (CPU) sono in stretta comunicazione, condividendo il bus, la memoria e altri dispositivi periferici del computer. Poiché sono disponibili più processori, è possibile eseguire più processi contemporaneamente.
Il multiprocessing si riferisce più al numero di unità CPU che al numero di processi in esecuzione simultaneamente. Se l'hardware fornisce più di un processore, si tratta di multiprocessing. È la capacità del sistema di sfruttare la potenza di calcolo di più processori.
Il sistema multiprocessing è molto utile quando si desidera avere una velocità sufficientemente elevata per elaborare una grande serie di dati. Questi sistemi sono utilizzati principalmente in applicazioni come previsioni meteorologiche, controllo satellitare, ecc..
Questo tipo di sistema multiprocessore è apparso per la prima volta in grandi computer o mainframe, prima di ridurne i costi per assicurarne l'inclusione nei personal computer..
Indice articolo
Con il supporto di un sistema multiprocessing, più processi possono essere eseguiti in parallelo.
Supponiamo che i processi Pr1, Pr2, Pr3 e Pr4 siano in attesa di essere eseguiti. Su un sistema a processore singolo, verrà eseguito per primo un processo, poi il successivo, poi l'altro e così via.
Tuttavia, con il multiprocessing, ogni processo può essere impostato su una particolare CPU per l'elaborazione..
Se si tratta di un processore dual-core, con due processori, due processi possono essere eseguiti contemporaneamente e quindi saranno due volte più veloci. Allo stesso modo, un processore quad-core sarà quattro volte più veloce di un singolo processore..
Poiché una determinata funzione viene assegnata da eseguire da ciascun processore, sarà in grado di eseguire il proprio lavoro, consegnare il set di istruzioni al processore successivo e iniziare a lavorare su un nuovo set di istruzioni.
Ad esempio, un processore più grande potrebbe utilizzare processori "slave" per eseguire varie attività di pulizia, come la gestione della memoria..
Allo stesso modo, diversi processori possono essere utilizzati per gestire le comunicazioni di dati, l'archiviazione in memoria o le funzioni aritmetiche..
Un sistema è multiprocesso avendo più di un processore fisicamente e può essere multiprogrammazione quando ha più processi in esecuzione simultaneamente..
Pertanto, la differenza tra multiprocessing e multiprocessing è che il multiprocessing esegue più processi contemporaneamente su più processori, mentre il multiprocessing mantiene diversi programmi nella memoria principale e li esegue simultaneamente attraverso una singola CPU.
Cioè, il multiprocessing avviene attraverso l'elaborazione parallela, mentre la multiprogrammazione si verifica quando una singola CPU passa da un processo a un altro..
Per utilizzare efficacemente il sistema multiprocessing, il sistema informatico deve disporre di quanto segue:
È necessario disporre di una serie di processori in grado di utilizzarli in un sistema multiprocessore.
Una scheda madre in grado di contenere e gestire più processori. Ciò significa prese o slot extra per chip aggiunti.
L'intero task multiprocessing è gestito dal sistema operativo, che assegna i diversi task che devono essere svolti dai vari processori del sistema..
Si dice che le applicazioni progettate per essere utilizzate nel multiprocessing siano cucite, il che significa che sono suddivise in routine più piccole che possono essere eseguite indipendentemente..
Ciò consente al sistema operativo di consentire l'esecuzione simultanea di questi thread su più di un processore, con conseguente multiprocessing e prestazioni migliori..
In questo tipo di multiprocessing, tutti i processori hanno una relazione reciproca allo stesso livello di uguaglianza, ovvero non esiste una relazione master-slave tra di loro..
Tutti i processori sono in comunicazione tra loro, poiché ognuno contiene una copia dello stesso sistema operativo.
Un esempio del sistema multiprocessing simmetrico è la versione Encore di Unix per il computer Multimax..
In questo tipo di multiprocessing è presente un master processor che dà istruzioni a tutti gli altri processori, assegnando a ciascuno un task definito in precedenza. Questa è l'opzione più economica, poiché mantiene una relazione master-slave tra i processori..
Solo questo tipo di multiprocessing esisteva fino all'introduzione dei multiprocessori simmetrici.
Con il multiprocessing avrai più attività completate in un tempo molto minore.
Se più processori lavorano insieme, le prestazioni del sistema aumentano aumentando il numero di processi eseguiti per unità di tempo..
Quando un processore si guasta, il multiprocessing risulta essere più affidabile, perché in questa situazione il sistema rallenterà, ma non andrà in crash. Questa capacità di continuare a lavorare nonostante il fallimento è nota come degrado grazioso..
Ad esempio, se un processore si guasta su un totale di cinque, il lavoro non fallirà, ma i restanti quattro processori condivideranno il lavoro del processore guasto. Pertanto, il sistema verrà eseguito il 20% più lentamente, invece di bloccarsi completamente..
Questi sistemi possono generare risparmi di denaro a lungo termine rispetto ai sistemi a processore singolo perché i processori possono condividere alimentatori, dispositivi periferici e altri dispositivi..
Se ci sono più processi che condividono i dati è meglio programmarli in sistemi multiprocessore per condividere i dati, invece di avere diversi sistemi informatici con più copie di quei dati.
Sebbene i sistemi multiprocessing siano più economici nel lungo periodo rispetto all'utilizzo di più computer, sono comunque piuttosto costosi.
È molto più economico acquistare un sistema semplice con un singolo processore rispetto a un sistema multiprocessore.
Un sistema operativo più complesso è richiesto nei sistemi multiprocessing.
Ciò è dovuto al fatto che avendo più processori che condividono memoria, dispositivi, ecc. la distribuzione delle risorse ai processi è più complicata che se ci fosse un solo processore.
Tutti i processori nel sistema multiprocessing condividono la memoria principale. Pertanto, è necessario un pool di memoria molto più grande rispetto ai sistemi a processore singolo.
Nessun utente ha ancora commentato questo articolo.