A process is an instance of a program in execution. It differs from a program or command in the sense that a single program can start several processes simultaneously. Each process uses several resources, as mentioned in the following list:
- An address space in memory
- Each process has some security properties, such as ownership, privileges, and so on
- Each process has a state
- Each process has local and global environment variables
- Each process has a scheduling context
- Each process has allocated resources, such as file descriptors, network ports, and so on
- A kernel keeps tracks of each process by assigning each process a unique process ID (PID) number
- A user's program accesses the information for each process through a directory called /proc/PID, which is maintained by a kernel