"Linux is a very dynamic system with constantly
changing computing needs. The representation of the computational
needs of Linux centers around the common abstraction of the
process. Processes can be short-lived (a command executed from the
command line) or long-lived (a network service). For this reason,
the general management of processes and their scheduling is very
"From user-space, processes are represented by process
identifiers (PIDs). From the user's perspective, a PID is a numeric
value that uniquely identifies the process. A PID doesn't change
during the life of a process, but PIDs can be reused after a
process dies, so it's not always ideal to cache them.
"In user-space, you can create processes in any of several ways.
You can execute a program (which results in the creation of a new
process) or, within a program, you can invoke a fork or exec system
call. The fork call results in the creation of a child process,
while an exec call replaces the current process context with the
new program. I discuss each of these methods to understand how they
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.