prueba semaforo

Download Prueba Semaforo

If you can't read please download the document

Upload: jamthebest

Post on 20-Oct-2015

14 views

Category:

Documents


2 download

TRANSCRIPT

semaforo mutex(1) semaforo listo(0) //Indica si el barbero esta cortando el pelo o no semaforo buscarSilla(1) //El cliente est buscando una silla semaforo clientes(0) //Indica el numero actual de clientes int sillasLibres = N //El numero de sillas puede variar de 0 a N void cortarPelo() void sentarse() void irse() Barbero(){ while(true){ wait(clientes) //Espera a que hayan clientes si no se duerme wait(mutex) sillasLibres ++ //Encontr un cliente y lo sienta a la silla para cortar pelo y queda una silla mas libre signal(mutex) cortarPelo() //Corta el pelo signal(listo) //Indica que ya est listo para co rtar pelo a otro cliente } } cliente(){ while(true){ wait(buscarSilla) e pueda entrar a la vez if(sillasLibres > 0){ //Mira sentarse() s librees sillasLibres -libres signal(clientes) e signal(buscarSilla) y puede pasar el siguiente a buscar silla wait(listo) est cortando el pelo o no. Sino lo despierta }else{ irse() e fu signal(buscarSilla) e puede pasar a buscar sillas } } }

//Bloque para que solo un client si hay sillas libres //Se sienta si hay silla //Disminuye el numero de sillas //Indica que hay un nuevo client //Indica que ya encontr una silla //Verifica si el barbero //No encontro sillas y s //Indica al siguiente cliente qu