Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
1. Concurrencia:
Interbloqueo e Inanición
Capítulo 6
Interbloqueo
• Bloqueo permanente de un conjunto de
procesos que compiten por recursos del
sistema o por comunicación con los otros
• No existe una solución eficiente
• Implican a varios procesos cuyas necesidades
por recursos entran en conflicto
2. Recursos Reutilizables
• Usado por un procesa cada vez y que no se
agotan por el uso
• Los procesos obtienen los recursos que más
tarde liberarán para que otros lo reusen
• Los procesadores, canales de E/S, memoria
principal y secundaria, ficheros, bases de
datos y semáforos
• Un interbloqueo ocurre si cada proceso
mantiene un recurso y pide otro
Ejemplo de Interbloqueo Otro Ejemplo de Interbloqueo
• Hay espacio disponible para almacenar 200K
bytes, y ocurre la siguiente secuencia de eventos
• El interbloqueo ocurre si ambos procesos llegan
a su segunda petición
P1
. . .
Request 80K bytes;
. . .
Request 60K bytes;
P2
. . .
Request 70K bytes;
. . .
Request 80K bytes;
3. Recursos Consumibles
• Creados (produced) y destruidos
(consumed) por un proceso
• Interrupciones, señales, mensajes e
información en buffers de E/S
• El interbloqueo puede ocurrir si un
Receptor de un mensaje está bloqueado
• Una extraña combinación de eventos
puede dar lugar a interbloqueo
Ejemplo de Interbloqueo
• El interbloqueo ocurre si la recepción es
bloqueante
P1
. . .
Receive(P2);
. . .
Send(P2, M1);
P2
. . .
Receive(P1);
. . .
Send(P1, M2);
Condiciones para el Interbloqueo
• Exclusión mutua
– sólo un proceso puede usar un recurso cada vez
• Mantener-y-esperar
– Un proceso pide todos los recurso que necesita
en un momento
Condiciones para el Interbloqueo
• Sin expropiación (No preemption)
– Si a un proceso que mantiene ciertos
recursos se le deniega una petición, dicho
proceso debe liberar sus recursos originales
– Si un proceso pide un recurso que
actualmente mantiene otro proceso, el
sistema operativo puede expropiar el
segundo proceso y pedirle que libere sus
recursos
4. Condiciones para el Interbloqueo
• Espera circular
– Se previene definiendo un orden lineal de
los tipos de recurso
Evitación de Interbloqueo
• Se toma una decisión dinámicamente
cuando la actual petición de asignación de
recurso, si se concede, potencialmente dará
lugar a un interbloqueo
• Requiere el conocimiento de las peticiones
futuras del proceso
Dos Enfoques para la
Evitación de Interbloqueo
• No comenzar un proceso si sus demandas
pueden dar lugar a un interbloqueo
• No conceder una petición de recurso
incremental a un proceso si esta asignación
puede dar lugar a interbloqueo
Denegación de Asignación de Recurso
• Se le conoce como algoritmo de banquero
• El estado del sistema es la asignación actual de
recursos a procesos
• Un estado seguro es donde hay al menos una
secuencia que no da lugar a interbloqueo
• Un estado de riesgo es un estado que no es seguro
5. Determinación de un Estado Seguro
Estado Inicial
Determinación de un Estado Seguro
P2 se ejecuta hasta la finalización
Determinación de un Estado Seguro
P1 se ejecuta hasta la finalización
Determinación de un Estado Seguro
P3 se ejecuta hasta la finalización
6. Determinación de un
Estado de Riesgo
Determinación de un
Estado de Riesgo
Evitación de Interbloqueo
• La máxima necesidad de recurso debe ser
indicada de antemano
• Los procesos bajo consideración deben ser
independientes; sin necesidad de sincronización
• Habrá un número fijo de recursos que asignar
• Ningún proceso puede salir manteniendo recursos
Detección de Interbloqueo
7. Estrategias una vez Detectado
un Interbloqueo
• Abortar todos los procesos en interbloqueo
• Recuperar cada proceso bloqueado a algún
checkpoint previamente definido y reiniciar
todos los procesos
– puede volver a ocurrir el mismo interbloqueo
• Abortar sucesivamente los procesos
bloqueados hasta que desaparece el
interbloqueo
• Expropiar sucesivamente los recursos hasta
que desaparece el interbloqueo
Criterios de Selección de
Procesos en Interbloqueo
• Menor cantidad de tiempo del
procesador consumida hasta el momento
• Menor número de líneas de salida
producidas hasta el momento
• Mayor tiempo restante estimado
• Menor número de recursos asignados
hasta el momento
• Menor prioridad
El Problema de la Cena de los Filósofos Mecanismos de Concurrencia en UNIX
• Pipes (encaminadores)
• Mensajes
• Memoria compartida
• Semáforos
• Señales (signals)
8. Primitivas de Sincronización
de los Threads de Solaris
• Locks de Exclusión mutua (mutex)
• Semáforos
• Locks de múltiples lectores, único
escritor (readers/writer)
• Variables de condición
Mecanismos de Concurrencia
de Windows 2000
• Proceso
• Thread
• Fichero
• Entrada de consola
• Notificación de cambio en fichero
• Mutex
• Semáforo
• Evento
• Temporizador de espera