PROBLEMAS CLÁSICOS DE SINCRONIZACIÓN Y COMUNICACIÓN
Barbero Dormilón
La peluquería tiene :
• Un barbero
• Una silla de barbero
• n sillas para los clientes
PROBLEMAS CLÁSICOS DE SINCRONIZACIÓN Y COMUNICACIÓN
Barbero Dormilón
No hay clientes presentes El barbero se sienta en la silla de barbero y se duerme
Cuando llega un cliente, debe despertar al barbero
Si llegan más clientes mientras el barbero está atendiendo a un cliente, se sientan (si hay sillas vacías), o bien, salen de la peluquería (si todas las sillas está ocupadas)
Problema : Programar al barbero y a los clientes sin caer en condiciones de competencia
PROBLEMAS CLÁSICOS DE SINCRONIZACIÓN Y COMUNICACIÓN
Barbero Dormilón
Semáforo wait signal
max_capacidad El cliente espera hasta que haya sitio para entrar en la peluquería
El cliente que sale avisa a un cliente que está esperando para entrar
sillas El cliente espera una silla vacía
El cliente que abandona la silla avisa a un cliente que espera silla
silla_barbero El cliente espera hasta que la silla del barbero esté vacía
El barbero avisa cuando su silla queda vacía
cliente_listo El barbero espera hasta que el cliente esté en la silla
El cliente avisa al barbero que ya está en la silla
PROBLEMAS CLÁSICOS DE SINCRONIZACIÓN Y COMUNICACIÓN
Barbero Dormilón
Semáforo wait signal
terminado El cliente espera a que el corte de cabello esté completo
El barbero avisa cuando termina el corte de cabello a un cliente
dejar_silla_v El barbero espera hasta que el cliente se levante de la silla
El cliente avisa al barbero cuando se levanta de la silla
Semáforos• Introducidos por Dijkstra en los años 60
• Es un tipo especial de variable que sólo puede ser accedida por dos primitivas P y V
• P (semáforo)– Operación atómica que espera hasta que el semáforo sea positivo, en este
momento lo decrementa en 1
• V (semáforo)– Operación atómica que incrementa el semáforo en 1
• ¿Cómo quedaría el problema de la sección crítica con semáforos?P (exmut)
Sección crítica
V (exmut)
Características de los semáforos
• Son independientes de la máquina• Son simples• Pueden trabajar con varios procesos• Pueden permitir que varios procesos entren en la
sección crítica al mismo tiempo en caso de necesitarse esta posibilidad
• Doble uso de los semáforos:– Exclusión mutua– Sincronización