Long-term – Job queue (like waiting in line)
Medium-term – Swapping (usually from disk to memory)
Short-term – in memory switch from ready to running (what we are most interested in)
Preemptive scheduling – we can tell a process to return to the ready state after running it (uses the clock interrupt)
Nonpreemptive scheduling – once we tell a process to run, we cannot preempt it (does not use the clock interrupt [cooperative scheduling])