是否有 UNIX 变体或其他操作系统使用户级线程对操作系统内核可见?

是否有 UNIX 变体或其他操作系统使用户级线程对操作系统内核可见?

是否有 UNIX 变体或其他操作系统使用户级线程对操作系统内核可见?

答案1

我认为您要问的是用户线程是否是内核中可调度的实体。用户线程对内核是否“可见”取决于用户->内核之间的映射,而这取决于所使用的模型。有多种线程模型 -

  • mx1 - 所有用户线程映射到 1 个内核线程
  • mxn - m 个线程映射到 n 个内核线程。
  • 1x1 - 1 个用户线程映射到 1 个内核线程

[https://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf][1]有关线程模型的信息。

Linux 上默认的线程模型(<glibc 2.4)Linux线程其中使用了 1x1。这里每个线程都有不同的pid。 LinuxThreads 与 posix 不兼容,因此实现了新的线程模型 -NPTL (man pthreads(7) for more info)。在NPTL(1x1),进程中的所有用户线程都具有相同的 pid,但具有唯一的线程 id。这些可以使用 ps 中的 -L 标志来查看(man ps(1))

关于 NPTL 的好文章 -- [https://www.redhat.com/whitepapers/developer/POSIX_Linux_Threading.pdf][2]

相关内容