【发布时间】:2011-03-27 16:18:36
【问题描述】:
Linux 如何确定它将用于进程的下一个 PID?这个问题的目的是为了更好地理解 Linux 内核。不要害怕发布内核源代码。如果 PID 是按顺序分配的,Linux 如何填补空白?当它到达终点时会发生什么?
例如,如果我从 Apache 运行一个执行 <?php print(getmypid());?> 的 PHP 脚本,那么在点击刷新时,相同的 PID 将被打印几分钟。这段时间是 apache 接收到多少请求的函数。即使只有一个客户端,PID 最终也会改变。
当PID改变时,它会是一个接近的数字,但是如何接近呢?这个数字似乎并不完全是连续的。如果我执行ps aux | grep apache,我会得到相当多的进程:
Linux 如何选择下一个数字?之前的几个 PID 以及最近打印的 PID 仍在运行。 apache 是如何选择重用这些 PID 的?
【问题讨论】:
标签: linux apache linux-kernel kernel