Możesz rozróżnić wieloprocesor symetryczny i wieloprocesor asymetryczny w innych punktach, które są omówione w tabeli porównawczej pokazanej poniżej.
Wykres porównania
Podstawa do porównania | Symetryczne przetwarzanie wieloprocesowe | Asymetryczny proces wieloprocesowy |
---|---|---|
Podstawowy | Każdy procesor uruchamia zadania w systemie operacyjnym. | Tylko procesor główny uruchamia zadania systemu operacyjnego. |
Proces | Procesor pobiera procesy ze wspólnej gotowej kolejki lub może istnieć osobna gotowa kolejka dla każdego procesora. | Procesor nadrzędny przypisuje procesy do procesorów podrzędnych lub ma pewne predefiniowane procesy. |
Architektura | Cały procesor w wieloprocesorowym systemie symetrycznym ma taką samą architekturę. | Wszystkie procesory w asymetrycznym przetwarzaniu wieloprocesorowym mogą mieć taką samą lub różną architekturę. |
Porozumiewanie się | Wszystkie procesory komunikują się z innym procesorem przez pamięć współdzieloną. | Procesory nie muszą się komunikować, ponieważ są kontrolowane przez główny procesor. |
Niepowodzenie | Jeśli procesor ulegnie awarii, pojemność obliczeniowa systemu spada. | Jeśli procesor główny ulegnie awarii, urządzenie podrzędne zostanie przełączone na procesor główny, aby kontynuować wykonywanie. Jeśli procesor podrzędny ulegnie awarii, jego zadanie zostanie przełączone na inne procesory. |
Łatwość | Symetryczny multiprocesor jest złożony, ponieważ wszystkie procesory muszą być zsynchronizowane, aby utrzymać równowagę obciążenia. | Asymetryczny multiprocesor jest prosty, gdy procesor główny uzyskuje dostęp do struktury danych. |
Definicja symetrycznego przetwarzania wieloprocesowego
Wieloprocesorowość symetryczna to taka, w której wszystkie procesory uruchamiają zadania w systemie operacyjnym. Nie ma relacji master-slave, jak asymetryczne przetwarzanie wieloprocesowe. Wszystkie procesory tutaj komunikują się za pomocą pamięci współdzielonej .
Procesory rozpoczynają wykonywanie procesów ze wspólnej gotowej kolejki. Każdy procesor może również posiadać swoją własną prywatną kolejkę gotowych procesów, które zostaną wykonane. Planista musi zadbać , aby żadne dwa procesory nie wykonywały tego samego procesu.
Symetryczny proces wieloprocesowy zapewnia odpowiednie równoważenie obciążenia, lepszą odporność na awarie, a także zmniejsza szansę na wąskie gardło procesora. Jest złożony, ponieważ pamięć jest dzielona pomiędzy wszystkie procesory. W przypadku symetrycznego przetwarzania wieloprocesorowego awaria procesora powoduje zmniejszenie mocy obliczeniowej .
Definicja asymetrycznego przetwarzania wieloprocesowego
Asymetryczny proces wieloprocesowy ma związek master-slave pomiędzy procesorami. Istnieje jeden główny procesor, który kontroluje pozostały procesor podrzędny. Główny procesor przypisuje procesy do procesora podrzędnego lub może mieć pewne predefiniowane zadanie do wykonania.
Główny procesor kontroluje strukturę danych . Planowanie procesów, przetwarzanie we / wy i inne czynności systemowe są kontrolowane przez główny procesor .
W przypadku awarii procesora głównego, jeden procesor w procesorze podrzędnym zostaje ustawiony na procesor nadrzędny, aby kontynuować wykonywanie. W przypadku niepowodzenia procesora podrzędnego, drugi procesor podrzędny przejmuje jego zadanie. Asymetryczny proces wieloprocesowy jest prosty, ponieważ istnieje tylko jeden procesor, który kontroluje strukturę danych i wszystkie działania w systemie.
Kluczowe różnice między wieloprocesowymi symetrycznymi i asymetrycznymi
- Najbardziej zauważalnym punktem między symetrycznym i asymetrycznym procesem wieloprocesowym jest to, że zadania w systemie operacyjnym są obsługiwane tylko przez procesor główny w asymetrycznym przetwarzaniu wieloprocesowym. Z drugiej strony, wszystkie procesory w symetrycznym trybie wieloprocesowym uruchamiają zadania w systemie operacyjnym.
- W symetrycznym przetwarzaniu wieloprocesowym każdy procesor może mieć własną prywatną kolejkę gotowych procesów lub może pobierać procesy ze wspólnej gotowej kolejki. Jednak w asymetrycznym przetwarzaniu wieloprocesorowym procesor główny przypisuje procesy do procesorów podrzędnych.
- Cały procesor w systemie Symmetric Multiprocessing ma tę samą architekturę. Ale struktura procesorów w asymetrycznym multiprocesorze może się różnić.
- Procesory w symetrycznym procesie wieloprocesorowym komunikują się ze sobą za pomocą pamięci współdzielonej. Jednak procesory w asymetrycznym przetwarzaniu wieloprocesorowym nie muszą komunikować się ze sobą, ponieważ są kontrolowane przez główny procesor.
- W przypadku, gdy procesor główny ulegnie awarii, procesor podrzędny zostaje przełączony do procesora głównego, aby kontynuować wykonywanie. Jeśli jednak procesor w symetrycznym trybie wieloprocesowym ulegnie awarii, pojemność obliczeniowa systemu zostanie zmniejszona.
- Asymetryczny multiprocesor jest prosty, ponieważ tylko procesor główny uzyskuje dostęp do struktury danych, podczas gdy symetryczny procesor wieloprocesorowy jest złożony, ponieważ wszystkie procesory muszą pracować synchronicznie.
Wniosek:
Multiprocesory zwiększają szybkość systemu, ponieważ można jednocześnie wykonywać wiele procesów. Asymetryczne przetwarzanie wieloprocesowe jest proste, tylko jeden procesor (master) może uzyskać dostęp do struktury danych. Podczas gdy symetryczne przetwarzanie wieloprocesowe jest złożone, struktura danych jest wspólna dla wszystkich procesorów, a cały procesor musi działać w synchronizacji.