Barbiere dormiglione


Schema di soluzione con variabili condizione



Scaricare 87.96 Kb.
Pagina5/8
22.12.2019
Dimensione del file87.96 Kb.
1   2   3   4   5   6   7   8
Schema di soluzione con variabili condizione

Barbiere

{

…..........................................;



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) {

if ClientiInAttesa> 0 ….........................................

else …............................................................;

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

…............................................;

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

…............................................;

BarbiereAttivo= false;

…..............................................;

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

}

}
Cliente



{

//Frammento di codice//

< entra nel negozio >

….............................................;

ClientiInAttesa ++;

while (BarbiereAttivo) …..............................................;

ClientiInAttesa --; BarbiereAttivo= true;

…......................................................;

// ha effetto solo se e il barbiere è in attesa e lo risveglia //

…..................................................;



// un cliente e’ pronto ad occupare la poltrona: si tratta di quello appena entrato in negozio, o di quello// //riattivato dal barbiere //

…......................................................;



while (BarbiereAttivo) …........................................................;

// attende il taglio dei capelli rilasciando la mutua esclusione, che riacquista dopo la riattivazione //

…....................................................;



// Fine del frammento di codice //

}



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


©astratto.info 2019
invia messaggio

    Pagina principale