Библиотека потоков 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 Тип Эмулятор …   Википедия


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

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