La differenza tra Multithreading ed elaborazione multipla

August 6

La differenza tra Multithreading ed elaborazione multipla


Multithreading e multiprocessing sono termini associati con la velocità con cui i programmi per elaboratore eseguiti. Entrambi sono metodi che richiedono un matrimonio di conoscenze di programmazione e sviluppo di hardware per essere correttamente utilizzata. I due termini non sono sempre escludono a vicenda; sono utilizzati in tandem per aumentare l'efficienza di un computer.

differenze di hardware

Multiprocessing richiede, come dice il nome, più core di elaborazione fisici. In precedenza, più schede madri processore è venuto con più slot separati per inserire Central Processing Unit (CPU). Oggi, più recenti tecnologie di produttori come AMD e Intel consentire la più core di elaborazione per essere costruito in una CPU singolo "chip." Il multithreading non è del tutto senza il proprio hardware, ma richiede solo schede madri che supportano istruzioni di codice multithreading. La maggior parte delle schede madri moderne includono questa capacità.

Programma individuale Versus sistema operativo

I programmatori usano strumento multithreading imposta per consentire ai programmi di svolgere più attività in parallelo. Questa elaborazione "pipeline" dare l'illusione di due funzioni che si verificano simultaneamente, ma in realtà utilizza l'elevata quantità di potenza di elaborazione e algoritmi efficienti per alternare rapidamente tra una funzione e l'altra. Come tale, l'uso di multithreading dipende dal codice del programma stesso.

Multiprocessing, invece, ha un accesso più trasparente per la potenza di più flussi di trattamento. Un individuo accesso al programma funzioni multiprocessing sotto gli auspici del sistema operativo, come ad esempio Apple Mac OS o Microsoft Windows. In quanto tale, i programmi non devono essere particolarmente ottimizzati con i comandi multithreading di utilizzare la potenza di elaborazione in parallelo. Multithreading in realtà può essere utilizzato in combinazione con multiprocessing.

Indipendente contro pipeline di elaborazione

Multiprocessing e multithreading differiscono fondamentalmente nel modo in cui le istruzioni del programma vengono elaborati. In multiprocessing, due o più istruzioni possono essere eseguite contemporaneamente, attraverso un processo denominato "elaborazione parallela". Multithreading, tuttavia, apre le singole tubazioni per ogni istruzione, e distribuisce la potenza di elaborazione tra quelle condotte periodicamente.

Tale differenza è sostanzialmente impercettibile quando il carico del processore è piccola. Tuttavia, le istruzioni simultanee intensivo del processore inizierà a balbettare in un ambiente multithreading puro. Le stesse funzioni saranno più immuni a tali effetti in un ambiente multiprocessore.

Correzione dell'errore

Multithreading apre flussi separati all'interno di un unico processo. I flussi sembrano singoli processi, ma utilizzano uno spazio di indirizzi condiviso sulla memoria del computer all'interno dello stesso processo. Multiprocessing, tuttavia, si apre processo multiplo per eseguire funzioni simultanee e questi processi a ciascuno di loro pacco di memoria. Quando un singolo processo non riesce in un ambiente multiprocessore, tutti gli altri processi sono risparmiati; tuttavia, i difetti in un individuo "fili" non è isolato da altri thread, e, infine, abbattere l'intero processo. Il risultato è la possibilità di errori più grandi in condizioni di multithreading.