web-dev-qa-db-ja.com

Linux上のPCB

A PCB is a process control block、これはウィキペディアでの定義です

プロセス制御ブロック(PCB、タスク制御ブロック、[1]タスク構造、またはスイッチフレームとも呼ばれます)は、特定のプロセスを管理するために必要な情報を含むオペレーティングシステムカーネルのデータ構造です。 PCBは、「オペレーティングシステムでのプロセスの明示です。

そしてその義務は:

Process identification data
Processor state data
Process control data

それで、見つけられるプロセスのPCBはどこですか?

10

Linuxカーネルでは、各プロセスは二重にリンクされたリストの_task_struct_で表され、その先頭は_​​init_task_(pid 0ではなくpid 1)です。これは一般的にプロセステーブルとして知られています。

ユーザーモードでは、プロセステーブルは_/proc_の下で通常のユーザーに表示されます。あなたの質問の見出しを取る:

  • プロセス識別データは、プロセスID(パス_/proc/<process-id>/..._にあります)、コマンドライン(cmd)、および 'identificationの定義に応じてその他の属性です'。

  • プロセス状態データには、スケジュールデータ(schedstatおよびschedstat)、プロセスが現在待機しているデータ(wchan )、その環境(environ)など.

  • プロセス制御データは、その資格情報(_uid_map_)およびリソース制限(limits)と言えるでしょう。

したがって、すべては用語の定義方法に依存します...しかし、一般的に、プロセスに関するすべてのデータは_/proc_にあります。

15
Flup