Problema del Barbero Dormilón: Soluciones con Monitores en Concurrencia
Problema del Barbero Dormilón con Monitores
A continuación se presentan tres variantes de solución al clásico problema del barbero dormilón, implementadas mediante monitores con variables de condición. Cada variante corresponde a una configuración distinta de la barbería.
Variante 1: k barberos, sin prioridad, con sillón y sala de espera
Parámetros: k barberos, sin prioridad, con sillón y sala de espera.
Procedimiento del barbero
void barbero(int barbero) {
barberia.esperar_cliente(barbero);
do {
afeitar();
barberia.avisar_sgte(barbero);
} while (1);
}
void cliente() {
barberia.solicitar_barbero();
}Monitor de la barbería
condition barberos, clientes, afeitando[k];
int mi_barbero = -1;
entry void solicitar_...