La pianificazione del sistema operativo è il processo di controllo e priorità dei messaggi inviati a un processore. Un programma del sistema operativo interno, chiamato scheduler, esegue questa attività. L’obiettivo è mantenere una quantità di lavoro costante per il processore, eliminando alti e bassi nel carico di lavoro e assicurandosi che ogni processo venga completato entro un lasso di tempo ragionevole. Sebbene la pianificazione sia importante per tutti i sistemi, è particolarmente importante in un sistema in tempo reale.
Poiché quasi ogni operazione su un computer richiede almeno una piccola quantità di tempo del processore, il processore può essere una delle principali fonti di rallentamenti e colli di bottiglia. Al fine di alleviare lo stress sul processore e assicurarsi che le attività vengano completate in modo tempestivo, la maggior parte dei sistemi operativi utilizza una qualche forma di pianificazione delle attività. Il processo di pianificazione del sistema operativo varia in base al sistema, ma tendono a rientrare in categorie familiari.
La pianificazione è in genere suddivisa in tre parti: pianificazione a lungo, medio e breve termine. Non tutti i sistemi operativi utilizzano completamente ogni tipo – a medio termine e a lungo termine sono spesso combinati – ma utilizzeranno una combinazione di essi. Ogni tipo di pianificazione offre al sistema un vantaggio leggermente diverso.
La programmazione a lungo termine ruota attorno all’ammissione dei programmi al processo di programmazione. Quando viene avviato un nuovo programma, lo scheduler a lungo termine determina se c’è spazio sufficiente per il nuovo concorrente. In caso contrario, lo scheduler ritarda l’attivazione del programma fino a quando non c’è spazio sufficiente.
Lo scheduler di medio termine decide quali processi sono rimasti inattivi e quali sono attivi. Lascia i processi attivi da soli e scrive quelli inattivi sul disco rigido. Questo libera memoria per altri programmi che entrano attraverso lo scheduler a lungo termine. Quando gli schedulatori a medio e lungo termine sono combinati, invece di ritardare l’attivazione di un nuovo processo, lo schedulatore semplicemente lo scambia in memoria.
Lo scheduler a breve termine è la parte che lavora direttamente con il processore. Questa parte attiva i processi, imposta le priorità e supervisiona il carico di lavoro del processore. Lo scheduler a breve termine cerca costantemente di anticipare le esigenze del computer per mantenere il processore senza intoppi.
Nella maggior parte dei casi, la pianificazione del sistema operativo è un modo per far funzionare un computer in modo più efficiente, ma in un sistema operativo in tempo reale è fondamentale per il suo scopo. Un sistema in tempo reale deve eseguire processi entro un tempo prestabilito e, se questi processi sono in ritardo, il loro scopo viene perso. Questi importanti programmi richiedono una pianificazione del sistema molto specifica per assicurarsi che le informazioni e le risposte siano dove devono essere, quando devono essere.