Multithreading: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo il tag <references /> mancante; modifiche estetiche |
m Bot: fix citazione web (v. discussione) |
||
Riga 1:
{{F|componenti per computer|marzo 2013}}
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.
Riga 22:
== Coarse-grained multithreading ==
=== Idea di base ===
Il multithreading ''coarse-grained'' (a grana grossa) prevede che il processore esegua un singolo thread fino a quando questo non viene bloccato da un evento che normalmente ha una elevata latenza (per esempio un [[cache miss]]), in questo caso il processore provvede a eseguire un altro thread che era pronto per l'esecuzione. Il thread di rimpiazzo rimane in esecuzione fino a quando il primo thread non è pronto per l'esecuzione.
Per esempio:
Riga 106:
== Collegamenti esterni ==
*
{{Portale|informatica}}
|