Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Ingegneria
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonino Mazzeo » 12.Sincronizzazione nel modello ad ambiente globale


Sommario

  • Problema della mutua esclusione (competizione)
  • Soluzioni hardware al problema della mutua esclusione
  • Problema della comunicazione (cooperazione)
  • Semafori

Competizione tra processi

  • Più processi “competono”nell’uso di una risorsa
  • Un gestore di una risorsa ha il compito di fornire un accesso sicuro e garantito alla risorsa che gestisce
  • Tre problemi chiave nel controllo di accesso ad una risorsa
    • Mutua Esclusione
      • Due o più processi che vogliono utilizzare una risorsa ad uso esclusivo, detta Risorsa Critica
    • Deadlock
      • Indica la presenza di una condizione di attesa indefinita
    • Starvation
      • Indica quelle condizioni in cui ad un processo a bassa priorità non viene mai assegnata una risorsa

Mutua Esclusione

  • Requisiti
    • Un solo processo alla volta può accedere alla sezione critica
    • Un processo che si arresta nella sua sezione non critica (critica) non deve interferire con altri processi
    • Evitare deadlock e starvation (senza attesa indefinita)
    • L’accesso ad una sezione critica di un processo non deve essere ritardata se non ci sono altri processi nella sezione stessa
    • Nessuna assunzione deve essere fatta sulla velocità di esecuzione dei processi o sul numero dei processi (no “Race Condition”)
    • Un processo può rimanere in una sezione critica solo per un tempo finito

Supporto Hardware alla mutua esclusione

  • Disabilitazione degli Interrupt
    • L’approccio viola i principi di protezione: i processi utente dovrebbero poter disabilitare gli interrupt
  • Istruzione Test and Set Lock
      • TSL RX,LOCK
    • Legge il contenuto della parola di memoria LOCK e lo scrive nel registro RX, è eseguita in un solo ciclo
    • Problemi: attesa attiva e priority inversion
    • Vengono risolti “forzando” il processo che trova la variabile LOCK al valore 1 a sospendersi in attesa di un evento.
    • Vengono usate due system call per sospendere è risvegliare un processo: suspend(P1) e Wake-up(P2).

Problema della comunicazione

  • Un processo “produttore” genera ciclicamente un messaggio e lo deposita in un buffer
  • Un processo “consumatore” preleva dal buffer il messaggio e lo utilizza
  • Vincoli:
    • Il produttore non può inserire un nuovo messaggio prima che il consumatore abbia prelevato il precedente;
    • Il consumatore non può prelevare dal buffer un nuovo messaggio prima che il produttore l’abbia depositato
  • Pur esistendo un problema di mutua esclusione nell’utilizzo del buffer comune, la soluzione impone un ordinamento nelle operazioni dei due processi
  • E’ necessario che produttori e consumatori si scambino segnali

Semafori

  • Variabili Speciali utilizzate per la cooperazione e la competizione tra processi
  • Un tipo di dato astratto s che incapsula:
    • una variabile di tipo intero (s.value);
    • una coda (s.queue), per tenere traccia dei processi che si sono sospesi nell’attesa di una signal
  • sono definite le seguenti operazioni:
    • Inizializzazione della variabile ad un valore non negativo
    • Operazione di wait, che ha l’effetto di decrementare il valore del semaforo
    • L’operazione di signal che ha l’effetto di incrementare il valore del semaforo
Schema esplicativo (semaforo)

Schema esplicativo (semaforo)


Semafori

  • Semafori Binari
    • il suo valore intero può essere soltanto 0 o 1; può essere più semplice da realizzare
  • Il problema della mutua esclusione con l’utilizzo dei semafori
    • Si utilizza un semaforo s (chiamato mutex), inizializzato a 1
Codice di un semaforo mutex

Codice di un semaforo mutex


Prossima lezione

Sincronizzazione nel modello ad ambiente locale

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap.3; par. 3.2, 3.3, 3.4)

A. Tanenbaum, “Operating Systems Desing and Implementation”, terza ed (Cap 2, par. 2.2.3)

Sincronizzazione nel modello ad ambiente globale

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion