process control block (PCB)とスレッド制御ブロック(TCB)は、どちらもLinuxカーネルでCPUに委任されたCPU時間を持つために使用されます。両者の違いは何ですか?差分B/W TCB(スレッド制御ブロック)とPCB(プロセス)
一般にプロセス制御ブロック(PCB)にはどのような情報が保持されていますか?
process control block (PCB)とスレッド制御ブロック(TCB)は、どちらもLinuxカーネルでCPUに委任されたCPU時間を持つために使用されます。両者の違いは何ですか?差分B/W TCB(スレッド制御ブロック)とPCB(プロセス)
一般にプロセス制御ブロック(PCB)にはどのような情報が保持されていますか?
プロセスID、プロセスグループID、親プロセスと子プロセス、ヒープポインタ、プログラムカウンタ、スケジューリングステート(実行中、準備完了、ブロック済み)、パーミッション(どのシステムリソースプロセスにアクセスすることが許可される)、汎用レジスタの内容、およびオープンファイルが含まれる。
TCBには、スレッドIDやそのスレッドを含むプロセスへのポインタなどの特定の値に加えて、PCB(レジスタ値、スタックポインタ、プログラムカウンタ、スケジューリング状態)と同じフィールドがあります。スレッド間には保護がないことに注意してください。
Linuxには、スレッドまたはプロセスに関する情報を格納するstruct task_structがあります。これは sched.hで宣言されています。
PCBには、カーネルプロセスに関する情報が格納されています。同様のアドレス空間など...
プロセスには異なるカーネルスレッドを含めることができます。 両方ともディスパッチャとスケジューラによって管理されます。
TCBにはスレッド固有の情報が含まれています。
'プロセス制御ブロック(PCB)とスレッド制御ブロック(TCB)の両方が、CPUに委任された時間を持つためにカーネルで使用されます。 PCBには1つまたは複数のTCBがリンクされています。 TCBは実行コンテキスト(スタックポインタなど)、PCBを環境コンテキスト(メモリセグメントやパーミッションなど)で記述します。
この回答は、OSのバージョンによって大きく異なります。質問を編集し、より具体的になるLinuxの答えを尋ねるための注意が必要ですか? – Gray
私は上記の変更を行いました。ありがとう! –
実際の定義を見てみませんか?それはすべてオープンソースであり、多くの人々がLinuxカーネルをハックしているので、やりとりするのはかなり簡単です。 – Novelocrat