Although the computer seems to be running many processes simultaneously, it actually only cleverly divides its time between all the processes. The user however is always told that there are many processes running simultaneously and it intuitively seems this way when using the system.
To see which processes are currently running on a UNIX system we can use the ps command. It works slightly different on all systems, but mostly using the command without any flags will list your own processes:
$ps PID TTY STAT TIME COMMAND 107 pp1 S N 0:00 bash 260 pp1 R N 0:00 ps $
The listing includes the PID or Process Identification, the output device it is associated with, the status, the real processor time used and finally the program name. The status in this case includes the flags S for stopped while ps is R for running and N means a process has a priority which is nice to other processes.
If we want to see all users' normal processes we can use the 'a' flag for ps. As all processes are then displayed there is no way of telling whose' processes they are. We can use the 'u' flag to give us more information:
$ps au USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND asti 69 0.0 0.0 1180 0 v06 SWN 20:32 0:00 (bash) jasonw 68 0.0 4.2 1200 288 v05 S N 20:32 0:00 -bash markst 107 0.0 5.9 1212 400 pp1 S N 20:32 0:00 bash markst 108 0.0 5.6 1208 380 pp2 S N 20:32 0:00 bash markst 156 0.0 23.3 3820 1568 pp1 S N 20:44 0:01 emacs part3.tex markst 312 0.0 3.2 880 216 pp2 R N 21:14 0:00 ps au root 67 0.0 1.1 860 80 s00 S N 20:32 0:00 gpm -t ms $