Differenza tra multiprocessing e multithreading in informatica

Differenza tra multiprocessing e multithreading in informatica

In un sistema informatico diversi processi sono in esecuzione contemporaneamente. Il sistema operativo alloca le risorse ai processi ed è necessario aumentare l’utilizzo della CPU. Il multiprocessing e il multithreading possono influire notevolmente sulle prestazioni del sistema. 

Multiprocessing

Il multiprocessing consiste nell’eseguire più processi utilizzando due o più processori contemporaneamente. Esistono diversi tipi di meccanismi multiprocessing. Sono multiprocessing simmetrico e multiprocessing asimmetrico.

Nel multiprocessing simmetrico (Symmetric Multiprocessing), ogni processore ha la propria cache e tutti i processori sono collegati utilizzando un bus condiviso. Poiché esiste una memoria condivisa, tutti i processori condividono lo stesso spazio di indirizzi di memoria. Una limitazione di questo metodo è che quando il numero di processori aumenta, potrebbe rallentare l’accesso alla memoria principale. I processori sono liberi di eseguire qualsiasi processo sul sistema.

Nel multiprocessing asimmetrico (Asymmetric Multiprocessing), i processori funzionano secondo l’architettura master-slave. Il processore master alloca i processi per i processori slave.

Multithreading

Più processi sono in esecuzione su un sistema informatico contemporaneamente. Un processo è un programma in esecuzione. Lavorare in Microsoft Word può essere considerato come un processo. Durante l’utilizzo di MS Word, vengono controllati la grammatica e l’ortografia. È un sottoprocesso o un’attività secondaria. In questo modo, il processo principale è suddiviso in sottoprocessi. Questi sottoprocessi sono unità del processo e sono noti come thread. Pertanto, un processo è simile a un’attività e un thread è un’unità di un processo.

Un thread è costituito dal contatore del programma, dal contatore del thread, dal set di registri, dall’ID del thread e dallo stack. La creazione di processi per ogni attività non è un metodo efficace. Pertanto, un processo è suddiviso in più thread. Questi più thread vengono eseguiti contemporaneamente nel processo. Questo concetto è noto in informatica come Multithreading.

Ci sono alcuni vantaggi nel multi-threading. Ogni thread in un processo condivide lo stesso codice, dati e risorse. Non è necessario allocare le risorse a ciascun thread separatamente, quindi l’utilizzo dei thread è economico. Se un thread fallisce, ciò non influirà sul processo. I thread sono leggeri e consumano la quantità minima di risorse rispetto a un processo.

Differenza tra multiprocessing e multithreading in informatica

Multiprocessing e Multithreading

Il multiprocessing e il multithreading possono influire sulle prestazioni del computer.  

Infine, si può riassumere dicendo che la differenza fondamentale tra multiprocessing e multithreading è che, nel multiprocessing, più processi vengono eseguiti contemporaneamente utilizzando due o più processori  mentre, nel multithreading, più thread in un processo vengono eseguiti contemporaneamente.

Per aumentare la velocità e l’utilizzo della CPU, il multi-threading può essere implementato anche sui multiprocessori.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *