Linux-进程
参考文献
趣谈Linux操作系统
进程
在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(Child Process)
进程ID(tid)
Linux采用延迟重用的算法来进行PID的分配,往简单了来说,原则就是
位图记录进程 ID 的分配情况( 0 为可用,1 为已占用).
将上次分配的进程 ID 记录到 last_pid 中,分配进程 ID 时,从 last_pid+1 开始找起,从位图中寻找可用的 ID .
如果找到位图集合的最后一位仍不可用,则回滚到位图集合的起始位置,从头开始找.既然是位图记录进程 ID 的分配情况,那么位图的大小就必须要考虑周全.位图的大小直接决定了系统允许同时存在的进程的最大个数,这个最大个数在系统中称为 pid_max .回绕时并不是从 0 开始找起,而是从 300 开始找起.
1234# cat /proc/sys/kernel/pid_max40960# sysctl kernel.pid_maxkernel.pid_max = ...