私は、このすべてのエンティティーと、それらがLinuxでどのように相互接続しているのか混乱しています。 「Unix internals」の本によれば、lightweight process (LWP)
はカーネルでサポートされているユーザースレッドであり、そのカーネルはプロセス内のスレッドを認識しません。 Linuxの場合は本当ですか?Linuxのユーザースペースのスレッド、カーネルスレッド、軽量プロセス
私が理解しているように、カーネルの介入なしに、プロセス内でユーザ空間のスレッドをpthread
ライブラリという高レベルの抽象化によってスケジュールしました。私は正しい?
LinuxThreadsの実装では、カーネルスケジューラブルスレッドマッピングに1:1のユーザスレッドが使用されています(これはプロセスにのみマップされ、NPTL-glibcのposixスレッドはカーネルスケジューラブルスレッドにマッピングされます)。 NGPT(Next Generation POSIX Threads)は2003年まではおそらく1:1以外のマッピングしかありませんでした。 https://en.wikipedia.org/wiki/Green_threadsは、言語インタープリターで実装されることがあります。 – osgx
@osgx OK、説明に感謝します。混乱を避けるため、LinuxThreadsへの参照を削除しました。 – Arnout