プロセス テーブルはカーネル データ構造です プロセスの状態を記述します (プロセス U エリアと共に)。これには、カーネルが常に使用できる必要があるフィールドが含まれています。
次のフィールドが含まれます:
- 状態フィールド (プロセスの状態を識別する)
- カーネルがプロセスとメモリ内のその u 領域を特定できるようにするフィールド
- さまざまなプロセス権限を決定するための UID
- プロセス間の関係を指定する PID (フォークなど)
- イベント記述子 (プロセスがスリープ状態の場合)
- プロセスが「カーネル実行中」と「ユーザー実行中」の状態に移行する順序を決定するスケジューリング パラメータ
- プロセスに送信されたがまだ処理されていないシグナルのシグナル フィールド
- カーネル モードとユーザー モードでプロセスの実行時間を与えるタイマー
- プロセス サイズを指定するフィールド (カーネルがプロセスに割り当てるスペースを認識できるようにするため)。
つまり、プロセス テーブルはプロセスに関する情報をカーネルに提供します。
Linux (他のほぼすべてのオペレーティング システムなど) のプロセス テーブルは、コンピューターの RAM 内の単なるデータ構造です。 OS によって現在処理されているプロセスに関する情報を保持します。
この情報には、各プロセスに関する一般的な情報が含まれています
- プロセス ID
- プロセス オーナー
- プロセスの優先度
- 各プロセスの環境変数
- 親プロセス
- プロセスの実行可能なマシン コードへのポインタ
プロセス テーブルの非常に重要な情報は、各プロセスの現在の状態です。この情報は、いわゆるマルチプロセッシング、つまり 1 つのプロセッシング ユニット (CPU) だけで複数のプロセスを仮想的に実行する可能性を可能にするため、OS にとって不可欠です。
プロセスが現在 ACTIVE、SLEEPING、RUNNING などであるかどうかの情報は、プロセスの実行を処理するために OS によって使用されます。
さらに、OS のスケジューラが次に実行するプロセスを決定できるようにするために、プロセスが最後に実行されたのはいつかなどの統計情報があります。
つまり、プロセス テーブルは、開始されたすべてのプロセスを処理する OS の中心的な組織要素です。
このスレッドで簡単な紹介をご覧いただけます:
https://web.archive.org/web/20190817081256/http://www.linuxforums.org/forum/kernel/42062-use-process-table.html
また、ウィキペディアにもプロセスに関する優れた情報があります:
http://en.wikipedia.org/wiki/Process_management_(computing)#Process_description_and_control
http://en.wikipedia.org/wiki/Process_table
オペレーティング システムでは、各プロセスはプロセス制御ブロックによって表されます。 - タスク制御ブロックとも呼ばれます - 以下を含む
Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm
Memory management
Pointer to text segment info
Pointer to data segment info
Pointer to stack segment info
File management
Root directory Working directory File descriptors User ID
Group ID
詳細については、https://www.technologyuk.net/computing/computer-software/operating-systems/