Puteți diferenția Symmetric Multiprocessor și Multiprocessor asimetric în alte puncte pe care le discută în tabelul de comparație prezentat mai jos.
Diagramă de comparație
Bazele comparației | Multiprocesare simetrică | Multiprocesare asimetrică |
---|---|---|
De bază | Fiecare procesor execută sarcinile din Sistemul de operare. | Numai procesorul Master execută sarcinile sistemului de operare. |
Proces | Procesorul ia procese dintr-o coadă de așteptare obișnuită sau poate exista o coadă de așteptare privată pentru fiecare procesor. | Procesorul principal atribuie proceselor procesoare slave sau au anumite procese predefinite. |
Arhitectură | Toate procesoarele din Symmetric Multiprocessing au aceeași arhitectură. | Toate procesoarele din multimodele asimetrice pot avea arhitecturi identice sau diferite. |
Comunicare | Toate procesoarele comunică cu un alt procesor printr-o memorie partajată. | Procesoarele nu trebuie să comunice, deoarece sunt controlate de procesorul principal. |
eșec | Dacă un procesor nu reușește, capacitatea de calcul a sistemului se reduce. | Dacă un procesor principal nu reușește, un robot este apelat la procesorul principal pentru a continua execuția. Dacă un procesor slave nu reușește, sarcina sa este schimbată la alte procesoare. |
Uşura | Symmetric Multiprocessor este complex deoarece toate procesoarele trebuie sincronizate pentru a menține echilibrul de sarcină. | Multiprocesorul asimetric este simplu, deoarece procesorul principal accesează structura de date. |
Definiția Symmetric Multiprocessing
Symmetric Multiprocessing este unul în care toate procesoarele rulează sarcinile din sistemul de operare. Nu are o relație master-slave ca multiprocesarea asimetrică. Toate procesoarele de aici, comunică folosind memoria partajată .
Procesoarele încep executarea proceselor din coada de așteptare comună. Fiecare procesor poate avea, de asemenea, o coadă privată de procese gata pentru a fi executată. Programatorul trebuie să aibă grijă ca niciun procesor să nu execute același proces.
Symmetric Multiprocessing are o încărcare corectă a sarcinii, o toleranță mai bună la defecte și, de asemenea, reduce șansele de blocare a procesorului. Este complex deoarece memoria este împărțită între toți procesatorii. În procesarea simetrică multiplă, o eroare a procesorului are ca rezultat o capacitate redusă de calcul .
Definiția Asymmetric Multiprocessing
Multiprocesarea asimetrică are relația master-slave între procesoare. Există un procesor master care controlează procesorul slave rămas. Procesorul de bază alocă procese procesorului slave sau pot avea o sarcină predefinită de efectuat.
Procesorul principal controlează structura de date . Programarea proceselor, procesarea I / O și alte activități ale sistemului sunt controlate de procesorul principal .
În cazul în care un procesor master nu reușește, un procesor între procesorul slave este făcut ca procesorul principal să continue executarea. În cazul în care un procesor slave nu reușește, celălalt procesor slave își preia funcția. Multiprocesarea asimetrică este simplă deoarece există un singur procesor care controlează structura datelor și toate activitățile din sistem.
Diferențele cheie între multiprocesarea simetrică și asimetrică
- Punctul cel mai distinct dintre multiprocesarea simetrică și asimetrică este faptul că sarcinile din sistemul de operare sunt gestionate numai de către procesorul-master în multimodificare asimetrică. Pe de altă parte, toate procesoarele în procesare simetrică rulează sarcinile în sistemul de operare.
- În multiprocesarea simetrică, fiecare procesor poate avea o coadă privată de procese gata, sau poate prelua procese dintr-o coadă de așteptare comună. Dar, în procesarea multiplă asimetrică, procesorul principal atribuie procese procesoarelor slave.
- Tot procesorul din Symmetric Multiprocessing are aceeași arhitectură. Dar structura procesoarelor în multiprocesor asimetric poate fi diferită.
- Procesoarele în multiprocesare simetrică comunică între ele prin memoria partajată. Cu toate acestea, procesoarele din multimodul asimetric nu trebuie să comunice între ele deoarece sunt controlate de către procesorul principal.
- În cazul în care procesorul principal nu reușește, un procesor slave este apelat la procesorul principal pentru a continua execuția. Dar, dacă un procesor cu procesare simetrică nu reușește, capacitatea de calcul a sistemului este redusă.
- Multiprocesorul asimetric este simplu deoarece numai procesorul principal accesează structura de date, în timp ce multiprocesorul simetric este complex deoarece toate procesoarele trebuie să funcționeze în sincronizare.
Concluzie:
Multiprocesoarele măresc viteza sistemului, deoarece se pot executa simultan mai multe procese. Transformarea asimetrică este simplă, doar un singur procesor (master) poate accesa structura de date. În timp ce Symmetric Multiprocessing este complex deoarece structura de date este împărțită între toți procesoarele și tot procesorul trebuie să lucreze în sincronizare.