Linuxのプロセス制御ブロックとプロセス記述子の違いを理解するのに問題がありますか?プロセス制御ブロック、Linuxのプロセス記述子、task_struct?
私はtask_struct
と呼ばれるこれらの構造の両方を見てきました。これらの用語は互換的に使用されているようです.2つの違いは何ですか?
ご協力いただきありがとうございます。
Linuxのプロセス制御ブロックとプロセス記述子の違いを理解するのに問題がありますか?プロセス制御ブロック、Linuxのプロセス記述子、task_struct?
私はtask_struct
と呼ばれるこれらの構造の両方を見てきました。これらの用語は互換的に使用されているようです.2つの違いは何ですか?
ご協力いただきありがとうございます。
これらの用語(「プロセス制御ブロック」または「プロセス記述子」)は、Linuxカーネル開発では「芸術の用語」とはみなされません。もちろん、公式のLinuxカーネルの用語集はありません。だから、人々はそれらに意味をなさないものを自由に呼び出すことができます。しかしながら、task_struct
は、特定のC構造であり、Linuxカーネルが状態を維持するためにタスクについて使用しています。 Linuxのタスクは、おおよそスレッドに対応しています。
各ユーザープロセスには少なくとも1つのスレッドがあるため、各プロセスは1つ以上のtask_structs
にマップされます。より具体的には、プロセスは、ファイルディスクリプタ、アドレス空間/メモリマップ、信号処理、プロセスおよびプロセスグループIDなど、特定のリソースを共有する1つまたは複数のタスクです。プロセス内の各スレッドは、他のリソース:レジスタ/実行コンテキスト、スケジューリングパラメータなど。
プロセスが1つのスレッドしか持たないことはよくあります。その場合、プロセスは単一のtask_struct
で表されると考えることができます。