Multithreading: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ho tolto "in apparenza" dalla frase "eseguiti in apparenza in parallelo". Fonte: qualsiasi buon libro di HPC, ad esempio: High Performance Computing di Sterling, Anderson e Brodowicz
Riga 2:
In [[informatica]] il '''multithreading''' indica il supporto [[hardware]] da parte di un [[processore]] di [[esecuzione (informatica)|eseguire]] più [[Thread (informatica)|thread]]. Questa tecnica si distingue da quella alla base dei sistemi [[Multi core|multiprocessore]] per il fatto che i singoli thread condividono lo stesso spazio d'indirizzamento, la stessa [[memoria cache|cache]] e lo stesso [[translation lookaside buffer]].
 
Il ''multithreading'' migliora le prestazioni dei [[programma (informatica)|programmi]] solamente quando questi sono stati sviluppati suddividendo il carico di lavoro su più thread che possono essere eseguiti in apparenza in [[calcolo parallelo|parallelo]]. Mentre i sistemi multiprocessore sono dotati di più unità di calcolo indipendenti per le quali l'[[esecuzione (informatica)|esecuzione]] è effettivamente parallela, un sistema multithread invece è dotato di una singola unità di calcolo che si cerca di utilizzare al meglio eseguendo più thread nella stessa unità di calcolo. Le due tecniche sono complementari: a volte i sistemi multiprocessore implementano anche il multithreading per migliorare le prestazioni complessive del sistema.
[[File:Single-thread.png|thumb|right|Un processore single thread esegue un solo thread per volta]]
[[File:Single-thread SMP.png|thumb|right|Un sistema multiprocessore classico esegue un solo thread per unità di calcolo]]