logo

Modele wielowątkowe w systemie operacyjnym

W tym artykule zrozumiemy model wielowątkowości w systemie operacyjnym.

Model wielowątkowy:

Wielowątkowość pozwala aplikacji podzielić swoje zadania na poszczególne wątki. W przypadku wielowątkowości ten sam proces lub zadanie można wykonać poprzez liczbę wątków lub możemy powiedzieć, że w przypadku wielowątkowości istnieje więcej niż jeden wątek do wykonania zadania. Dzięki zastosowaniu wielowątkowości można osiągnąć wielozadaniowość.

klauzule sql
Modele wielowątkowe w systemie operacyjnym

Główną wadą systemów jednowątkowych jest to, że w danym momencie można wykonywać tylko jedno zadanie, więc aby przezwyciężyć tę wadę jednowątkową, istnieje wielowątkowość, która umożliwia wykonywanie wielu zadań.

Na przykład:

Modele wielowątkowe w systemie operacyjnym

W powyższym przykładzie klient1, klient2 i klient3 uzyskują dostęp do serwera WWW bez żadnego oczekiwania. W przypadku wielowątkowości kilka zadań może być wykonywanych jednocześnie.

W systemie operacyjnym wątki dzielą się na wątek na poziomie użytkownika i wątek na poziomie jądra. Wątki na poziomie użytkownika obsługiwane są niezależnie od jądra i tym samym zarządzane bez jakiejkolwiek obsługi jądra. Z drugiej strony system operacyjny bezpośrednio zarządza wątkami na poziomie jądra. Niemniej jednak musi istnieć jakaś forma relacji między wątkami na poziomie użytkownika i na poziomie jądra.

Istnieją trzy ustalone modele wielowątkowości klasyfikujące te relacje:

  • Model wielowątkowości wiele do jednego
  • Model wielowątkowości jeden do jednego
  • Wiele do wielu modeli wielowątkowych

Model wielowątkowości wiele do jednego:

Model wiele do jednego odwzorowuje wiele wątków poziomów użytkownika na jeden wątek jądra. Ten typ relacji ułatwia efektywne środowisko przełączania kontekstu, które można łatwo zaimplementować nawet na prostym jądrze bez obsługi wątków.

referencyjne typy danych w Javie

Wadą tego modelu jest to, że ponieważ w danym momencie istnieje tylko jeden harmonogram wątków na poziomie jądra, model ten nie może wykorzystać akceleracji sprzętowej oferowanej przez procesy wielowątkowe lub systemy wieloprocesorowe. W tym przypadku całe zarządzanie wątkami odbywa się w przestrzeni użytkownika. Jeśli nastąpi blokowanie, model ten blokuje cały system.

Modele wielowątkowe w systemie operacyjnym

Na powyższym rysunku model wiele do jednego kojarzy wszystkie wątki na poziomie użytkownika z pojedynczymi wątkami na poziomie jądra.

np.histogram

Model wielowątkowy jeden do jednego

Model jeden do jednego odwzorowuje pojedynczy wątek na poziomie użytkownika na pojedynczy wątek na poziomie jądra. Ten typ relacji ułatwia równoległe działanie wielu wątków. Jednak ta zaleta ma swoją wadę. Generowanie każdego nowego wątku użytkownika musi obejmować utworzenie odpowiedniego wątku jądra, powodując obciążenie, które może utrudniać działanie procesu nadrzędnego. Systemy operacyjne Windows i Linux próbują rozwiązać ten problem, ograniczając wzrost liczby wątków.

Modele wielowątkowe w systemie operacyjnym

Na powyższym rysunku jeden model kojarzy jeden wątek na poziomie użytkownika z pojedynczym wątkiem na poziomie jądra.

Wiele do wielu Model wielowątkowy modelu

W tego typu modelu istnieje kilka wątków na poziomie użytkownika i kilka wątków na poziomie jądra. Liczba utworzonych wątków jądra zależy od konkretnej aplikacji. Deweloper może utworzyć dowolną liczbę wątków na obu poziomach, ale mogą one nie być takie same. Model wiele do wielu jest kompromisem pomiędzy dwoma pozostałymi modelami. W tym modelu, jeśli jakikolwiek wątek wykona blokujące wywołanie systemowe, jądro może zaplanować wykonanie innego wątku. Ponadto wraz z wprowadzeniem wielu wątków nie występuje złożoność, jak w poprzednich modelach. Chociaż model ten pozwala na tworzenie wielu wątków jądra, nie można w nim osiągnąć prawdziwej współbieżności. Dzieje się tak dlatego, że jądro może zaplanować tylko jeden proces na raz.

Modele wielowątkowe w systemie operacyjnym

Wiele lub wiele wersji modelu wielowątkowości wiąże kilka wątków na poziomie użytkownika z tą samą lub znacznie mniejszą różnorodnością wątków na poziomie jądra na powyższym rysunku.