El barbero durmiente
-
Upload
vladimir-mendoza -
Category
Documents
-
view
699 -
download
2
Transcript of El barbero durmiente
![Page 1: El barbero durmiente](https://reader030.fdocuments.es/reader030/viewer/2022020804/5571fc54497959916997023a/html5/thumbnails/1.jpg)
5/9/2018 El barbero durmiente - slidepdf.com
http://slidepdf.com/reader/full/el-barbero-durmiente 1/3
El barbero durmiente
Una barbería consiste de una sala de espera con s asientos y un salón con una silla de barbería. Hay c
clientes y un barbero. Los Clientes se alternan entre crecimiento del cabello y obtener un corte de
cabello. El barbero duerme y se corta el cabello. Si no hay clientes para ser atendidos, el barbero
duerme. Si un cliente quiere un corte de cabello y todas la sillas están ocupadas, entonces el cliente deja
la barbería y se pierde el corte. Si hay sillas disponibles pero el barbero está ocupado, entonces el cliente
espera en una de las sillas disponibles hasta que el barbero este libre. Si el barbero está dormido el
cliente lo despierta.
Tareas de programación
Escribir un programa en java que resuelva el problema usando semáforos, sincronizando el barbero y los
cliente de acuerdo a las reglas dadas. El barbero y cada uno de los clientes deberán correr como hilos
concurrentes y asíncronos que se ciclan por siempre. La longitud del tiempo que un cliente toma en que
le crezca el cabello y el tiempo de un corte de cabello debe ser números aleatorios en milisegundos.
El programa principal que inicia el barbero y los hilos cliente debe de correr con los siguiente
parámetros que pueden ser configurables:
- # de asientos : 4 por default
- # de clientes : 9 por default
- tiempo crecimiento del cabello : milisegundos - aleatorio multiplicado por 3000 ms por default
- tiempo corte de cabello milisegundos - aleatorio multiplicado por 1000 ms por default
Requerimientos funcionales
La salida del programa debe contener los siguientes detalles.
Para el cliente, cada cliente debe de:
- indicar que numero de cliente es y cuando le crece el cabello
- indicar que numero de cliente es y cuando necesita corte de cabello- indicar que numero de cliente es y cuando está esperando en la sala o cuando se retira porque los
asientos están llenos
- indicar que numero de cliente es y cuando está recibiendo su corte de cabello
Para el barbero, debe de:
- indicar cuando esta libre y esperando por cliente (durmiendo)
- cuando sienta a un cliente en su silla
- cuando está cortando el cabello
- termino el corte del cliente
Entregables:
- El proyecto se entregara el jueves 9 de Diciembre a las 11:59am a mas tardar
- Se deben de mandar los siguientes archivos :
1. Código fuente : *.java
2.Archivos clase : *.class
3. Un archivo makefile con las intrucciones de compilación
4. Un archivo readme que debe contener la siguiente informacion
- Nombres y matricula del equipo
-Sistema operativo
![Page 2: El barbero durmiente](https://reader030.fdocuments.es/reader030/viewer/2022020804/5571fc54497959916997023a/html5/thumbnails/2.jpg)
5/9/2018 El barbero durmiente - slidepdf.com
http://slidepdf.com/reader/full/el-barbero-durmiente 2/3
- Versión Compilador de Java
- Instrucciones de compilación
- Instrucciones de ejecución
- Problemas o errores conocidos
![Page 3: El barbero durmiente](https://reader030.fdocuments.es/reader030/viewer/2022020804/5571fc54497959916997023a/html5/thumbnails/3.jpg)
5/9/2018 El barbero durmiente - slidepdf.com
http://slidepdf.com/reader/full/el-barbero-durmiente 3/3