Diferența dintre multiprocesare și multitratare

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 13 Mai 2024
Anonim
Multiprogramming Vs Multitasking Vs Multiprocessing
Video: Multiprogramming Vs Multitasking Vs Multiprocessing

Conţinut


Multiprocesarea și Multitreadingul adaugă performanță sistemului. multiprocesare adaugă mai mult număr sau procesoare / procesoare la sistem, ceea ce crește viteza de calcul a sistemului. multithreading permite procesului de a crea mai multe fire care să sporească capacitatea de reacție a sistemului. Mi-am dat seama de alte diferențe între multiprocesare și multitreading despre care am discutat cu ajutorul graficului de comparație prezentat mai jos.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațiemultiprocesare multithreading
De bazăMultiprocesarea adaugă procesoare pentru a crește puterea de calcul.Multitreading creează mai multe fire dintr-un singur proces pentru a crește puterea de calcul.
ExecuţieProcesele multiple sunt executate concomitent.Mai multe fire dintr-un singur proces sunt executate simultan.
CreareCrearea unui proces consumă mult timp și necesită resurse.Crearea unui fir este economică atât în ​​timp, cât și în resurse.
ClasificareMultiprocesarea poate fi simetrică sau asimetrică.Multitreading nu este clasificat.


Definiția Multiprocessing

Un sistem multiprocesare este unul care are mai mult de două procesoare. CPU sunt adăugate la sistem pentru a crește viteza de calcul a sistemului. Fiecare procesor are propriul set de registre și memorie principală. Doar pentru că procesoarele sunt separate, se poate întâmpla ca un procesor să nu aibă nimic de procesat și să poată sta inactiv și celălalt să fie supraîncărcat cu procesele. În astfel de cazuri, procesele și resursele sunt împărțite dinamic între procesatori.

Multiprocesarea poate fi clasificată ca fiind multiprocesare simetrică și multiprocesare asimetrică. În multiprocesarea simetrică, toate procesoarele sunt libere să ruleze orice proces dintr-un sistem. În multiprocesarea asimetrică, există o relație maestru-sclav între procesoare. Procesorul principal este responsabil pentru alocarea procesului către procesoare slave.


Dacă procesorul are controler de memorie integrat apoi adăugarea procesorului ar crește cantitatea de memorie adresabilă în sistem. Multiprocesarea poate schimba modelul de acces la memorie din acces uniform la memorie la acces la memorie nonuniformă. Accesul la memorie uniformă este același timp pentru accesarea oricărei RAM din orice procesor. Pe de altă parte, accesul la memorie neuniformă durează mai mult timp pentru a accesa o parte a memoriei decât celelalte părți.

Definiția Multithreading

Multitreading este execuția mai multor thread-uri ale unui singur proces concomitent în cadrul acelui proces. Acum să discutăm mai întâi ce este o fire? A fir a unui proces înseamnă un segment de cod al unui proces, care are propriul ID de thread, contorul de programe, registre și stivă și poate executa independent. Dar firele care aparțin aceluiași proces trebuie să partajeze obiectele acelui proces, cum ar fi codul, datele și resursele sistemului. Crearea de procese separate pentru fiecare solicitare de serviciu consumă timp și resurse ale sistemului de evacuare. În loc să suporte această situație generală, este mai eficient să creezi thread-uri ale unui proces.

Pentru a înțelege conceptul multithreading, să luăm un exemplu a unui procesor de texte. Un procesor de text, afișează graficul, răspunde la apăsarea tastei și, în același timp, continuă verificarea ortografică și gramaticală. Nu trebuie să deschideți diferite procesoare de texte pentru a face acest lucru concomitent. Se întâmplă într-un singur procesor de cuvinte cu ajutorul mai multor fire.

Acum să luăm în considerare beneficiile multitreiajului. Multitreading crește sensibilitate ca și cum un fir al unui proces este blocat sau executând operația îndelungată, procesul continuă. Al doilea beneficiu al multithreading este Distribuirea resurselor deoarece mai multe fire ale unui proces împărtășesc același cod și date în același spațiu de adrese.

Crearea unui thread este economic deoarece împărtășește codul și datele procesului din care fac parte. Deci sistemul nu trebuie să aloce resurse separat pentru fiecare thread. Multithreading poate fi a crescut pe sistemul de operare multiprocesare. Pe măsură ce crește multithreading pe mai multe procesoare paralelism.

  1. Diferența cheie între multiprocesare și multitreading este că multiprocesarea permite unui sistem să aibă peste două CPU 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.
  2. Se execută un sistem de multiprocesare procese multiple în același timp, sistemul multithreading permite executarea mai multe fire a unui proces simultan.
  3. Crearea unui proces poate consumati timp și chiar epuizare resursele sistemului. Totuși, crearea firelor este economic întrucât firele care aparțin aceluiași proces împărtășesc obiectele acelui proces.
  4. Multiprocesarea poate fi clasificată în multiprocesare simetrică și multiprocesare asimetrică întrucât, multithreading nu este clasificat în continuare.

Concluzie:

Beneficiile multithreading pot fi crescute treptat în mediul multiprocesare, deoarece multithreading pe un sistem multiprocessing crește paralelismul.