Existem variantes do UNIX ou outro sistema operacional que tornam os threads de nível de usuário visíveis para o kernel do sistema operacional?

Existem variantes do UNIX ou outro sistema operacional que tornam os threads de nível de usuário visíveis para o kernel do sistema operacional?

Existem variantes do UNIX ou outro sistema operacional que tornam os threads de nível de usuário visíveis para o kernel do sistema operacional?

Responder1

Acho que o que você está perguntando é se os threads de usuário são entidades agendáveis ​​no kernel. Se o thread do usuário está "visível" para o kernel depende do mapeamento entre usuário -> kernel, que depende do modelo usado. Existem vários modelos de rosqueamento -

  • mx1 - todos os threads do usuário são mapeados para 1 thread do kernel
  • mxn - m threads são mapeados para n threads do kernel.
  • 1x1 - 1 thread de usuário mapeia para 1 thread de kernel

[https://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf][1]para obter informações sobre modelos de threading.

O modelo de threading padrão no Linux (<glibc 2.4)éLinuxThreadsque usou 1x1. Cada thread tem um pid diferente aqui. LinuxThreads não era compatível com posix, então um novo modelo de threading foi implementado -NPTL (man pthreads(7) for more info). EmNPTL(1x1), todos os threads de usuário em um processo têm o mesmo pid, mas possuem IDs de thread exclusivos. Eles podem ser vistos usando o sinalizador -L no ps(man ps(1))

bom artigo sobre NPTL - [https://www.redhat.com/whitepapers/developer/POSIX_Linux_Threading.pdf][2]

informação relacionada