Co to jest przetwarzanie wieloprocesowe? – Definicja TechTarget
Co to jest przetwarzanie wieloprocesowe?
Wieloprocesorowość to wykorzystanie dwóch lub więcej jednostek centralnych (CPU) w jednym systemie komputerowym. Jego definicja może się różnić w zależności od kontekstu, ale ogólnie odnosi się do zdolności systemu do obsługi wielu procesorów i jego zdolności do dystrybucji pracy między nimi.
Dzisiejsze procesory wielordzeniowe mogą z łatwością pomieścić 12, 24 lub nawet więcej rdzeni mikroprocesorowych na tej samej płycie głównej, umożliwiając efektywne i równoczesne przetwarzanie wielu zadań.
Czym są procesy?
Zbiór instrukcji wykonywanych przez procesor komputera nazywany jest procesem lub działającym procesem.
Wykonywanie procesu musi przebiegać sekwencyjnie. Na przykład program komputerowy jest zapisany w pliku tekstowym, ale po uruchomieniu zamienia się w proces i wykonuje sekwencyjnie wszystkie zadania wymienione w programie.
Przykłady procesów
Zwykły komputer wykonuje w sposób ciągły szereg procesów, które pomagają zarządzać systemem operacyjnym (OS), sprzętem i aplikacjami zainstalowanymi na komputerze. Może to obejmować zarówno proste zadanie w tle, takie jak sprawdzanie pisowni lub program obsługi zdarzeń systemowych, jak i pełnoprawną aplikację, taką jak Microsoft Word.
W systemie Microsoft Windows każdy proces uruchomiony na komputerze można obserwować, otwierając kartę Procesy w Menedżerze zadań. Procesy to zazwyczaj programy działające w tle, których zwykle nie widać podczas korzystania z komputera.
Poniżej przedstawiono kilka przykładów procesów, które można zaobserwować za pomocą Menedżera zadań:
- Winlogon.exe. Ten proces należy do menedżera logowania systemu Windows i jest odpowiedzialny za obsługę zabezpieczeń, takich jak ładowanie profili użytkowników i blokowanie ekranów komputera podczas działania wygaszacza ekranu.
- Wininit.exe. Ten ważny proces przebiega w sposób ciągły i pomaga w konfiguracji systemu przy pierwszym logowaniu. Jego podstawową rolą jest służenie jako starter dla większości programów i procesów działających w tle, które rozpoczynają się w systemie Windows.
- csrss.exe. W przeszłości proces csrss.exe był używany do zarządzania komponentami graficznymi systemu Windows, ale obecnie jego dwie najważniejsze funkcje to zamykanie systemu Windows i uruchamianie procesu conhost.exe, który uruchamia wiersz polecenia.
- Programy drukarki. Każdy program drukarki to proces działający w tle, monitorujący poziomy atramentu i inne ustawienia podczas pracy komputera.
Rodzaje systemów wieloprocesorowych
Systemy przetwarzania wieloprocesorowego lub przetwarzania równoległego są obecnie powszechne. Systemy te wykorzystują pamięć współdzieloną i rozdzielają zegar komputera, pamięć, magistralę i urządzenia peryferyjne na kilka współbieżnych procesorów. Przetwarzanie wieloprocesowe dzieli się na następujące trzy typy:
- Wieloprocesorowość symetrycznag (SMP). W symetrycznym (lub „ściśle sprzężonym”) przetwarzaniu wieloprocesorowym procesory współdzielą pamięć i magistralę we/wy lub ścieżkę danych. Pojedyncza kopia systemu operacyjnego zarządza wszystkimi procesorami. SMP, znany również jako system „shared all”, zwykle nie przekracza 16 procesorów.
- Asymetryczne przetwarzanie wieloprocesowe (AMP). Przed rozwojem wieloprocesorów symetrycznych dostępne były tylko wieloprocesory asymetryczne. Każdy procesor w systemie asymetrycznym ma z góry określone zadanie. Relacja pierwotna-wtórna istnieje w asymetrycznym systemie wieloprocesorowym, w którym wszystkie procesory otrzymują instrukcje od procesora głównego. AMP jest tańszą opcją niż SMP.
- Przetwarzanie masowo równoległe (MPP). W przypadku przetwarzania MPP (lub „luźno sprzężonego”) z tą samą aplikacją może pracować do 200 lub więcej procesorów. Każdy procesor ma własny system operacyjny i pamięć, ale układ ścieżek danych „połączonych” umożliwia przesyłanie komunikatów między procesorami. Zazwyczaj konfiguracja MPP jest bardziej skomplikowana i wymaga przemyślenia, jak podzielić wspólną bazę danych między procesory i jak przypisać pracę między procesorami. System MPP jest również znany jako system „nic nie współdzielono”.
Proces a wątek
Istnieje powszechne błędne przekonanie, że procesy i wątki są takie same, podczas gdy w rzeczywistości są to oddzielne sekwencje wykonania.
Poniżej przedstawiono typowe różnice między procesem a wątkiem:
- Proces jest sekcją działającego programu, podczas gdy wątek jest częścią procesu.
- Wątki są lekkie w porównaniu z procesami.
- Kiedy proces się kończy, robi to wolniej niż wątek.
- Tworzenie procesu wymaga więcej czasu niż tworzenie wątku.
- Procesy wymagają więcej czasu na przełączanie kontekstu, podczas gdy wątki potrzebują mniej czasu.
- W przeciwieństwie do wątków, które współdzielą pamięć, proces jest w dużym stopniu segregowany.
- Dane nie są udostępniane między procesami, ale między wątkami.
Poza błędnym postrzeganiem procesów i wątków, przetwarzanie wieloprocesowe jest czasami mylone z wieloprogramowaniem lub przeplatanym wykonywaniem dwóch lub więcej programów przez procesor. Obecnie termin ten jest rzadko używany, ponieważ wszystkie, z wyjątkiem najbardziej wyspecjalizowanych komputerowych systemów operacyjnych, obsługują wieloprogramowość.
Wieloprocesorowość można również pomylić z wielozadaniowością lub podziałem czasu, zarządzaniem programami i usługami systemowymi, o które proszą jako zadania, które można przeplatać, oraz z wielowątkowością, zarządzaniem wieloma ścieżkami wykonywania przez komputer lub wieloma użytkownikami współużytkującymi tę samą kopię program.
Wyzwania związane z przetwarzaniem wieloprocesowym
Wieloprocesorowość poprawia wydajność i niezawodność systemu, ale wiąże się również z kilkoma wyzwaniami:
- Drogi. Systemy z wieloma procesorami mogą być drogie. Posiadanie tylko jednego procesora jest tańsze niż posiadanie dwóch lub więcej. Zaleca się inwestowanie w kilka procesorów tylko wtedy, gdy będą się one opłacać w dłuższej perspektywie, ponieważ poza wydatkami początkowymi ich utrzymanie jest kosztowne.
- Zakleszczenia. W systemach z wieloma procesorami zakleszczenie może wystąpić, jeśli jeden procesor próbuje uzyskać dostęp do urządzenia wejścia/wyjścia (I/O), podczas gdy inny procesor próbuje go użyć.
- Dodatkowe wymagania dotyczące pamięci. Ze względu na ulepszone możliwości obliczeniowe komputery wieloprocesorowe są szeroko stosowane. Wiążą się one jednak ze zwiększonymi wymaganiami dotyczącymi pamięci. W architekturach wieloprocesorowych pamięć jest współdzielona przez wszystkie procesy, a każdy procesor wymaga miejsca w pamięci. Wszystkie procesory współpracują ze sobą i jednocześnie uzyskują bezpośredni dostęp do pamięci głównej, co powoduje wzrost zużycia pamięci.
- Złożony system operacyjny. W wieloprocesorowych systemach operacyjnych każdy procesor ma własny system operacyjny, który przypisuje każdemu procesorowi kilka mniejszych zadań, a obciążenie jest rozdzielane między procesory. Jednak użycie wielu procesorów sprawia, że działanie systemu operacyjnego jest bardziej złożone.
Zalety przetwarzania wieloprocesowego
Środowiska wieloprocesorowe są szeroko stosowane i oferują szeroki zakres zalet, takich jak zwiększona szybkość, przepustowość i niezawodność. Typowe korzyści wynikające z przetwarzania wieloprocesowego obejmują:
- Niezawodność. Jeśli jeden procesor ulegnie awarii w systemie wieloprocesorowym, inne procesory mogą przejąć luz i nadal działać. Chociaż wyłączenie jednego procesora może spowodować stopniowe spowolnienie, system może nadal działać płynnie. To sprawia, że systemy wieloprocesorowe są wysoce niezawodne.
- Zwiększona przepustowość. Przepustowość to liczba procesów wykonywanych w danym czasie. Biorąc pod uwagę, że systemy wieloprocesorowe używają wielu procesorów do obsługi danych, oczekuje się zwiększonej wydajności, gdy system wykorzystuje przetwarzanie równoległe. Oznacza to, że więcej zadań można wykonać w krótszym czasie, ponieważ są one podzielone między różne procesory.
- Cięcie kosztów. Systemy wieloprocesorowe są bardziej ekonomiczne w porównaniu z systemami wieloprocesorowymi. Wynika to z faktu, że wiele procesorów w jednym systemie współdzieli tę samą pamięć, miejsce na dysku, magistrale i urządzenia peryferyjne.
Wieloprocesorowość symetryczna, wieloprzetwarzanie asymetryczne i przetwarzanie masowo równoległe to tylko niektóre z kilku rodzajów przetwarzania wieloprocesowego. Dowiedz się, czym różnią się te tryby od siebie i zapoznać się z unikalnymi przypadkami użycia każdego z nich.