Native POSIX Thread Library (NPTL) – biblioteka umożliwiająca efektywne uruchamianie programów zgodnych ze standardem POSIX Threads na jądrze Linux. Cechuje ją bardzo duża wydajność, np. uruchomienie 100 000 wątków na komputerze klasy IA-32 zajmuje bez użycia NPTL ok. 15 minut, a przy użyciu NPTL czas ten zmniejsza się do około 2 sekund.

Historia

NPTL jest dostępna od wersji 2.6 jądra Linux. Wcześniej tworzono wątki przy użyciu wywołania systemowego clone() z odpowiednimi flagami. Proces macierzysty rozgałęział się wtedy na dwa wątki, które współdzieliły ze sobą przestrzeń adresową i tablicę deskryptorów plików. Pierwszą „prawdziwą” implementacją wątków w jądrze Linux był projekt o nazwie LinuxThreads. To on wprowadził możliwość prostszego korzystania z wątków w przestrzeni użytkownika. W wielu dystrybucjach do dziś można spotkać tę właśnie implementację wątków.

Jednak LinuxThreads jest stosunkowo powolnym rozwiązaniem, dlatego firma IBM zaprezentowała swoją koncepcję realizacji wątków w jądrze Linux. Rozwiązanie to nosi nazwę NGPT (ang. Next Generation POSIX Threads). Okazało się jednak, że rozwiązanie proponowane przez firmę Red Hat jest zdecydowanie wydajniejsze. W roku 2003 firma IBM zakończyła prace nad NGPT.

Pomysłem promowanym przez Red Hata była właśnie biblioteka NPTL. Wymagała ona pewnych zmian w jądrze i do dnia dzisiejszego nie wszyscy dystrybutorzy systemu Linux zdecydowali się przejść na tę implementację wątków. NPTL pojawiła się pierwszy raz w systemie Red Hat Linux 9. NPTL wychodzi z założenia, że każdy wątek można zaprezentować jako proces. Jądro nie widzi różnicy między wątkiem a procesem, poza jednym wyjątkiem – przy przełączaniu wątków nie trzeba przełączać przestrzeni adresowej, co znacznie skraca czas potrzebny na przełączenie procesu.

Zobacz też

Linki zewnętrzne

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.