La multiprogrammazione è un tipo di programmmazione che garantisce l'esecuzione di più processi su un sistema contemporaneamente. Le motivazioni per cui si usa la multiprogrammazione sono che questa garantisce un aumento di prestazioni e allo stesso tempo un risparmio di risorse.

Esistono principalmente due tipi di multiprogrammazione:

1. la multiprogrammazione di tipo batch in cui non c'è interattività con l'utente. L'obiettivo di questo tipo di multiprogrammazione è la massimizzazione delle prestazioni.

2. la multiprogrammazione di tipo time-sharing in cui si permette a più utenti di utilizzare contemporaneamente e interattivamente lo stesso sistema, massimizzando la praticità d'uso, a scapito delle prestazioni.

Per grado di multiprogrammazione si indica la capacità di un sistema di poter eseguire più processi in memoria.

Vedasi anche multitasking.