Barbiere dormiglione


SOLUZIONE con variabili condizione



Scaricare 87.96 Kb.
Pagina6/8
22.12.2019
Dimensione del file87.96 Kb.
1   2   3   4   5   6   7   8
SOLUZIONE con variabili condizione

Barbiere

{

Mux.acquire();

BarbiereAttivo= false; ClientiInAttesa= 0;

//queste operazioni inizializzano il negozio e sono eseguite prima della generazione dei processi//

// “cliente”; Il barbiere si è sospeso rilasciando la mutua esclusione, che riacquisirà alla riattivazione //

while(true) {

while ClientiInAttesa== 0 AttesaBarbiere.wait(Mux);

AttesaTurno.signal(Mux);

//Il barbiere si è sospeso rilasciando la mutua esclusione, che riacquisirà alla riattivazione //

Mux.release();

// un cliente e’ pronto per il taglio dei capelli: quello riattivato dal barbiere o quello che ha//

// risvegliato il barbiere //

;

Mux.acquire();

BarbiereAttivo= false;

TaglioCapelli.signal(Mux);

// ripete il ciclo, attivando un cliente in attesa o addormentandosi //

}

}
Cliente



{

//Frammento di codice//

< entra nel negozio >



Condividi con i tuoi amici:
1   2   3   4   5   6   7   8


©astratto.info 2019
invia messaggio

    Pagina principale