Biblioteca de subprocesos POSIX nativa

La biblioteca de subprocesos POSIX nativos ( NPTL ) es una implementación de la especificación de subprocesos POSIX para el sistema operativo Linux .

Historia

Antes de la versión 2.6 del núcleo Linux , los procesos eran las entidades programables y no había facilidades especiales para los subprocesos . [1] Sin embargo, tenía una llamada al sistema —clone— que crea una copia del proceso que llama donde la copia comparte el espacio de direcciones del llamador. El proyecto LinuxThreads usó esta llamada al sistema para proporcionar subprocesos a nivel de núcleo (la mayoría de las implementaciones de subprocesos anteriores en Linux funcionaban completamente en el espacio de usuario ). Desafortunadamente, solo cumplía parcialmente con POSIX, particularmente en las áreas de manejo de señales, programación y primitivas de sincronización entre procesos.

Para mejorar LinuxThreads, estaba claro que se necesitaría algún soporte del núcleo y una nueva biblioteca de subprocesos. Se iniciaron dos proyectos en competencia para abordar el requisito: NGPT (Next Generation POSIX Threads), en el que trabajaba un equipo que incluía desarrolladores de IBM , y NPTL, en el que trabajaban desarrolladores de Red Hat . El equipo de NGPT colaboró ​​estrechamente con el equipo de NPTL y combinó las mejores características de ambas implementaciones en NPTL. El proyecto NGPT se abandonó posteriormente a mediados de 2003 después de fusionar sus mejores características en NPTL.

NPTL se lanzó por primera vez en Red Hat Linux 9. El sistema de subprocesos POSIX de Linux de estilo antiguo es conocido por tener problemas con subprocesos que se niegan a ceder ante el sistema ocasionalmente, porque no aprovecha la oportunidad de adelantarse a ellos cuando surge, algo que Windows sabía hacer mejor en ese momento. Red Hat afirmó que NPTL solucionó este problema en un artículo en el sitio web de Java sobre Java en Red Hat Linux 9. [2]

NPTL ha sido parte de Red Hat Enterprise Linux desde la versión 3 y del núcleo Linux desde la versión 2.6. Ahora es una parte completamente integrada de la biblioteca C de GNU . [3]

Existe una herramienta de seguimiento para NPTL, llamada POSIX Thread Trace Tool (PTT). Además, se escribió un conjunto de pruebas Open POSIX (OPTS) para probar la biblioteca NPTL con respecto al estándar POSIX.

Diseño

Al igual que LinuxThreads, NPTL es una biblioteca de subprocesos 1:1. Los subprocesos creados por la biblioteca (a través de pthread_create ) se corresponden uno a uno con las entidades programables en el núcleo ( procesos , en el caso de Linux). [4] : 226  Este es el más simple de los tres modelos de subprocesos (1:1, N:1 y M:N). [4] : 215–216  Los nuevos subprocesos se crean con la llamada al sistema clone() realizada a través de la biblioteca NPTL. NPTL se basa en el soporte del núcleo para futexes para implementar de manera más eficiente los bloqueos del espacio de usuario. [4] : 182 

Véase también

Referencias

  1. ^ pthreads(7) — Página del manual de Linux
  2. ^ Red Hat Linux 9 y Java 2 Platform, Standard Edition 1.4.2: una combinación ganadora
  3. ^ Lanzamiento de la versión 2.3.3 de la biblioteca C de GNU
  4. ^ abc Robert Love (2013). Programación de sistemas Linux (2.ª edición). O'Reilly Media, Incorporated. ISBN 978-1449339531.
  • Herramienta de seguimiento NPTL Herramienta de código abierto para rastrear y depurar aplicaciones multiproceso utilizando NPTL.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Biblioteca_de_subprocesos_POSIX_nativos&oldid=1228677067"