Co to jest przetwarzanie wieloprocesowe?
System wieloprocesorowy ma więcej niż dwa procesory. Procesory są dodawane do systemu, co pomaga zwiększyć prędkość obliczeniową systemu. Każdy procesor ma swój własny zestaw rejestrów i pamięć główną.
Jednak ponieważ każdy procesor jest oddzielny, może się zdarzyć, że jeden procesor może nie mieć nic do przetworzenia. Jeden procesor może pracować bezczynnie, a drugi może być przeciążony określonymi procesami. W takim przypadku proces i zasoby są dynamicznie współdzielone między procesorami.
W tym samouczku dowiesz się:
- Co to jest przetwarzanie wieloprocesowe?
- Co to jest wielowątkowość?
- Charakterystyka przetwarzania wieloprocesowego:
- Charakterystyka wielowątkowości
- Różnica między przetwarzaniem wieloprocesowym a wielowątkowością
- Zaleta przetwarzania wieloprocesowego
- Zaleta wielowątkowości
- Wada przetwarzania wieloprocesowego
- Wada wielowątkowości
Co to jest wielowątkowość?
Wielowątkowość to technika wykonywania programu, która pozwala pojedynczemu procesowi mieć wiele segmentów kodu (takich jak wątki). Działa również równolegle w „kontekście” tego procesu. Aplikacje wielowątkowe to aplikacje, które mają dwa lub więcej wątków, które działają jednocześnie. Dlatego jest również znany jako współbieżność.
Kluczowe RÓŻNICE:
- System wieloprocesorowy ma więcej niż dwa procesory, podczas gdy wielowątkowość to technika wykonywania programu, która pozwala pojedynczemu procesowi mieć wiele segmentów kodu
- Wieloprocesowość zwiększa niezawodność systemu, podczas gdy w procesie wielowątkowości każdy wątek działa równolegle do siebie.
- Wieloprocesorowość pomaga zwiększyć moc obliczeniową, podczas gdy wielowątkowość pomaga tworzyć wątki obliczeniowe pojedynczego procesu
- W przypadku przetwarzania wieloprocesowego tworzenie procesu jest powolne i zależne od zasobów, podczas gdy w przypadku wieloprogramowania tworzenie wątku jest oszczędne pod względem czasu i zasobów.
- Wielowątkowość pozwala uniknąć wytrawiania, podczas gdy przetwarzanie wielowątkowe polega na wytrawianiu obiektów w pamięci w celu wysłania ich do innych procesów.
- System wieloprocesowy zajmuje mniej czasu, podczas gdy przetwarzanie zadań zajmuje umiarkowaną ilość czasu.
Charakterystyka przetwarzania wieloprocesowego
Oto podstawowe cechy przetwarzania wieloprocesowego:
- Przetwarzanie wieloprocesowe jest klasyfikowane zgodnie ze sposobem organizacji ich pamięci.
- Wieloprocesowość zwiększa niezawodność systemu
- Przetwarzanie wieloprocesowe może poprawić wydajność, rozkładając program na równoległe wykonywalne zadania.
Charakterystyka wielowątkowości
Oto ważne aspekty wielowątkowości:
- W procesie wielowątkowości każdy wątek biegnie równolegle do siebie.
- Wątki nie pozwalają na oddzielenie obszaru pamięci. Dlatego oszczędza pamięć i zapewnia lepszą wydajność aplikacji
Różnica między przetwarzaniem wieloprocesowym a wielowątkowością
Oto ważne różnice między przetwarzaniem wieloprocesowym a wielowątkowością.
Parametr | Wieloprocesorowość | Wielowątkowość |
---|---|---|
Podstawowy | Wieloprocesorowość pomaga zwiększyć moc obliczeniową. | Wielowątkowość pomaga tworzyć wątki obliczeniowe pojedynczego procesu w celu zwiększenia mocy obliczeniowej. |
Wykonanie | Pozwala na jednoczesne wykonywanie wielu procesów. | Wiele wątków pojedynczego procesu jest wykonywanych jednocześnie. |
Przełączanie procesora | W trybie wieloprocesorowym procesor musi przełączać się między wieloma programami, aby wyglądało na to, że wiele programów działa jednocześnie. | W przypadku wielowątkowości procesor musi przełączać się między wieloma wątkami, aby wyglądało na to, że wszystkie wątki działają jednocześnie. |
kreacja | Tworzenie procesu jest powolne i zależy od zasobów. | Tworzenie nici jest oszczędne pod względem czasu i zasobów. |
Klasyfikacja | Przetwarzanie wieloprocesowe może być symetryczne lub asymetryczne. | Wielowątkowość nie jest klasyfikowana. |
Pamięć | Wieloprocesowość przydziela oddzielną pamięć i zasoby dla każdego procesu lub programu. | Wątki wielowątkowe należące do tego samego procesu współużytkują tę samą pamięć i zasoby co proces. |
Obiekty marynowane | Wielowątkowość pozwala uniknąć wytrawiania. | Przetwarzanie wieloprocesowe polega na wytrawianiu obiektów w pamięci w celu wysłania ich do innych procesów. |
Program | System wieloprocesorowy umożliwia wykonywanie wielu programów i zadań. | System wielowątkowy wykonuje wiele wątków tych samych lub różnych procesów. |
Zajęty czas | Przetwarzanie pracy zajmuje mniej czasu. | Przetwarzanie pracy zajmuje umiarkowaną ilość czasu. |
Zaleta przetwarzania wieloprocesowego
Oto wady / zalety przetwarzania wieloprocesowego:
- Największą zaletą systemu wieloprocesorowego jest to, że pomaga on wykonać więcej pracy w krótszym czasie.
- Kod jest zwykle prosty.
- Wykorzystuje wiele procesorów i rdzeni
- Pomaga uniknąć ograniczeń GIL dla CPython
- Usuń prymitywy synchronizacji, chyba że używasz pamięci współdzielonej.
- Procesy potomne są przeważnie przerywalne / zabijalne
- Pomaga wykonać pracę w krótszym czasie.
- Tego typu systemy powinny być używane, gdy do przetwarzania dużej ilości danych wymagana jest bardzo duża prędkość.
- Systemy wieloprocesorowe oszczędzają pieniądze w porównaniu z systemami jednoprocesorowymi, ponieważ procesory mogą współdzielić urządzenia peryferyjne i zasilacze.
Zaleta wielowątkowości
Oto zalety / zalety wielowątkowości:
- Wątki mają tę samą przestrzeń adresową
- Wątki są lekkie i zajmują mało pamięci
- Koszt komunikacji między wątkami jest niski.
- Dostęp do stanu pamięci z innego kontekstu jest łatwiejszy
- Pozwala łatwo tworzyć responsywne interfejsy użytkownika
- Idealna opcja dla aplikacji związanych z I / O
- Mniej czasu zajmuje przełączenie między dwoma wątkami w pamięci współdzielonej i zakończenie
- Wątki uruchamiają się szybciej niż procesy, a także szybciej przełączają zadania.
- Wszystkie wątki współużytkują pulę pamięci procesu, co jest bardzo korzystne.
- Utworzenie nowego wątku w istniejącym procesie zajmuje mniej czasu niż utworzenie nowego procesu
Wada przetwarzania wieloprocesowego
Oto wady / wady korzystania z systemu operacyjnego wieloprocesorowego
- IPC (komunikacja między procesami) to dość skomplikowane z większym narzutem
- Ma większy ślad pamięci
Wada wielowątkowości
Oto wady / wady korzystania z systemu wielowątkowego:
- System wielowątkowy nie jest przerywany / usuwany
- Jeśli nie podążasz za kolejką poleceń i modelem pompy komunikatów, konieczne jest ręczne użycie synchronizacji, która staje się koniecznością
- Kod jest zwykle trudniejszy do zrozumienia i dramatycznie zwiększa możliwość wystąpienia warunków wyścigu