1 Omow Modele Wielowatkowo Ci I Przedstaw Ich Praktyczne Zastosowanie

Wątek (thread), zwany także procesem lekkim (light-weight process –LWP), jest podstawową jednostką wykorzystania CPU –posiada: licznik rozkazów, zbiór rejestrówi obszar stosu.
Zalety wątków:☺Dzielenie zasobów sprawia, ze przełączanie między wątkami oraz tworzenie wątków jest tanie w porównaniu z procesami ciężkimi.☺Oszczędne wykorzystanie zasobów –dzięki ich współużytkowaniu.☺Współpraca wielu wątków pozwala zwiększyć przepustowość i poprawić wydajność (np. jeśli jeden wątek jest zablokowany, to może działać inny).☺Wykorzystanie architektury wieloprocesorowej (wątek →procesor).

Modele wielowątkowości

•Model „wiele na jeden” (many-to-one):
􀂃Wiele wątków poziomu użytkownikaodwzorowanych na jeden wątek jądra(np. bibliotekagreen threadsw systemie Solaris 2).
􀂃Stosowany w systemach nie posiadających wątków jądra.
•Model „jeden na jeden”(one-to-one):
􀂃Każdywątek poziomu użytkownikaodwzorowany wzajemnie jednoznaczniena jeden wątek jądra.
􀂉Przykłady: systemy Windows NT/2000/XP, OS/2.
•Model „wiele na wiele” (many-to-many):
􀂃Wiele wątków poziomu użytkownikajest multipleksowanych na mniejszą lub równą liczbę wątków jądra.
􀂃Pozwala systemowi operacyjnemu utworzyć dostateczną liczbę wątków jądra →dobra współbieżność i dobra wydajność.
􀂃Często występuje poziom pośredni w postaci procesów lekkich (LWP), będących dla wątków użytkownika czymś w rodzaju wielowątkowych wirtualnych procesorów–z każdym LWP związany jest jeden wątek jądra, natomiast zwykły proces może składać się z jednego lub więcej LWP.
􀂉Przykłady: systemy Solaris 2, IRIX, HP-UX, Tru64 UNIX
Pule wątków (thread pools)
􀂾Wielowątkowość jest powszechnie stosowana w serwerach WWW –kiedy taki serwer otrzymuje zamówienie, wtedy tworzy wątek do jego obsługi.
􀂙Brak ograniczeń dotyczących wątków może doprowadzić do wyczerpania zasobów systemu, takich jak pamięć lub czas procesora.
􀀹Jednym z rozwiązań jest zastosowanie puli wątków–w chwili uruchomienia proces tworzy pewną liczbę wątków (pulę), które oczekują na zamówienia; kiedy nadchodzi zamówienie, wątek z puli jest budzony przez serwer, a po obsłużeniu zamówienia wraca do puli i czeka na kolejne zlecenie.
☺Zwykle łatwiej jest obsłużyć zamówienie za pomocą istniejącego wątku niż tworzyć do tego celu nowy wątek.
☺Pula wątków ogranicza liczbę wątków, co chroni przed wyczerpaniem zasobów systemowych, a także spadkiem wydajności systemu.
•Dane specyficzne wątku (thread-specificdata)
􀂾Wątki należące do procesu dzielą jego dane, co jest zaletą wielowątkowości.
􀀹W pewnych sytuacjach wątek może potrzebować własnej kopii jakichś danych (np. identyfikator transakcji w wielowątkowych systemach transakcyjnych)–większość bibliotek wątków dostarcza możliwości utrzymywania danych specyficznych wątku(np. Pthreads, Win32, Java).

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License