Wielowątkowość
Z Wikipedii
Wielowątkowość to cecha systemu operacyjnego, dzięki której w ramach jednego procesu może wykonywać kilka wątków lub jednostek wykonawczych. Nowe wątki to kolejne ciągi instrukcji wykonywane oddzielnie. Wszystkie wątki tego samego procesu współdzielą kod programu i dane. W systemach nie obsługujących wielowątkowości pojęcia procesu i wątku utożsamiają się.
Wielowątkowość może także odnosić się do samych procesorów. W takim wypadku oznacza możliwość jednoczesnego wykonywania wielu wątków sprzętowych na pojedynczej jednostce wykonawczej - rdzeniu (ang. core). Wielowątkowość w procesorach możliwa jest dzięki temu że nie wszystkie części jednostki wykonawczej są w jednakowym stopniu wykorzystywane przez pojedynczy wątek (ciąg instrukcji). Nieaktywne części jednostki wykonawczej mogą w tym czasie wykonywać inny wątek zwiększając efektywność wykorzystania całego procesora. W zależności od rodzaju technik zastosowanych do obsługi dodatkowych wątków sprzętowych spotyka się od 2 (najczęściej) do nawet 8 wątków sprzętowych na pojedynczy rdzeń procesora (core).
[edytuj] Cechy wielowątkowości
- wszystkie wątki wykonują się w ramach tylko jednego programu (procesu) - to znaczy, że wykonują ten sam kod wykonawczy (przykładowo: w systemach Unix/Linux każdemu wątkowi przydziela się konkretną funkcję do wykonania)
- wątki zostały wprowadzone aby zwiększyć wydajność w programowaniu współbieżnym, gdzie zachodzi potrzeba wykonania wielu zadań jednocześnie;
- wszystkie wątki procesu współdzielą tą samą wirtualną przestrzeń adresową (mają dostęp to tych samych "egzemplarzy" zmiennych, obiektów i struktur) i korzystają z tych samych zasobów systemowych;
- komunikacja między wątkami w odróżnieniu od procesów jest bardzo łatwa do wykonania - w przypadku wątków wystarczy odwoływać się do tych samych zmiennych i obiektów - komunikacja między procesami wymaga zastosowania mechanizmów IPC (ang. InterProcess Communication);
- współdzielenie wirtualnej przestrzeni adresowej niesie duże zagrożenie - jeden "wadliwy" wątek może zagrozić wykonaniu całego programu;
- każdy wielowątkowy system operacyjny zapewnia specyficzne metody synchronizacji wątków, które z wyżej wymienionych przyczyn należy bezwzględnie zaimplementować.
Systemy wielowątkowe to m.in. BeOS, Microsoft Windows 95, Windows NT, Unix.