Inside the timer interrupt handler, it can invoke the dispatcher to context switch to another process. In a preemptive scheduling policy, the OS can take the processor away from a process at an arbitrary time. Priority field in thread control block. Keep ready list sorted by priority. Manipulate priorities based on how long someone has been running.
Various algorithms exist.
CPU should be used as often as possible. Convoy effect, which is discussed below may result in low utilization. Number of processes that complete per unit time. I, as a user, do not care if one process or one hundred processes are done per hour - as long as my job is done fast. Time between submission and completion.