Native POSIX Thread Library

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 dziś 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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya