Dispatch Mechanism  OS keeps system-wide list of processes. Each process in one of three modes; Running: On the CPU (only one in uniprocessor system), Ready: Waiting for the CPU, Blocked: Waiting for I/O or synchronization with another thread. Dispatch loop:
while (1) {
run a process for a while
stop process and save its state     context-switch
load state of another process       context-switch
}