Multiprocesare
Multiprocesarea reprezintă, în cadrul unui sistem computerizat, utilizarea a două sau mai multe unități centrale de procesare sau, în alte cuvinte, abilitatea unui sistem computerizat de a încorpora mai mult de un procesor și abilitatea de a aloca task-uri pentru procesoarele respective. În unele contexte, multiprocesarea se poate referi la execuția mai multor procese software concurente în cadrul unui singur sistem. Deși se folosește și această definiție, ea este mai potrivită pentru conceptele de multiprogramare sau multitasking. Un avantaj major adus de sistemele ce prezintă conceptul de multiprocesare se reflectă în cadrul utilizării multithreading-ului, unde thread-urile utilizate se pot împărți între procese și pot fi rulate fără partajarea resurselor de procesare.
Categorii
modificareMultiprocesare simetrică și asimetrică
modificarePrimul tip de sistem bazat pe multiprocesare a fost cel asimetric, unde anumite procesoare aveau un scop prestabilit, precum rularea proceselor legate de sistemul de operare, iar celelalte procesoare se ocupau cu task-urile pornite de utilizator. O altă modalitate de partajare a procesoarelor în cadrul acestui tip de multiprocesare poate fi alocarea operațiilor de citire și de scriere de pe/pe disc pe un procesor și alocarea operațiilor video pe alt procesor. Acest tip de multiprocesare nu a fost adoptat de prea mulți producători, având perioada de viață limitată între anii 1970-1980. Foarte repede, acest tip de multiprocesare a fost înlocuit deoarece prezenta deficiențe, existând situații în care unele procesoare rulau la capacitate maximă, iar celelalte procesoare nu executau nici un task. În ziua de azi, multiprocesarea asimetrică e, practic, dispărută.
Următoarea etapă a fost migrarea către un alt tip de multiprocesare, anume multiprocesarea simetrică sau SMP, simetria presupunând că orice thread, fie pornit de sistemul de operare, fie pornit de utilizator, poate rula pe oricare din procesoarele disponibile. Un aspect important al sistemelor computerizate care implementează acest concept este reprezentat de faptul ca două sau mai multe procesoare identice se conectează la aceeași memorie partajată. Deși conceptul de multiprocesare asimetrică nu mai este implementat în sistemele computerizate din ziua de azi, acesta poate fi aplicat din punct de vedere software, deși arhitectura este de tip simetric. În cadrul unei [[aplicații se poate alege un anumit procesor care să fie considerat master și care să ruleze procesele importante, partajând anumite task-uri nesemnificative cu celelalte procesoare.
Multiprocesare puternic cuplată și slab cuplată
modificareCuplarea puternică a sistemelor bazate pe multiprocesare conțin mai multe unități centrale de procesare care sunt conectate la nivelul magistralei și pot avea acces la o memorie centrală partajată sau pot participa într-o ierarhie de memorie, conținând memorie locală și memorie partajată. Multiprocesoarele la nivel de chip, având numele de multi-core computing, implică plasarea mai multor procesoare pe același chip, fiind cea mai severă formă de cuplare puternică în contextul multiprocesării.
Cuplarea slabă în cadrul sistemelor de tip multiprocesor implică un set de calculatoare cu unul sau două procesoare conectate printr-un sistem de comunicare de mare viteză și poartă numele de cluster.
Avantajul sistemelor puternic cuplate este dat de faptul ca sunt mai mici ca dimensiuni și au performanțe mai mari, însa prezintă dezavantajul unui cost inițial mai mare și al unui risc în cazul defectării procesoarelor, care sunt mult mai dificil de înlocuit. Sistemele bazate pe multiprocesare slab cuplate sunt constituite din calculatoare normale, de cost redus și mai ușor de înlocuit și de gestionat.