differenze fra software multithreading e hardware multithreading?

Pubblicità
non c'e' molto da aggiungere.

Volevo sapere le differenze che comportano queste due tipologie di multithreading

Non è chiaro cosa intendi con quei due termini. Hardware multithreading è un termine che decisamente non esiste, o meglio dice poco o niente. Alcuni autori lo menzionano per riferirsi alla capacità dei processori di eseguire più flussi di istruzioni concorrentemente, multiplexando le unità funzionali della CPU. Per capirci stiamo parlando di Intel Hyperthreading, AMD SMT e similari.

Nel caso del multithreading propriamente detto, si tratta invece di una tecnica che consente di eseguire in software più flussi di istruzioni, all'interno però del medesimo spazio d'indirizzamento ( in questo è differente dal multiprocessing ). Detto questo, si può implementare con tecniche totalmente software tramite cooperazione tra i thread ( vedi le goroutines del linguaggio Go ) oppure tramite prelazione grazie al supporto dell'hardware che fornisce i timer che consentono di stabilire quando un thread ( ma vale anche per i processi ) ha esaurito la propria time-slice.
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top