Multithreading: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 151.41.157.191 (discussione), riportata alla versione precedente di Pulciazzo Etichetta: Rollback |
m smistamento lavoro sporco e fix vari |
||
Riga 3:
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 [[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
[[File:Single-thread SMP.png|thumb
== Panoramica ==
Riga 46:
== Fine-grained multithreading ==
[[File:Hyper-threaded CPU.png|thumb
=== Idea di base ===
Una tipologia di multithreading molto spinto prevede che il processore scambi il thread in esecuzione a ogni ciclo di clock.
Riga 73:
== Simultaneous Multi-Threading ==
[[File:Superthreaded CPU.png|thumb
=== Idea di base ===
I moderni processori hanno più unità di calcolo che vengono utilizzate eseguendo le istruzioni dei singoli thread in parallelo. Gli attuali processori sono in grado di eseguire solamente poche istruzioni in parallelo di un singolo thread per via del ridotto parallelismo a livello di istruzioni che normalmente i thread possiedono. Quindi spesso alcune unità di elaborazione rimangono inutilizzate durante le elaborazioni. Per evitare questo il Simultaneous Multi-threading (SMT) esegue più thread in contemporanea e utilizza le istruzioni dei singoli thread per mantenere le unità di elaborazione sempre operative.
Riga 109:
== Collegamenti esterni ==
* {{cita web|url = http://www.di.unito.it/~gunetti/DIDATTICA/architettureII/06-multithreading-3.pdf| titolo = Lucidi sul multithreading | formato = pdf |urlarchivio = https://web.archive.org/web/20060609173356/http://www.di.unito.it/~gunetti/DIDATTICA/architettureII/06-multithreading-3.pdf | dataarchivio
* {{cita web | url = http://www.federica.unina.it/ingegneria/programmazione-2/programmazione-multi-thread/ | titolo = Programmazione multi-thread | sito = Università di Napoli | lingua = it | urlarchivio = https://web.archive.org/web/20120423065229/http://www.federica.unina.it/ingegneria/programmazione-2/programmazione-multi-thread/ | dataarchivio
{{Portale|informatica}}
|