Multiprogrammazione
La multiprogrammazione è un tipo di programmazione che garantisce l'esecuzione di più processi su un 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 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.