【发布时间】:2014-03-05 08:19:39
【问题描述】:
fork() 生成的子进程的进程 ID 是否可以小于其父进程(不超过最大限制)?
PID 通常是下一个可用值,但无论如何它可能小于父级的 PID?
【问题讨论】:
-
假设系统上可能的最大 PID 是 32767(参数对于任意最大值都是相同的)。假设进程 32767 调用
fork()。关于新创建的子进程的PID,我们能说什么? -
计数器将重置,然后从 0 开始分配新的 PID,但为什么是下一个数字,为什么不是最不可用的 id(就像我们在分配文件描述符的情况下一样)
-
我不知道关于如何分配 PID 有任何标准。只要当前正在运行的进程的所有 PID 都是唯一的,分配尚未分配的下一个序列号或尚未分配的最低编号都是完全合法的。让死进程的 PID 尽可能长时间地“闲置”可能有一些优势。我的观点是如果进程32767调用
fork(),子进程的PID必须小于父进程的PID。 -
"我知道新的 PID 总是下一个可用值" -- 你怎么知道的?