Problema del barbero durmiente

Cuando llega un nuevo cliente, éste o bien despierta al barbero o —si el barbero está afeitando a otro cliente— se sienta en una silla (o se va si todas las sillas están ocupadas por clientes esperando).El problema consiste en realizar la actividad del barbero sin que ocurran condiciones de carrera.Un semáforo es una variable protegida (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento) en un entorno de multiprocesamiento.Fueron inventados por Edsger Dijkstra y se usaron por primera vez en el sistema operativo THEOS.En electrónica y en programación concurrente, se conoce como condición de carrera al error que se produce en programas o circuitos lógicos que no se han construido adecuadamente para su ejecución simultánea con otros procesos.
El barbero le está cortando la barba al cliente