multiprogrammazione è uno dei tipi più fondamentale di elaborazione parallela, che può essere utilizzato in molti ambienti diversi. In sostanza, la multiprogrammazione rende possibile per i diversi programmi di essere attivi contemporaneamente, mentre ancora in esecuzione tramite un singolo processore. La funzionalità di multiprogrammazione in questo ambiente comporta un continuo processo di sequenza realizzare compiti connessi con la funzione di un programma, per poi passare ad eseguire un compito associato con il programma successivo.
Multiprogrammazione è molto diversa da quella multiprocessing, perché anche se ci possono essere diversi programmi attualmente attivo, il monoprocessore non è allo stesso tempo l'esecuzione di comandi per tutti i programmi. Invece, il processore indirizzi di ogni programma, esegue un singolo comando, poi passa al programma successivo in coda. Il programma precedente rimane attivo, ma entra in uno stato passivo fino al ritorno monoprocessore verso la parte anteriore della coda ed esegue un secondo comando. Dal punto di vista dell'utente finale, il processo di multiprogrammazione è senza soluzione di continuità. Per quanto riguarda la effettiva funzionalità, l'utente sembra essere con diverse applicazioni allo stesso tempo. Ciò è dovuto al fatto multiprogrammazione utilizza il monoprocessore a eseguire i comandi velocemente. Il risultato finale è che un utente poco se le comunicazioni in qualsiasi momento lag quando si minimizza una domanda al fine di svolgere un compito associato ad una diversa applicazione. Il meccanismo in multiprogrammazione è conosciuto come un interrupt. Ogni compito è concesso un determinato periodo di tempo per il trattamento prima che il sistema operativo passare al programma successivo e l'operazione successiva. In un certo senso, multiprogrammazione è di circa giocoleria compiti diversi in una sola volta, velocemente eseguendo un pezzo di iniziative necessarie, per poi passare a fare qualcosa con un compito diverso, prima di tornare al lavoro precedente.La memoria è importante per il corretto funzionamento di multiprogrammazione. Capacità dovrebbe essere grande abbastanza per garantire che se un programma all'interno della coda di rotazione incontra un problema, non impedisce ritardi o impatto il funzionamento di altre applicazioni aperte. Allo stesso tempo, un qualche tipo di protezione della memoria dovrebbe essere a posto. Se questo non è il caso, poi un problema con una applicazione in grado di creare un effetto a cascata che si spegne o almeno rallenta le altre applicazioni aperte.
