POSIX trådbibliotek

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 20. september 2017; checks kræver 5 redigeringer .

POSIX Thread Library ( eng.  Native POSIX Thread Library , eng.  NPTL ) er et sæt programkode, der gør det muligt for kernen i Linux -operativsystemet effektivt at udføre programmer, der bruger POSIX-tråde . I øjeblikket integreret i glibc- biblioteket .

Baseret på test udført på en 32-bit arkitektur ( IA-32 ), starter NPTL med succes 100.000 tråde på omkring 2 sekunder. Til sammenligning tager en kerne uden NPTL-understøttelse omkring 15 minutter. [1] [2]

Historie

I versioner af Linux før 2.6 var der ingen egentlig trådarkitektur, selvom der for eksempel var understøttelse af klonen () systemkaldet , som skabte en kopi af processen, der kaldte den i det samme hukommelsesadresserum som processen sig selv. Især LinuxThreads- projektet brugte dette systemkald til at yde support til tråde inden for det samme adresserum. Desværre havde dette bibliotek problemer med POSIX -kompatibilitet , inklusive signalbehandling i realtid , afsendelse og synkronisering mellem processer.

For at afhjælpe situationen blev to projekter lanceret - NGPT (Next Generation POSIX Threads, POSIX Threads of the next generation), udviklet af IBM -udviklere , og NPTL, udviklet af Red Hat -medarbejdere . NGPT blev lukket i midten af ​​2003 nogen tid efter udgivelsen af ​​NPTL.

NPTL har nogle ligheder med LinuxThreads, såsom den primære abstraktion af kernen er også en proces, eller nye tråde oprettes ved at kalde clone(). For at synkronisere tråde bruger NPTL support fra kernen (futex-systemkaldet).

NPTL har været inkluderet i Red Hat Enterprise Linux-distributionen siden version 3 og er en del af glibc .

Bestemmelse af versionen af ​​threading-biblioteket på systemet

Versionen kan findes med følgende kommandolinje:

getconf GNU_LIBPTHREAD_VERSION

Kommandoen giver dig versionen af ​​standardtrådsbiblioteket på ethvert Linux-system.

Programmer, der bruger NPTL

  • Linux-versionen af ​​Google Earth (klient) erklærer behovet for, at NPTL kører.
  • Sun Microsystems' implementering af OpenMP er baseret på Solaris libpthread-biblioteket, som igen er en implementering af NPTL. Fra Solaris 10 er libpthread-biblioteket et filter, og implementeringen af ​​de funktioner, det giver, er i libc-biblioteket.

Noter

  1. Robert Love. Introduktion til 2.6-kernen  . Linux Journal . Arkiveret fra originalen den 21. januar 2012, Belltown Media, Inc.
  2. Ulrich Drepper, Ingo Molnar. The Native POSIX Thread Library for Linux  (engelsk) (PDF). Red Hat Inc. (21. februar 2005). Arkiveret fra originalen den 21. januar 2012.

Links