Multithreading: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1:
[[Immagine:Single-thread.png|thumb|right|Un processore single thread esegue un solo thread per volta]]
[[Immagine:Single-thread SMP.png|thumb|right|Un sistema multiprocessore classico esegue un solo thread per unità di calcolo]]
[[Immagine:Superthreaded CPU.png|thumb|right|Un sistema Coarse-grainedSimultaneous multithreadingMulti-Threading schedula più thread ma ne esegue uno solo per ciclo di clock]]
[[Immagine:Hyper-threaded CPU.png|thumb|right|Un sistema Fine-grained multithreading schedula più thread e ne esegue in contemporaneo le istruzioni al fine di occupare al meglio le unità d'elaborazione]]
In [[informatica]] il '''multithreading''' indica il supporto [[hardware]] da parte di un [[processore]] di eseguire più [[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 cache e lo stesso [[translation lookaside buffer]]. Il multithreading migliora le prestazioni dei programmi solamente quando questi sono stati sviluppati suddividendo il carico di lavoro su più thread che possono essere eseguiti in parallelo. I sistemi multiprocessore sono dotati di più unità di calcolo indipendenti, 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 tecniche sono complementari, a volte i sistemi multiprocessore implementano anche il multithreading per migliorare le prestazioni complessive del sistema.