Expo De El Barbero Dormilon
DORMILÓN
M.A. TERESA MORA CABRAL
PROBLEMA DEL BARBERO DORMILON
En ciencias de la computación, el problema del
barbero durmiente es un problema de sincronización.
PROBLEMAEl problema consiste en una barbería en
la que trabaja un barbero que tiene un
único sillón de barbero y varias sillas para
esperar. Cuando no hay clientes, el
barbero se sienta en una silla y seduerme. 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 clientesesperando).
PROBLEMA
El problema consiste en realizar la
actividad del barbero sin que
ocurran condiciones de carrera.
SOLUCIÓN
La solución implica el uso de semáforos
y objetos de exclusión mutuapara
proteger la sección crítica.
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
enprogramació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 otrosprocesos.
EXCLUSIÓN MUTUA
Los algoritmos de exclusión mutua
(comúnmente abreviada como
mutex por mutual exclusion) se
usan en programación concurrente
para evitar el ingreso a sus
secciones críticas pormás de un
proceso a la vez. La sección crítica
es el fragmento de código donde
puede modificarse un recurso
compartido.
El próximo pseudo-código
garantiza la sincronización entre
el barbero y elcliente, pero puede
llevar a inanición del cliente.
wait() y signal() son funciones
provistas por el semáforo.
CÓDIGO
semaphore peluqueros=1;
int cantClientes=0;
int clientesAtendidos=0;
int...
Regístrate para leer el documento completo.