Swappa : Uni / Sistemi Operativi - Appunti caotici
Creative Commons License

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 3 Semafori

Pag 1

Sommario

...

Pag 2

Obiettivo

Obiettivo dei semafori è innalzare il livello di astrazione portando la gestione della sincronizzazione da operazioni macchina (scritte nell'applicazione) a funzioni del sistema operativo. Ciò solleva dal doversi fidare del buonsenso del programmatore, riducendo di conseguenza la possibilità di riscontrare errori.

Le funzioni di sincronizzazione del sistema operativo sono offerte a tutte i processi e possono sempre essere eseguite, dal momento che l'esecuzione supervisor è a interruzioni disabilitate.

Semaforo binario

Il semaforo binario S è una struttura dati (in particolare, una variabile binaria) che rappresenta lo stato di uso della risorsa condivisa:

Notare come il significato dei valori sia il contrario di quelli di lock, perché se lì ragionavo come "se è in uso, non farci le tue operazioni", qui ragiono invece come "se è libero, lavora!". Comunque, stiamo perdendo tempo: io programmatore non potrò mai confondermi, dato che userò direttamente le funzioni di sistema. Gli 0 e gli 1 saranno problemi del sistema operativo.

Il semaforo S è manipolato dalle funzioni:

Le due funzioni sono atomiche poiché sono procedure di sistema, e sono da usare all'entrata e all'uscita dalla sezione critica.

Pag 3

Uso del semaforo binario

Nello schema, la funzione release riporta il semaforo al valore 1 e fa partire l'eventuale primo processo in attesa.

L'ordine con cui viene eseguita una coda di processi può essere regolata da una qualsiasi politica di ordinamento, in tutto simile a quelle viste per la schedulazione.

Implementazione del semaforo binario

...

Pag 4

Semaforo generalizzato

...

Uso del semaforo generalizzato

...


Torna alla pagina di Sistemi Operativi

(Printable View of http://www.swappa.it/wiki/Uni/SO-Mod3-5-Lez3)