Sistemi Operativi

Code di scheduling

Ogni processo è inserito in una coda di processi, composta da tutti i processi del sistema. I processi presenti nella memoria centrale, che sono pronti e attendono di essere eseguiti si trovano in una lista detta coda dei processi pronti (ready queue). Questa coda generalmente si memorizza come una lista concatenata: un’ intestazione della coda pronti contiene i puntatori al primo e all’ ultimo PCB dell’ elenco, e ciascun PCB è esteso con un campo puntatore che indica il successivo processo contenuto nella coda dei processi pronti. Il sistema operativo ha anche altre code. L’ elenco dei processi che attendono la disponibilità di un particolare dispositivo di I/O si chiama coda del dispositivo. Ogni dispositivo ha la sua coda.

I processi, durante l’esecuzione, migrano da una coda all’altra, ed è lo scheduler sceglie quali processi passano da una coda all’altra. Una comune rappresentazione utile alla discussione dello scheduling dei processi è data dal seguente diagramma di accodamento:

Un nuovo processo si colloca nella coda dei processi pronti, dove attende finchè non è selezionato per essere eseguito. Una volta che il processo è assegnato alla CPU ed è nella fase di esecuzione si può verificare uno dei seguenti eventi:

Nei primi due casi, al completamento della richiesta di I/O o al termine del processo figlio, il processo passa dallo stato di attesa allo stato pronto ed nuovamente inserito nella coda dei processi pronti.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.