Wykres porównania
Podstawa do porównania | Wieloprocesorowość | Wielowątkowość |
---|---|---|
Podstawowy | Multiprocessing dodaje procesory, aby zwiększyć moc obliczeniową. | Wielowątkowość tworzy wiele wątków jednego procesu w celu zwiększenia mocy obliczeniowej. |
Wykonanie | Wiele procesów jest wykonywanych jednocześnie. | Wiele wątków pojedynczego procesu jest wykonywanych jednocześnie. |
kreacja | Stworzenie procesu jest czasochłonne i wymaga dużego nakładu zasobów. | Stworzenie nici jest ekonomiczne zarówno pod względem czasu, jak i zasobu. |
Klasyfikacja | Wieloprocesorowość może być symetryczna lub asymetryczna. | Wielowątkowość nie jest sklasyfikowana. |
Definicja przetwarzania wieloprocesowego
System wieloprocesowy to taki, który ma więcej niż dwa procesory. Procesory są dodawane do systemu w celu zwiększenia prędkości obliczeniowej systemu. Każdy procesor ma swój własny zestaw rejestrów i pamięci głównej. Tylko dlatego, że procesory są oddzielne, może się zdarzyć, że jeden procesor nie będzie miał nic do przetworzenia i może pozostawać bezczynny, a drugi może być przeciążony procesami. W takich przypadkach procesy i zasoby są dynamicznie współużytkowane przez procesory.
Przetwarzanie wieloprocesowe można sklasyfikować jako symetryczne przetwarzanie wieloprocesorowe i asymetryczne przetwarzanie wieloprocesowe . W symetrycznym przetwarzaniu wieloprocesorowym wszystkie procesory mogą uruchamiać dowolny proces w systemie. W przypadku asymetrycznego przetwarzania wieloprocesowego między procesorami istnieje zależność master-slave. Główny procesor jest odpowiedzialny za przydzielenie procesu procesorom podrzędnym.
Jeśli procesor ma zintegrowany kontroler pamięci, dodanie procesora zwiększy ilość adresowalnej pamięci w systemie. Przetwarzanie wieloprocesorowe może zmienić model dostępu do pamięci z jednolitego dostępu do pamięci na nierównomierny dostęp do pamięci . Jednolity dostęp do pamięci jest równy dostępowi do dowolnej pamięci RAM z dowolnego procesora. Z drugiej strony, nierównomierny dostęp do pamięci oznacza dłuższy czas dostępu do części pamięci niż pozostałe części.
Definicja wielowątkowości
Wielowątkowość to jednoczesne wykonywanie wielu wątków pojedynczego procesu w kontekście tego procesu. Teraz najpierw porozmawiajmy o czym jest wątek? Wątek procesu oznacza segment kodu procesu, który ma własny identyfikator wątku, licznik programu, rejestry i stos i może być wykonywany niezależnie. Ale wątki należące do tego samego procesu muszą dzielić się rzeczami tego procesu, takimi jak kod, dane i zasoby systemowe. Tworzenie oddzielnych procesów dla każdej prośby o usługę zużywa zasoby systemu czasu i układu wydechowego. Zamiast ponosić ten narzut, wydajniejsze jest tworzenie wątków procesu.
Tworzenie wątku jest ekonomiczne, ponieważ dzieli kod i dane procesu, do którego należą. System nie musi więc oddzielnie przydzielić zasobów dla każdego wątku. Wielowątkowość można zwiększyć w systemie operacyjnym wieloprocesowym. Wielowątkowość na wielu procesorach zwiększa równoległość .
Kluczowe różnice między wieloprocesorem a wielowątkowością
- Kluczową różnicą między procesem wieloprocesowym a wielowątkowością jest to, że proces wieloprocesowy pozwala systemowi na dodanie więcej niż dwóch procesorów do systemu, podczas gdy wielowątkowość pozwala procesowi generować wiele wątków w celu zwiększenia prędkości obliczeniowej systemu.
- System wieloprocesowy wykonuje jednocześnie wiele procesów, a system wielowątkowości pozwala jednocześnie wykonywać wiele wątków procesu.
- Tworzenie procesu może pochłonąć czas, a nawet wyczerpać zasoby systemowe. Jednak tworzenie wątków jest ekonomiczne, ponieważ wątki należące do tego samego procesu dzielą się dobrami tego procesu.
- Wieloprocesorowość można podzielić na symetryczne wieloprocesowe i asymetryczne wieloprocesowe, a wielowątkowość nie jest dalej klasyfikowana.
Wniosek:
Korzyści wynikające z wielowątkowości można stopniowo zwiększać w środowisku wieloprocesowym, ponieważ wielowątkowość w systemie wieloprocesowym zwiększa równoległość.