El problema del barbero dormilón: Una barbería está compuesta por una sala de espera con n sillas y una sala de barbería en donde se encuentra la silla del barbero. Si no hay clientes que atender, el barbero se pone a dormir. Si un cliente entra a la barbería y todas las sillas están ocupadas, entonces el cliente se retira. Si el barbero está ocupado, pero existen sillas disponibles, entonces el cliente se sienta a esperar en una de las sillas libres. Si el barbero está dormido, el cliente lo despierta. • • • Si no hay clientes el barbero se sienta en la silla de peluquero y se duerme. Cuando llega un cliente debe despertar al barbero. Si llegan más clientes mientras el barbero corta el cabello a un cliente, ellos se sientan (si hay sillas desocupadas). Un cliente que entra a la peluquería debe contar el número de clientes que esperan. Si es menor que el número de sillas, él se queda; en caso contrario se va. El problema del Barbero dormilón es un clásico de la Programación Concurrente. En él se propone la discusión sobre cómo gestionar el “transito” por una pequeña peluquería (recurso compartido), por parte de dos tipos de procesos: el peluquero y los clientes. El enunciado sugiere que durante la ejecución la interacción entre el peluquero y un cliente se puede producir muy a menudo y que, por tanto, deben establecerse los mecanismos de sincronización adecuados para evitar que los dos “colisionen” dentro la peluquería; es decir, asegurar uno sólo es el que se mueve en cada momento. Lo vemos en como el procesador controla los procesos utilizando N núcleos solo cuando se necesiten.