GNU/Linux >> Linux の 問題 >  >> Linux

Linux プロセス テーブルとは何ですか?それは何で構成されていますか?

プロセス テーブルはカーネル データ構造です プロセスの状態を記述します (プロセス 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/


Linux
  1. Linux –ファイルパーミッションビットの後のドットはどういう意味ですか?

  2. Psの出力にはどういう意味がありますか?

  3. Linux – Unix / linuxファイルのディレクトリ構造情報をどのように検査しますか?

  1. 現在の Linux カーネル ソースは何ですか?

  2. Linuxでのセッションの定義は何ですか?

  3. Linux のパイプ記号 |行う?

  1. LinuxとUnix:違いは何ですか?

  2. /dev/urandom の文字「u」は何を意味しますか?

  3. Linux でサフィックス .d は何を意味しますか?