Are process IDs assigned sequentially in Linux?

泪湿孤枕 提交于 2019-12-07 10:34:48

问题


If a program has a process ID of P, will the child processes (and their children) have process IDs which are strictly greater then P?

When process IDs are reused, which process IDs are chosen e.g., is the lowest process ID available?


回答1:


From http://en.wikipedia.org/wiki/Process_identifier

Process IDs are usually allocated on a sequential basis, beginning at 0 and rising to a maximum value which varies from system to system. Once this limit is reached, allocation restarts at 300 and again increases. In Mac OS X and HP-UX, allocation restarts at 100. However, for this and subsequent passes any PIDs still assigned to processes are skipped. Some consider this to be a potential security vulnerability in that it allows information about the system to be extracted, or messages to be covertly passed between processes. As such, implementations that are particularly concerned about security may choose a different method of PID assignment.[1] On some systems, like MPE/iX, the lowest available PID is used, sometimes in an effort to minimize the number of process information kernel pages in memory.

Original answer: https://superuser.com/questions/135007/how-are-pids-generated




回答2:


Every new process provide the process id ,and every process has unique process id. That id is non-integer value ,Once the process terminate the process ids are reused That mean the terminate process id again used for another process The maximum process id created by kernel that maximum pid is 32768 That maximum pid stored in /proc/sys/kernel/pid_max that file contain the maximum pid . Once exceed the limit of pid again it will start which process id is unused that is assigned for the process. The process id created by kernel for using fork() system call.



来源:https://stackoverflow.com/questions/20540344/are-process-ids-assigned-sequentially-in-linux

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!