如果某个程序的Pid是p,那么子进程(及其子进程)是否会有pid严格大于P?
当重复使用pid时,选择哪种pid,例如是最低的pid?
答案 0 :(得分:4)
来自http://en.wikipedia.org/wiki/Process_identifier
进程ID通常按顺序分配,从...开始 0并上升到最大值,因系统而异。 达到此限制后,分配将在300再次重新启动 增加。在Mac OS X和HP-UX中,分配重新启动为100.但是, 对于此次和后续传递,任何PID仍分配给进程 被跳过了。有些人认为这是一种潜在的安全措施 漏洞,因为它允许有关系统的信息 提取,或消息在进程之间秘密传递。如 这样,特别关注安全性的实现 可以选择不同的PID分配方法。[1]在某些系统上, 与MPE / iX一样,使用最低可用PID,有时需要努力 最小化内存中进程信息内核页面的数量。
原始答案:https://superuser.com/questions/135007/how-are-pids-generated
答案 1 :(得分:2)
每个新流程都提供流程ID,每个流程都有唯一的流程ID。 该id是非整数值,一旦进程终止,进程ID就会被重用 这意味着终止进程id再次用于另一个进程 内核创建的最大进程ID,最大pid为32768 存储在/ proc / sys / kernel / pid_max中的最大pid该文件包含最大pid。 一旦超过pid的限制,它将开始为进程分配的未使用的进程ID。 内核为使用fork()系统调用创建的进程ID。