6
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

Barbero Dormilon

Embed Size (px)

Citation preview

Page 1: Barbero Dormilon

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

Page 2: Barbero Dormilon

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

Page 3: Barbero Dormilon

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

Page 4: Barbero Dormilon

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

Page 5: Barbero Dormilon

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)

Page 6: Barbero Dormilon

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