ユーザー レベルのスレッドを OS カーネルから見えるようにする UNIX バリアントまたはその他の OS はありますか?

ユーザー レベルのスレッドを OS カーネルから見えるようにする UNIX バリアントまたはその他の OS はありますか?

ユーザー レベルのスレッドを OS カーネルから見えるようにする UNIX バリアントまたはその他の OS はありますか?

答え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]

関連情報