1

私の知る限り(この件に関する私の無知を許してください)、プロセスfork()が次の場合:

  • 各子には独自の PID が割り当てられます
  • 子が終了した後でも、親は子の PID を照会できます。waitpid()

それは次のことを意味しますか?

  • この PID は引き続き親から「クエリ可能」であるため、システムによってロックされ、再利用できないのでしょうか?
  • または、終了したことを認識して終了ステータスコードを取得できるように、番号が親に関連付けられているだけですが、並行して PID がシステムで再び利用可能になりますか? その場合、この PID をこの親の子プロセスに再利用できなかったということですか? これは、親がその存続期間中にまたがることができるプロセスの数に上限があることを意味します。これは私にとって驚くべきことです。

それを明確にしていただければ幸いです。

4

1 に答える 1

3

ほとんどの UNIX では、親が別の方法で特に要求しない限り、子を待つまで、子プロセスはゾンビ プロセスとしてシステム プロセス テーブルに存在し続けます。したがって、PID を再利用することはできません。

于 2013-07-05T11:57:08.790 に答える