Native POSIX Thread Library: Różnice pomiędzy wersjami

Rozmiar się nie zmienił ,  16 lat temu
m
Posix -> POSIX
mNie podano opisu zmian
m (Posix -> POSIX)
'''NPTL''' (ang. Native PosixPOSIX Thread Library) - to [[Linux|Linuksowa]] implementacja [[wątek|wątków]]. Cechuje ją bardzo duża szybkość działania. 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 systemu [[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 systemie 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 systemie Linux. Rozwiązanie to nosi nazwę [[NGPT]] (ang. Next Generation PosixPOSIX 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 Hat]]a 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.
przestrzeni adresowej, co znacznie skraca czas, potrzebny na przełączenie procesu.
 
==Zobacz także==
==Linki zewnętrzne==
* [http://people.redhat.com/drepper/nptl-design.pdf Szczegóły implementacji NPTL]
 
{{komp-stub}}
[[Kategoria:Linux]]
2208

edycji