何时发布PID?

时间:2013-07-05 11:55:51

标签: unix process fork

据我所知(原谅我对这个问题的无知),当一个过程fork() s:

  • 为每个孩子分配了自己的PID
  • 孩子退出后,父母仍可以waitpid()
  • 查询孩子的PID

这是否意味着:

  • 因为这个PID仍然是来自父母的“可查询”,它仍然被锁定而不能被系统重复使用?
  • 或者是与父级关联的数字,以便它可以知道它已退出,并获取退出状态代码,但并行地,PID再次可供系统使用?在这种情况下,这是否意味着该PID无法重用于此父级的子进程?这意味着父母在其生命周期内可以跨越的流程数量有一个上限,这对我来说是令人惊讶的。

如果你能为我澄清一下,我将不胜感激!

1 个答案:

答案 0 :(得分:3)

在大多数UNIX上,除非父级特别请求,否则在子进程等待子进程之前,子进程仍然作为僵尸进程存在于系统进程表中。因此PID无法重复使用。