Question

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?

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top