Scheduling dei processi in un sistema operativo

Cos'è e a cosa serve la schedulazione dei processi? Quali tipi di scheduling possono esserci in in sistema operativo? Cosa significa scheduling con prerilascio (pre-emptive) e senza prerilascio (non pre-emptive)? Cosa vuol dire schedulazione a breve, medio e lungo termine? Quali sono i possibili algoritmi utilizzabili per la schedulazione e cosa si intende per "politica" di scheduling?