Библиотека потоков POSIX

Библиотека потоков POSIX

Библиотека потоков POSIX (англ. Native POSIX Thread Library, англ. NPTL) — набор программного кода, позволяющего ядру операционной системы Linux достаточно эффективно выполнять программы, использующие потоки POSIX. В настоящее время интегрирована в библиотеку glibc.

По тестам, проведённым на 32-битной архитектуре (IA-32) NPTL успешно стартует 100 тысяч потоков примерно за 2 секунды. Для сравнения — ядру без поддержки NPTL требуется около 15 минут.[1][2]

Содержание

История

В версиях Linux до 2.6 не существовало реальной потоковой архитектуры, хотя поддерживался, например, системный вызов clone(), создававший копию вызвавшего его процесса в том же адресном пространстве памяти, что и сам процесс. В частности, проект LinuxThreads использовал этот системный вызов для организации поддержки потоков в рамках одного адресного пространства. К сожалению, эта библиотека имела проблемы с совместимостью со стандартом POSIX, в том числе по обработке сигналов реального времени, диспетчеризации и межпроцессных синхронизирующих примитивов.

Для исправления ситуации были начаты два проекта — NGPT (Next Generation POSIX Threads, Потоки POSIX следующего поколения), разрабатывавшийся в том числе разработчиками IBM и NPTL, разрабатываемого сотрудниками Red Hat. NGPT был закрыт в середине 2003, спустя некоторое время после выпуска NPTL.

NPTL имеет некоторые сходства с LinuxThreads, такие как первичная абстракция ядра тоже процесс или новые потоки создаются вызовом clone(). Для синхронизации потоков NPTL использует поддержку со стороны ядра (системный вызов futex).

NPTL включена в дистрибутив Red Hat Enterprise Linux с версии 3, и является частью glibc.

Определение версии библиотеки потоков в системе

Версию можно узнать следующей командной строкой:

getconf GNU_LIBPTHREAD_VERSION

Команда выдаст версию установленной по умолчанию библиотеки потоков на любой Linux системе.

Программы, использующие NPTL

  • Linux версия Google Earth (клиент) декларирует необходимость NPTL для запуска.
  • Реализация OpenMP от Sun Microsystems базируется на библиотеке Solaris libpthread, являющейся, в свою очередь, реализацией NPTL. Начиная с Solaris 10, библиотека libpthread представляет собой фильтр, а реализация предоставляемых ею функций находится в библиотеке libc.

Примечания

  1. ↑ Robert Love Introducing the 2.6 Kernel  (англ.). Linux Journal. Belltown Media, Inc.. Архивировано из первоисточника 21 января 2012.
  2. ↑ Ulrich Drepper, Ingo Molnar The Native POSIX Thread Library for Linux  (англ.) (PDF). Red Hat, Inc. (21 February 2005). Архивировано из первоисточника 21 января 2012.

Ссылки

  • NPTL Trace Tool, утилита отладки программ, использующих NPTL  (англ.)

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Библиотека потоков POSIX" в других словарях:

  • POSIX — Хронологическое дерево стандартов UNIX API POSIX® (англ. Portable Operating System Interface for Unix  Переносимый интерфейс опера …   Википедия

  • Стандартная библиотека языка Си — Стандартная библиотека языка программирования С assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stdbool.h stddef.h …   Википедия

  • Стандартная библиотека языка C++ — Стандартная библиотека языка программирования C++ fstream iomanip ios iostream sstream Стандартная библиотека шаблонов …   Википедия

  • Boost (библиотека) — Boost Тип библиотека (программирование) Написана на С++ Операционная система Кроссплатформенный Последняя версия Boo …   Википедия

  • Поток выполнения — Для термина «Поток» см. другие значения. Процесс с двумя потоками выполнения на одном процессоре Поток выполнения (анг …   Википедия

  • SIGRTMIN — SIGRTMIN  SIGRTMAX Описание: Пользовательские сигналы реального времени По умолчанию: завершение процесса коды SA SIGINFO (не имеет специфических кодов) В SIGRTMIN и SIGRTMAX  первый и последний из диапазона пользовательских сигналов, который… …   Википедия

  • SIGRTMAX — SIGRTMIN  SIGRTMAX Описание: Пользовательские сигналы реального времени По умолчанию: завершение процесса коды SA SIGINFO (не имеет специфических кодов) В SIGRTMIN и SIGRTMAX  первый и последний из диапазона пользовательских сигналов, который… …   Википедия

  • Single Unix Specification — POSIX® (англ. Portable Operating System Interface for Unix  Переносимый интерфейс операционных систем Unix)  набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения… …   Википедия

  • Позикс — POSIX® (англ. Portable Operating System Interface for Unix  Переносимый интерфейс операционных систем Unix)  набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения… …   Википедия

  • Cygwin — на Windows XP Тип Эмулятор …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
… Нажмите правой клавишей мыши и выберите «Копировать ссылку»