{{U|pagina=Multitasking|argomento=informatica|data=ottobre 2008|commento=tratta essenzialmente lo stesso argomento, e "multitasking" appare più noto di "multiprogrammazione"}}
La '''multiprogrammazione''' è un tipo di [[programmazione]] che garantisce l'[[Esecuzione (informatica)|esecuzione]] di più [[Processo|processi]] su un [[Computer|sistema]] contemporaneamente.Durante l'esecuzione di un processo da parte della CPU, possono generarsi degli istanti in cui la CPU rimane inattiva(ES: il processo corrente richiede una operazione di I\O), la multiprogrammazione permette di sfruttare tale istante di inattivita per eseguire il successivo processo appartenente alla coda dei processi pronti per poi essere riassegnata al processo precedente.
Le motivazioni per cui si usa la multiprogrammazione sono che questa garantisce un aumento di prestazioni e allo stesso tempo un risparmio di risorse.
== Tipologia ==
Esistono principalmente due tipi di multiprogrammazione:
*Tipo [[batch]]: in cui non c'è [[interattività]] con l'[[utente]]. L'obiettivo di questo tipo di multiprogrammazione è la massimizzazione delle prestazioni.
*Tipo [[time-sharing]]: in cui si permette a più utenti di utilizzare contemporaneamente e interattivamente lo stesso [[Computer|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ù [[Processo (informatica)|processi]] in [[Memoria (informatica)|memoria]].