LinuxThreads: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м викификация
м викификация
Строка 3:
У LinuxThreads был ряд проблем, в основном из-за реализации, использующей системный вызов clone() для создания нового [[Процесс (информатика)|процесса]], который разделяет общее [[Адресное пространство (информатика)|адресное пространство]] с исходным процессом. Например, потокам присваивались различные [[Идентификатор процесса|идентификаторы процесса]] (PID), что вызывало проблемы с обработкой сигналов; LinuxThreads использует сигналы [[Сигналы_(UNIX)#.D0.9A.D0.BB.D0.B0.D1.81.D1.81.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F_.D1.81.D0.B8.D0.B3.D0.BD.D0.B0.D0.BB.D0.BE.D0.B2|SIGUSR1]] и [[Сигналы_(UNIX)#.D0.9A.D0.BB.D0.B0.D1.81.D1.81.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F_.D1.81.D0.B8.D0.B3.D0.BD.D0.B0.D0.BB.D0.BE.D0.B2|SIGUSR2]] для координации потоков, что приводит к невозможности использования этих сигналов в программах.
 
Чтобы улучшить ситуацию, разработку замены начали два конкурирующих проекта: NGPT ({{lang-en2|Next Generation POSIX Threads}}) и [[NPTL]]<ref>[https://lwn.net/Articles/10741/ first NPT vs. NGPT vs. LinuxThreads benchmark results [LWN.net&#93;<!-- Заголовок добавлен ботом -->]</ref>. NPTL победила, была включена в [[glibc]]{{какую}}, и поставляется с большинством систем Linux. На 2006 LinuxThreads можно было встретить на производственных системах, в частности, использующих версию [[Ядро Linux|ядра Linux]] 2.4 и ниже, так как NPTL требует программных интерфейсов, которые были добавлены для реализации потоков в версии ядра 2.6.
 
LinuxThreads также портировали и использовали на [[FreeBSD]].<ref>LinuxThreads on FreeBSD [http://www.freebsdsoftware.org/devel/linuxthreads.html] {{Wayback|url=http://www.freebsdsoftware.org/devel/linuxthreads.html |date=20140808042341 }}</ref>