Есть ли там Варианты UNIX или другие ОС, которые делают потоки пользовательского уровня видимыми для ядра ОС? [закрыто]

-1
04.10.2016, 04:17
1 ответ

Думаю, вы спрашиваете, являются ли пользовательские потоки планируемыми объектами в ядре. Является ли пользовательский поток «видимым» для ядра, зависит от сопоставления между пользователем и ядром, которое зависит от используемой модели. Существуют различные модели потоков -

  • mx1 - все пользовательские потоки отображаются в 1 поток ядра
  • mxn - m потоков отображаются в n потоков ядра.
  • 1x1 - 1 пользовательский поток отображается в 1 поток ядра

[ https://www.kernel.org /doc/ols/2002/ols2002-pages-330-337.pdf visible[1 provided) для получения информации о моделях потоков.

В Linux ( по умолчанию используется модель потоковой передачи LinuxThreads , в которой используется 1x1. У каждого потока здесь свой pid. LinuxThreads не был совместим с posix, поэтому была реализована новая модель потоков - NPTL (man pthreads (7) для получения дополнительной информации) . В NPTL (1x1) все пользовательские потоки в процессе имеют одинаковый pid, но имеют уникальные идентификаторы потоков. Это можно увидеть с помощью флага -L в ps (man ps (1))

хорошая статья о NPTL - [ https://www.redhat.com/whitepapers/developer/POSIX_Linux_Threading.pdf] [2]

1
28.01.2020, 05:10

Теги

Похожие вопросы