Knihovna vláken POSIX

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. září 2017; kontroly vyžadují 5 úprav .

POSIX Thread Library ( angl.  Native POSIX Thread Library , angl.  NPTL ) je sada programového kódu, která umožňuje jádru operačního systému Linux efektivně spouštět programy, které používají vlákna POSIX . V současné době je integrován do knihovny glibc .

Na základě testů provedených na 32bitové architektuře ( IA-32 ) NPTL úspěšně spustí 100 000 vláken za přibližně 2 sekundy. Pro srovnání, jádro bez podpory NPTL trvá asi 15 minut. [1] [2]

Historie

Ve verzích Linuxu před 2.6 neexistovala žádná skutečná architektura vláken, i když existovala podpora například pro systémové volání clone () , které vytvořilo kopii procesu, který jej volal, ve stejném paměťovém adresním prostoru jako proces. sám. Konkrétně projekt LinuxThreads používal toto systémové volání k poskytování podpory pro vlákna ve stejném adresním prostoru. Bohužel tato knihovna měla problémy s kompatibilitou POSIX , včetně zpracování signálů v reálném čase , odesílání a meziprocesních synchronizačních primitiv.

K nápravě této situace byly spuštěny dva projekty – NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), vyvinutý vývojáři IBM , a NPTL vyvinutý zaměstnanci Red Hat . NGPT byla uzavřena v polovině roku 2003 nějakou dobu po vydání NPTL.

NPTL má určité podobnosti s LinuxThreads, například primární abstrakce jádra je také proces nebo se nová vlákna vytvářejí voláním clone(). K synchronizaci vláken používá NPTL podporu z jádra (systémové volání futex).

NPTL je součástí distribuce Red Hat Enterprise Linux od verze 3 a je součástí glibc .

Určení verze knihovny vláken v systému

Verzi lze nalézt pomocí následujícího příkazového řádku:

getconf GNU_LIBPTHREAD_VERSION

Příkaz vám poskytne verzi výchozí knihovny vláken na libovolném systému Linux.

Programy používající NPTL

  • Linuxová verze aplikace Google Earth (klient) deklaruje nutnost spuštění NPTL.
  • Implementace OpenMP od Sun Microsystems je založena na knihovně Solaris libpthread, která je zase implementací NPTL. Počínaje Solaris 10 je knihovna libpthread filtrem a implementace funkcí, které poskytuje, je v knihovně libc.

Poznámky

  1. Robert Love. Představujeme jádro 2.6  . Linuxový deník . Archivováno z originálu 21. ledna 2012, Belltown Media, Inc.
  2. Ulrich Drepper, Ingo Molnar. Nativní knihovna vláken POSIX pro Linux  (v angličtině) (PDF). Společnost Red Hat Inc. (21. února 2005). Archivováno z originálu 21. ledna 2012.

Odkazy

  • NPTL Trace Tool , nástroj pro ladění programů používajících   NPTL