Diagramă de comparație
Bazele comparației | multiprocesare | multithreading |
---|---|---|
De bază | Multiprocesarea adaugă CPU-uri pentru a crește puterea de calcul. | Multithreading creează mai multe fire de un singur proces pentru a crește puterea de calcul. |
Execuţie | Mai multe procese sunt executate simultan. | Firele multiple ale unui singur proces sunt executate simultan. |
Creare | Crearea unui proces necesită mult timp și resurse intensive. | Crearea unui fir este economic atât în timp, cât și în resurse. |
Clasificare | Multiprocesarea poate fi simetrică sau asimetrică. | Multithreading nu este clasificat. |
Definiția Multiprocessing
Un sistem multiprocesor este unul care are mai mult de două procesoare. CPU-urile sunt adăugate la sistem pentru a mări viteza de calcul a sistemului. Fiecare procesor are un set propriu de registre și memorie principală. Doar pentru că CPU-urile sunt separate, se poate întâmpla ca un CPU să nu aibă nimic de procesat și să stea în gol și celălalt să fie supraîncărcat cu procesele. În astfel de cazuri, procesele și resursele sunt partajate dinamic între procesatori.
Multiprocesarea poate fi clasificată ca multiprocesare simetrică și multiprocesare asimetrică . În cadrul procesului multiprocesar simetric, toți procesatorii sunt liberi să ruleze orice proces într-un sistem. În procesul multiprocesar asimetric, între procesoare există o relație master-slave. Procesorul principal este responsabil pentru alocarea procesului către procesoare slave.
Dacă procesorul are integrate controlerul de memorie, atunci adăugarea procesorului ar mări cantitatea de memorie adresabilă din sistem. Multiprocesarea poate schimba modelul de acces la memorie din accesul uniform al memoriei la accesul neuniform al memoriei . Accesul în memoria uniformă este același timp pentru a accesa orice memorie RAM din orice procesor. Pe celelalte mâini, accesul neuniform al memoriei înseamnă mai mult timp pentru a accesa o parte din memorie decât celelalte părți.
Definiția Multithreading
Multithreading este execuția mai multor fire ale unui singur proces simultan în contextul acelui proces. Acum, să discutați mai întâi ce este un fir? Un fir al unui proces înseamnă un segment de cod al unui proces, care are ID-ul firului propriu, numărătorul de programe, registrele și stiva și poate executa independent. Dar firele care aparțin aceluiași proces trebuie să împartă obiectele acelui proces ca codul, datele și resursele de sistem. Crearea de procese separate pentru fiecare solicitare de serviciu consumă timp și resurse de sistem de evacuare. În loc să suporți această cheltuială, este mai eficient să creezi fire de proces.
Crearea unui fir este economic deoarece împărtășește codul și datele procesului de care aparțin. Deci, sistemul nu trebuie să aloce separat resurse pentru fiecare fir. Multithreading poate fi mărită în sistemul de operare multiproces. Pe măsură ce multiplicarea pe mai multe procesoare crește paralelismul .
Diferențele cheie între multiproces și multithreading
- Diferența cheie între multiprocesare și multithreading este faptul că multiprocesarea permite unui sistem să aibă mai mult de două procesoare adăugate la sistem, în timp ce multithreading permite unui proces să genereze mai multe fire pentru a crește viteza de calcul a unui sistem.
- Sistemul multiprocesor execută mai multe procese simultan, în timp ce sistemul multithreading permite executarea simultană a mai multor fire ale unui proces.
- Crearea unui proces poate să consume timp și chiar să epuizeze resursele sistemului. Crearea firelor este însă economică, deoarece firele care aparțin aceluiași proces împărtășesc obiectele acelui proces.
- Multiprocesarea poate fi clasificată în multiprocesare simetrică și multiprocesare asimetrică, în timp ce multiplicarea nu este clasificată în continuare.
Concluzie:
Beneficiile multithreading pot fi crescute treptat în mediul multiprocesor, deoarece multiplicarea pe un sistem multiprocesor mărește paralelismul.