Con multitasking[1] (in italiano multiprocessualità), in informatica, si indica la capacità di un software di eseguire più programmi contemporaneamente: se ad esempio viene chiesto al sistema di eseguire contemporaneamente due processi e , la CPU eseguirà per qualche istante di tempo il processo , poi per qualche istante successivo il processo , poi tornerà a eseguire il processo e così via; il passaggio dal processo al processo e viceversa viene definito commutazione di contesto (context switch)[2].
Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente software del sistema operativo, lo scheduler, il quale invierà le proprie decisioni date principalmente dal nice a un altro modulo del sistema operativo, il dispatcher che eseguirà effettivamente il cambio di contesto: a seconda di quale strategia di servizio (algoritmo di scheduling) venga seguita, lo scheduler controlla la ripartizione del tempo di CPU tra tutti i processi attivi. Esistono due principali tecniche di controllo di termine e pausa del multitasking: il vecchio senza prelazione (cooperative) e il nuovo con prelazione (preemptive), ma oggigiorno la vera potenza del multitasking risiede solo nell'algoritmo di scheduling usato[3].