LinuxThreads

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая A5b (обсуждение | вклад) в 14:24, 7 декабря 2016 (переперевод с en:~ retranslated partially; original - cc-by-sa 3 https://en.wikipedia.org/wiki/LinuxThreads authors=en:User:EdC~enwiki). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

LinuxThreads - частичная реализация библиотеки потоков POSIX Threads для операционной системы Linux[когда?] в составе glibc. С начала 2000-х он был заменен библиотекой потоков POSIX (англ. Native POSIX Thread Library, NPTL), появившейся в 2002 и работавшей с ядрами Linux 2.6 и более новыми. [1] Основным разработчиком LinuxThreads был Ксавье Лерой (Xavier Leroy).

У LinuxThreads был ряд проблем, в основном из-за реализации, которая использует системный вызов клон для создания нового процесса, который разделяет общее адресное пространство с исходным процессом. Например, потокам присваивались различные идентификаторы процесса (PID), что вызывало проблемы с обработкой сигналов; LinuxThreads использует сигналы SIGUSR1 и SIGUSR2 для координации потоков, что приводит к невозможности использования этих сигналов в программах.

Чтобы улучшить ситуацию, разработку замены начали два конкурирующих проекта: NGPT (Next Generation POSIX Threads) и NPTL[2]. NPTL победила, была включена в glibc[какую?], и поставляется с большинством систем Linux. На 2006 LinuxThreads можно было встретить на производственных системах, в частности, использующих версию ядра Linux 2.4 и ниже, т.к. NPTL требует программных интерфейсов, которые были добавлены для реализации потоков в версии ядра 2.6.

LinuxThreads также портировали и использовали на FreeBSD.[3]

Примечания

  1. Jones, M. Tim. GNU/Linux application programming. — 2nd. — Hingham, Mass. : Charles River Media, 2008. — P. 253. — «The 2.6 kernel utilizes the new Native POSIX Thread Library, or NPTL (introduced in 2002), which is a higher performance implementation with numerous advantages over the older component.». — ISBN 978-1-58450-568-6.
  2. https://lwn.net/Articles/10741/
  3. LinuxThreads on FreeBSD [1]

Ссылки