ユーザーレベルのスレッドをオペレーティングシステムカーネルに表示する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]

関連情報