A process in Unix terminology is the execution of a program.
Unix is a multitasking system, which means that many processes can be running at any given moment, i.e. there can be many active processes.
When you log in, the system creates a new process to run your shell program.
When you run a program (a command) from the shell, the shell creates a new process to run the program. Hence, you now have two processes running: the shell process and the command's process.
The process created by the shell to run your command is a child of the shell process.
Naturally, the shell process is called the parent of the command process.
Each process is uniquely identified by an integer serial number called the process ID, or PID.
Unix systems also keep track of each process's status and resource usage, such as memory, CPU time, etc. Information about your currently running processes can be easily viewed using the ps (process status) command:
shell-prompt: ps PID TTY TIME CMD 7147 ttys000 0:00.14 -tcsh 7438 ttys000 0:01.13 ape notes.dbk unix.dbk 7736 ttys001 0:00.13 -tcsh
Run the ps command. What processes do you have running?
shell-prompt: ps shell-prompt: ps -ax
Another useful tool is the top command, which monitors all processes in a system and displays system statistics and the top (most active) processes every few seconds. Note that since top is a full-terminal command, it will not function properly unless the TERM environment variable is set correctly.
Run the top command. What processes are using the most CPU time? Type 'q' to quit top.