A system and method for computer process dispatching in a multiprogramming/multiprocessing environment is disclosed. Each process in the multiprogramming/multiprocessing computer system may be in one of four states at any given time as follows:
1. Running -- the process is in control of the computer system and is directing the operation of the central processing unit (CPU);
2. ready -- the process is ready to run as soon as it is given control of the CPU;
3. waiting -- the process is waiting for an external event to occur so it can either resume running or enter the ready state;
4. Suspended -- the process has been temporarily stopped (from a source external to the process).
The dispatcher is a firmware/hardware structure that controls the first three states of the process--i.e. running, ready and waiting states.