Barbero Dormilon

6

Click here to load reader

description

Problema Barbero Dormilon

Transcript of Barbero Dormilon

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