私が知る限り、Linuxカーネルでは
この構造は、
task_struct
プロセスではなく軽量プロセスであるスレッドを表します。プロセスはどの構造でも表現されず、同じスレッドグループIDを共有するスレッドグループとして表されます。
次も同じだ。オペレーティングシステムの概念正しいですか?
Linuxは、システムコールを使用してスレッドを生成する機能も提供します
clone()
。しかし、Linuxはプロセスとスレッドを区別しません。。実際、プログラム内の制御フローについて言及すると、Linuxは「プロセス」または「スレッド」の代わりに「作業」という用語を使用します。
どういう意味ですか?
ありがとうございます。
ベストアンサー1
Linuxはまた、clone()システムコールを使用してスレッドを生成する機能も提供します。しかし、Linuxはプロセスとスレッドを区別しません。実際、Linuxでは、プログラム内の制御フローに言及するときに、「プロセス」または「スレッド」の代わりに「作業」という用語を使用します。
実際の実装と見える表面を区別する必要があります。
ユーザー(システムソフトウェア開発者)の観点から見ると、1つの大きな違いがあります。スレッドは多くの共通リソース(たとえば、メモリマップ(もちろんスタックに加えてファイル記述子))を共有します。
Linux内部(警告:不正確な手振り引数)コア1)現在持っているものを使っています。つまり、プロセスとスレッドに同じ構造を使用します。ここで、単一プロセスのスレッドについては、何かを複製せずに単一インスタンス(メモリマッピングの説明)を参照します。
そのため、スレッドやプロセスを直接的に表現するレベルでは基本構造は大きく変わらず、情報をどのように処理するかが問題だ。
また、読書に興味がある可能性がありますLinuxのスレッドはプロセスとして実装されていますか?
1)最近「Linux」はほとんどのオペレーティングシステムを意味しますが、実際にはカーネル自体にすぎないことを覚えておいてください。