UNIXでは、プロセス番号はどのように割り当てられますか?

UNIXでは、プロセス番号はどのように割り当てられますか?

プロセステーブル()でPID番号を見ると、ps -aPIDは連続した番号ではなく、時には番号の間に大きな「間隔」があるため、どのパターンも見つかりません。短時間実行され、一部のPIDを保持するいくつかのプロセスがある可能性があるためですか?プロセス番号がリセットされる特定の範囲はありますか?

私はMac OS Xを使用していますが、答えは通常UNIXに適用する必要があるようです。

ベストアンサー1

両方です。

多くのプロセスの寿命が短い。 PIDを取得、実行、完了すると、PIDはプロセステーブルから消えます。

プロセスは時々数分の1秒間だけ存在します!

通常、プログラムが起動すると、システム検証と環境初期化の一部として複数のコマンドが実行されます。

最大PID番号はシステムによって異なり、時には設定可能です。基本的にプロセス数が多い場合は、プロセス数を増やしたいと思うかもしれませんが、新しいオペレーティングシステムでは通常、ほとんどのワークロードに最大数で十分だと思います。

PIDはプロセステーブルのエントリであり、プロセステーブルが多いほどメモリを消費します。

この関連質問を確認してください。https://serverfault.com/questions/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

また、これに関連する「ユーザーあたりの最大プロセス数」は、悪意のあるユーザーが意図的に多くのプロセスを作成してプロセステーブル全体を占有するのを防ぐための措置であることに注意してください。

おすすめ記事