Appunti di sistemi operativi

Appunti per il corso universitario di sistemi operativi, riferito a sistemi Unix/Windows.
Si discute su problemi di sincronizzazione, memoria e scheduling dei processi.

ARGOMENTI

INTRODUZIONE

INPUT/OUTPUT

GESTIONE DEI PROCESSI

ALGORITMI DI SCHEDULING

SCHEDULING MULTI CPU

SISTEMI REAL TIME

SCHEDULING SU LINUX

SCHEDULING SU WINDOWS

OPERAZIONI SUI PROCESSI

COMUNICAZIONE TRA PROCESSI

THREAD

SINCRONIZZAZIONE TRA PROCESSI

GESTIONE MEMORIA

SCHEDULING PER PIU' UNITÀ DI ELABORAZIONE

in un sistema dotato di più CPU abbiamo la presenza di uno scheduler per ogni processore (ciascuno con più code)




il sistema non è molto flessibile, non c'è bilanciamento di carico della CPU a run-time: se ad un certo punto abbiamo una CPU che ha tutti processi brevi che terminano subito, e una che sta eseguendo processi lunghi, avremo una CPU libera e una sovraccarica

come posso rimediare?

Possiamo fare in maniera che gli scheduler di ciascuna CPU prendano i processi da una stessa coda



abbiamo però un problema: il puntatore T punta al PD (process descriptor) del primo dei processi della coda; durante l'esecuzione:

  • viene letto il valore di T

  • viene eseguito il processo

  • viene aggiornato il valore di T a quello di T.next (ossia punta al PD del processo successivo)



c'è quindi la possibilità che entrambi i processori vadano ad eseguire lo stesso processo, o che vadano a modificare in maniera errata il valore di T (abbiamo un problema di concorrenza)

possiamo rimediare rendendo in qualche maniera le operazioni atomiche oppure possiamo mettere una CPU master nella quale gira il sistema operativo, mentre le altre CPU sono adibite alla esecuzione dei processi; possiamo pensare che il sistema sia in grado di controllare il valore del PC delle altre CPU




ho un unico sistema con un unica struttura dati da cui schedulare

così risolviamo il bilanciamento del carico, ma il processore master potrebbe non farcela a gestire in modo efficiente tutte le interazioni da controllare delle altre CPU

Ritorna sopra | Home page | Xelon