Está en la página 1de 8

Interbloqueo

• Bloqueo permanente de un conjunto de


procesos que compiten por recursos del
Concurrencia: sistema o por comunicación con los otros
Interbloqueo e Inanición • No existe una solución eficiente
• Implican a varios procesos cuyas necesidades
Capítulo 6
por recursos entran en conflicto
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
P1 P2
... ...
Request 80K bytes; Request 70K bytes;
... ...
Request 60K bytes; Request 80K bytes;

• El interbloqueo ocurre si ambos procesos llegan


a su segunda petición
Recursos Consumibles Ejemplo de Interbloqueo
• Creados (produced) y destruidos • El interbloqueo ocurre si la recepción es
(consumed) por un proceso bloqueante
• Interrupciones, señales, mensajes e P1 P2
... ...
información en buffers de E/S Receive(P2);
...
Receive(P1);
...
• El interbloqueo puede ocurrir si un Send(P2, M1); Send(P1, M2);

Receptor de un mensaje está bloqueado


• Una extraña combinación de eventos
puede dar lugar a interbloqueo

Condiciones para el Interbloqueo Condiciones para el Interbloqueo


• Exclusión mutua • Sin expropiación (No preemption)
– sólo un proceso puede usar un recurso cada vez – Si a un proceso que mantiene ciertos
• Mantener-y-esperar recursos se le deniega una petición, dicho
proceso debe liberar sus recursos originales
– Un proceso pide todos los recurso que necesita
en un momento – 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
Condiciones para el Interbloqueo Evitación de Interbloqueo
• Espera circular • Se toma una decisión dinámicamente
– Se previene definiendo un orden lineal de cuando la actual petición de asignación de
los tipos de recurso recurso, si se concede, potencialmente dará
lugar a un interbloqueo
• Requiere el conocimiento de las peticiones
futuras del proceso

Dos Enfoques para la


Denegación de Asignación de Recurso
Evitación de Interbloqueo
• No comenzar un proceso si sus demandas • Se le conoce como algoritmo de banquero
pueden dar lugar a un interbloqueo • El estado del sistema es la asignación actual de
• No conceder una petición de recurso recursos a procesos
incremental a un proceso si esta asignación • Un estado seguro es donde hay al menos una
puede dar lugar a interbloqueo secuencia que no da lugar a interbloqueo
• Un estado de riesgo es un estado que no es seguro
Determinación de un Estado Seguro Determinación de un Estado Seguro
Estado Inicial P2 se ejecuta hasta la finalización

Determinación de un Estado Seguro Determinación de un Estado Seguro


P1 se ejecuta hasta la finalización P3 se ejecuta hasta la finalización
Determinación de un Determinación de un
Estado de Riesgo Estado de Riesgo

Evitación de Interbloqueo Detecció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
Estrategias una vez Detectado Criterios de Selección de
un Interbloqueo Procesos en Interbloqueo
• Abortar todos los procesos en interbloqueo • Menor cantidad de tiempo del
• Recuperar cada proceso bloqueado a algún procesador consumida hasta el momento
checkpoint previamente definido y reiniciar • Menor número de líneas de salida
todos los procesos producidas hasta el momento
– puede volver a ocurrir el mismo interbloqueo
• Mayor tiempo restante estimado
• Abortar sucesivamente los procesos
bloqueados hasta que desaparece el • Menor número de recursos asignados
interbloqueo hasta el momento
• Expropiar sucesivamente los recursos hasta • Menor prioridad
que desaparece el interbloqueo

El Problema de la Cena de los Filósofos Mecanismos de Concurrencia en UNIX


• Pipes (encaminadores)
• Mensajes
• Memoria compartida
• Semáforos
• Señales (signals)
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

También podría gustarte