Download - Problema del barbero durmiente
![Page 1: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/1.jpg)
Barbero Durmiente Juan Camilo Sacanamboy Gerardo Suárez
![Page 2: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/2.jpg)
Contenido
• Problema • Condiciones de carrera • Solución • Diagramas de flujo • Implementación en Java
![Page 3: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/3.jpg)
Problema
• Barbería con un solo barbero • Una silla de barbero • n sillas para los clientes (5 en nuestro caso)
![Page 4: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/4.jpg)
Condiciones de carrera
Por qué se presentan? • Diferentes procesos (clientes) quieren acceder a la silla
del barbero. • Diferentes clientes quieren entrar a la barbería.
![Page 5: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/5.jpg)
Solución
Se emplean dos variables semáforos: • Un mutex que se encarga de no dejar que un cliente tome
la silla del barbero, si esta se encuentra ocupada. • La otra variable cuenta el número de clientes que esperan
al barbero. Si hay más de 5 no deja entrar otro cliente a la barbería, hasta que se desocupe una silla.
![Page 6: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/6.jpg)
Diagramas de Flujo
![Page 7: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/7.jpg)
BARB
ERO
DORMIDO
Silla Barberia Ocuapada?
Sillas Espera Vacias?
NADA
DORMIR
DESOCUPAR SILLA ESPERA
DESOCUPAR SILLA BARBERIA
DORMIR
SI
NO
SI
NO
NO
SI
![Page 8: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/8.jpg)
Cliente Nuevo?
Barbero Dormido?
Sillas Espera Disponibles?
ESPERAR
DESPERTAR
IRSE
OCUPAR SILLA ESPERA
NO
NO
NO
SI
SI
SI
OCUPAR SILLA BARBERÍA
BARB
ERÍA
![Page 9: Problema del barbero durmiente](https://reader031.vdocuments.co/reader031/viewer/2022031601/557c9fd1d8b42a775b8b533d/html5/thumbnails/9.jpg)
Implementación en Java
El código fuente se puede encontrar en: https://github.com/csacanam/BarberoDurmiente