SlideShare une entreprise Scribd logo
1  sur  36
Deadlocks
Caracterización de deadlock
Métodos para manejar
deadlock
Prevenir, Predecir, detección
Recuperación de deadlock
Emely Arráiz
Ene-Mar 08
Conceptos
 Bloqueo permanente de un grupo de procesos
que compiten por los recursos del sistema o bien
se comunican unos con otros.
 Un sistema consiste en un número finito de
recursos que será distribuidos entre los procesos
dentro del sistema.
 Ejemplos Recursos: CPU, memoria, disco, etc.
Ejemplo
 Un programa A quiere copiar desde el disco 1 al
disco 2 y toma el control sobre disco 1.
 Un programa B quiere copiar desde el disco 2 al
disco 1 y toma el control sobre disco 2.
 El programa A debe esperar hasta que el
programa B libere el disco 2. El programa B debe
esperar hasta que el programa A libere disco 1.
 Ambos programas deberán espera para siempre.
Modelo del sistema
 Tipos de recursos: R1,R2,….,Rn
– ciclos de CPU, espacio de memoria, E/S
 Cada Recurso Ri
posee Wi
instancias.
 Cada proceso usa los recursos
– solicita o hace un requerimiento
– los usa
– los libera (al final)
Modelo del Sistema
El uso de los recursos solo puede ser hecho por
medio de llamadas al sistema (System Calls)
Ejemplo
Open/close para archivos
malloc/free para memoria
request/release para dispositivos (waits y signal)
Existe deadlock cuando cada proceso en el
conjunto está esperando por un evento que sólo
puede ser causado por otro proceso en el
conjunto.
Caracterización
 Condiciones necesarias para que deadlock ocurre:
– Exclusión Mutua: solo un proceso a la vez puede
usar el recurso.
– Hold and wait: un proceso tiene al menos un recurso y
espera que le asignen otros.
– No Preemption: recursos solo puede ser liberado
voluntariamente, por el proceso que lo tiene.
– Espera circular: dos o mas procesos esperan por
recursos tenidos por otros procesos. p1 espera por p2,
p2 espera por p3, y pn espera por p1.
Caracterización
DEADLOCK <=====> las 4 condiciones ocurren
Grafo de recursos
 G = (V,E) dirigido
 V dividido en dos tipos
– P : conjunto de procesos en el sistema
– R : conjunto de recursos en el sistema.
 Lados de requerimientos: arcos dirigidos Pi
-->Rj
 Lados de asignación: arcos dirigidos Rj
-->Pi
Grafo de Recursos
P1 P2 P3
R1 R3
R2
R4
Ejemplo
P1 P2
P3
R2
P4
R1
Grafo
 Si el grafo NO contiene ciclos ==> NO deadlock
 Si el grafo contiene ciclos ==>
– Deadlock si hay una instancia por recurso
– Posibilidad de deadlock si muchas instancias por
tipo de recursos. Un ciclo es condición
necesaria pero no suficiente.
Ejemplo
P1 P2 P3
R1 R3
R2
R4
D
E
A
D
L
O
C
K
Métodos para Manejar Deadlock
 Asegurar que el sistema nunca entra en estado
de deadlock.
– Prevención
– Predicción
 Permitir que el sistema entre al estado de
deadlock y luego recuperarlo.
 Ignorar el problema y pretender que no va a
ocurrir. (Sol. De muchos sistemas como UNIX. El
sistema se va degradando y tiene que intervenir
el administrador. Es un enfoque aceptable.
Prevención
 Método: trata de garantizar que alguna de las 4
condiciones no ocurra.
– M.E. No es posible prevenir por negación de la
exclusión mutua, ya que existe recursos
intrínsicamente no compartibles. Ej printer
– H.and W. Se debe garantizar que siempre que un
proceso solicite un recurso, el no tiene otro.
 Protocolo 1: se le asignan a los procesos TODOS los
recursos antes de comenzar.
 Protocolo 2: Un proceso solo puede solicitar recursos cuando
no tiene ninguno. Baja utiliz. de recursos, starvation
Prevención
 No preemption: Si un proceso solicita recursos que
NO pueden ser asignados inmediatamente, entonces
todos los recursos que el tiene asignado son
liberados. Los recursos quitados son sumados a la
lista de recursos por la cual el proceso espera. El
proceso continua cuando le sean devueltos los
recursos quitados, mas los nuevos.
 Circular Wait: Se impone un orden total de todos los
tipos de recursos y que los procesos hagan sus
requerimientos en orden creciente de enumeración
Predicción
 Se le da a los procesos los recursos siempre que
sea posible. Se requiere toda la información acerca
de los request y release. Con esta información se
decide si el proceso debe esperar o no.
 Información requerida
– Recursos disponibles
– Recursos asignados a cada proceso
– Liberaciones y futuras solicitudes de recursos.
Predicción
 Un algoritmo que evita deadlock examina
dinámicamente el estado de los recursos
asignados para asegurar que nunca puede haber
un condición de espera circular.
 El estado de asignación de recursos es definido
por
– el número de recursos disponibles y asignados
– la demanda máxima de los procesos.
Estado seguro
 Cuando un proceso solicita recursos, el sistema
debe decidir si la inmediata asignación deja al
sistema en estado seguro.
 Un sistema está en estado seguro, si existe una
secuencia segura de todos los procesos.
 La secuencia <P1,P2,….Pn> es segura si para
cada Pi
, los recursos que Pi
aun necesita pueden
ser satisfechos por los recursos disponibles +
los que libere Pj
para todo j < I.
Estado seguro
 Si los recursos que Pi
necesita no est'an
disponibles inmediatamente, entonces Pi
puede
esperar hasta que Pj
haya finalizado.
 Cuando Pj
finaliza, Pi
puede obtener los recursos,
se ejecuta y devuelve los recursos asignados.
 Cuando Pi
termina, Pi+1
puede obtener los recursos
que el necesita.
Hechos básicos
 Si un sistema está en estado seguro ==> NO
deadlock
 Si un sistema está en estado inseguro ==> existe
posibilidad de deadlock.
 Predicción ==> asegurar que el sistema nunca
entre en estado inseguro.
Abolir Deadlock
♣System grants resources only if it is safe
♣basic assumption: maximal request per process is
known
♣Example: 2 processes and 2 devices (Printer & Plotter)
Estado Seguro e Inseguro
♣Safe stated:
♥Not deadlocked
♥There is a way to satisfy all possible future requests
Algoritmo del Banquero
 Cada proceso debe a priori declara el número
máximo de recursos a usar.
 Cuando un proceso solicita recurso, el puede
tener que esperar.
 Cuando a un proceso se le asignan todos los
recursos, el debe devolverlos en una cantidad
finita de tiempo .
Algoritmo del Banquero
 Sea n número de procesos; m número de tipos de recursos
 Available[m]. Si Available[j]=k, hay k instancia disponible del
tipo de recurso Rj
 Max[nxm]. Si Max[i,j]=k, entonces Pi
a lo mas debe requerir k
instancias del recurso Rj
 Allocation[nxm]. Si Allocation[i,j] =k, entonces Pi
tiene
asignado k instancia del recurso Rj
.
 Need[nxm]. Si Need[i,j]=k, entonces Pi un necesita k
instancia de Rj
para completar su tarea.
– Need[i,j]= Max[i,j] - Allocation[i,j]
Algoritmo Seguro
1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n
 Find an i such that both:
 Finish[i]=false
 Needi <= Work
 if no exists i, go to step 4
 Work := Work + Allocationi
 Finisk[i] := true
 go to step 2
1. If Finish[i] = true for all i,then the system is in a safe state.
Algoritmo Banker’s
 If Requesti <= Needi go to step 2. Caso contrario error
el proceso excede su máximo de demanda.
 If Requesti <= Available, go to step 3. Caso contrario,
Pi debe espera. Los recursos no están disponibles.
 Intenta la asignacion
– Available := Available - Requesti
– Allocationi := Allocationi + Requesti
– Needi:= Needi - Requesti
if safe => los recursos son asignados a Pi
If unsafe => Pi debe esperar , se recupera el estado
anterior
Ejemplo Banquero
5 procesos, 3 tipos de recursos tipo A 10 instancias tipo
B 5 instancias y tipo C 7 instancias.
Foto en el tiempo T0. Total-Recur: A=10, B=5, C=7
Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2
P1 2 0 0 3 2 2
P2 3 0 2 9 0 2
P3 2 1 1 2 2 2
P4 0 0 2 4 3 3
7 2 5
Ejemplo Banker’s
El contenido de la Matriz Need es
Need
A B C
P0 7 4 3
P1 1 2 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
El sistema esta en estado seguro puesto que la secuencia
P1,P3,P4,P2,P0 es una secuencia segura.
Ejemplo Banker’s
Supongamos que P1 requiere (1,0,2) . Cheque que
Request <= Available ( (1,0,2) <= (3,3,2)) ==> true
Allocation Need Available
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 2 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
Ejecutando el algoritmo se encuentra que P1,P3,P4,P0,P2
es una Secuencia segura
Detección de deadlock
 Permite que el sistema entre en deadlock
 Algoritmo de detección.
 Esquema de recuperación
Algoritmo de Detección
Work y Finish vectores de long. m y n respectivamente.
Work:= Available ;
1. For i=1,2,….n if Allocationi <> 0 then
Finish[i] :=false else Finish[i] :=true
2. Find an index i such that both:
(Finish[i] = false ) and ( Requesti <= Work)
if no such i exists, go to step 4
3. Work := Work + Allocationi
• Finisk[i] := true
• go to step 2
4. If Finish[i] = false for some i,then the system is in a deadlock.
Ejemplo deteccion
5 procesos, 3 tipos de recursos tipo A 7 instancias tipo B 2
instancias y tipo C 6 instancias.
Foto en el tiempo T0
Allocation Request Available
A B C A B C A B C
P0 0 1 0 0 0 0 0 0 0
P1 2 0 0 2 0 2
P2 3 0 3 0 0 0
P3 2 1 1 1 0 0
P4 0 0 2 0 0 2
La secuencia P0,P2,P3,P1,P4 resulta con Finish[i]=true para
todo i
Ejemplo Deteccion
P2 requiere una instancia adicional del tipo C
Request Available
A B C 0 0 0
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 0 0 2
P0 puede liberar sus recursos, pero insuficientes para
satisfacer los otros procesos.
Deadlock existe, constituido por los procesos P1,P2,P3,P4
Recuperación del Deadlock
 Terminación de Procesos
– Abortar todos los procesos que forman parte del
deadlock. => costo elevado
– Abortar un proceso a la vez hasta que el ciclo del
deadlock sea eliminado. => overhead (se debe llamar
muchas veces el algoritmo)
– El orden de elección del proceso a abortar
– Prioridad de procesos
– Que cantidad ha calculado el proceso y cuanto le falta para
completar
– recursos usados por el proceso
– recursos que necesita para terminar
– Procesos interactivo o batch
– Numero de procesos que necesitan ser terminados
Recuperación del Deadlock
 Preemption
– Le sacamos algunos recursos a los procesos que
participan en el deadlock y se lo damos a otro a ver si
le va bien.
– Victima de costo mínimo
– Rollback. Llevar al proceso a estado seguro, el
proceso continua desde el estado seguro
– starvation, algunos procesos son siempre elegidos
como victimas.
Enfoque Combinado
 Combina los tres enfoque
– prevención
– predicción
– detección
 permite el uso del enfoque optimo para cada
clase de recursos en el sistema
 Partir los recursos en clases ordenadas
jerarquicamente.
 Usar la técnica mas apropiada para manejar
deadlock dentro de cada clase.

Contenu connexe

Tendances

Problemas de sincronizacion de procesos
Problemas de sincronizacion de procesosProblemas de sincronizacion de procesos
Problemas de sincronizacion de procesosAbimael hernandez
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Uriel Martinez Cervantes
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosFranklin Parrales Bravo
 
Nachos sistema operativo
Nachos sistema operativoNachos sistema operativo
Nachos sistema operativomahc83
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosChristian19121
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorMicael Feliz Arias
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativosjetmu
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPUFernanda Soto
 

Tendances (20)

Problemas de sincronizacion de procesos
Problemas de sincronizacion de procesosProblemas de sincronizacion de procesos
Problemas de sincronizacion de procesos
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Aula 9 - Backdoor
Aula 9 - BackdoorAula 9 - Backdoor
Aula 9 - Backdoor
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Estrategias de busqueda
Estrategias de busquedaEstrategias de busqueda
Estrategias de busqueda
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 
Aplicaciones de los lenguajes y autómatas
Aplicaciones de los lenguajes y autómatas Aplicaciones de los lenguajes y autómatas
Aplicaciones de los lenguajes y autómatas
 
Nachos sistema operativo
Nachos sistema operativoNachos sistema operativo
Nachos sistema operativo
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativos
 
Llamadas de sistemas
Llamadas de sistemasLlamadas de sistemas
Llamadas de sistemas
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPU
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 

En vedette

Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
Transacciones
TransaccionesTransacciones
Transaccioneschioref
 
Niveles De Aislamiento
Niveles De AislamientoNiveles De Aislamiento
Niveles De Aislamientoguest1db220
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosKim Sorel Rush
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 

En vedette (11)

Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Niveles De Aislamiento
Niveles De AislamientoNiveles De Aislamiento
Niveles De Aislamiento
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Deadlock ppt
Deadlock ppt Deadlock ppt
Deadlock ppt
 

Similaire à Deadlock

Interbloqueos flores janire
Interbloqueos flores janireInterbloqueos flores janire
Interbloqueos flores janireflores_janire
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueoslenionic
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueoslenionic
 
Ejercicios de interbloqueos
Ejercicios de interbloqueosEjercicios de interbloqueos
Ejercicios de interbloqueoselrapp24
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuosozkar21
 
Ejercicios interbloqueos
Ejercicios interbloqueosEjercicios interbloqueos
Ejercicios interbloqueosCruzyJuarez
 
sistema operativo 2
sistema operativo 2 sistema operativo 2
sistema operativo 2 Manuel Medina
 
Kelly salina sistemas operativos
Kelly salina sistemas operativosKelly salina sistemas operativos
Kelly salina sistemas operativostecnologica
 
Kelly sistemas operativos
Kelly  sistemas operativosKelly  sistemas operativos
Kelly sistemas operativostecnologica
 
Interbloqueos ejercicios
Interbloqueos ejerciciosInterbloqueos ejercicios
Interbloqueos ejerciciosEdwin Garces
 

Similaire à Deadlock (20)

Tema5
Tema5Tema5
Tema5
 
Interbloqueos flores janire
Interbloqueos flores janireInterbloqueos flores janire
Interbloqueos flores janire
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Ejercicios de interbloqueos
Ejercicios de interbloqueosEjercicios de interbloqueos
Ejercicios de interbloqueos
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Interbloqueos
Interbloqueos Interbloqueos
Interbloqueos
 
Ejercicios interbloqueos
Ejercicios interbloqueosEjercicios interbloqueos
Ejercicios interbloqueos
 
sistema operativo 2
sistema operativo 2 sistema operativo 2
sistema operativo 2
 
Interbloqueos salcedo carrero.doc
Interbloqueos salcedo carrero.docInterbloqueos salcedo carrero.doc
Interbloqueos salcedo carrero.doc
 
Ejercicios propuestos 10
Ejercicios propuestos 10Ejercicios propuestos 10
Ejercicios propuestos 10
 
Kelly salina sistemas operativos
Kelly salina sistemas operativosKelly salina sistemas operativos
Kelly salina sistemas operativos
 
Kelly
KellyKelly
Kelly
 
Kelly
KellyKelly
Kelly
 
Kelly sistemas operativos
Kelly  sistemas operativosKelly  sistemas operativos
Kelly sistemas operativos
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Interbloqueos ejercicios
Interbloqueos ejerciciosInterbloqueos ejercicios
Interbloqueos ejercicios
 

Plus de David Lilue

Plus de David Lilue (11)

Principios de diseño de Interfaces
Principios de diseño de InterfacesPrincipios de diseño de Interfaces
Principios de diseño de Interfaces
 
Historia de las Interfaces
Historia de las InterfacesHistoria de las Interfaces
Historia de las Interfaces
 
Memoria2
Memoria2Memoria2
Memoria2
 
Filesystem2
Filesystem2Filesystem2
Filesystem2
 
Disco
DiscoDisco
Disco
 
Memvirtual
MemvirtualMemvirtual
Memvirtual
 
Sincronizacion Procesos
Sincronizacion ProcesosSincronizacion Procesos
Sincronizacion Procesos
 
Planificacion
PlanificacionPlanificacion
Planificacion
 
Thread
ThreadThread
Thread
 
Semaforos
SemaforosSemaforos
Semaforos
 
Proceso
ProcesoProceso
Proceso
 

Deadlock

  • 1. Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08
  • 2. Conceptos  Bloqueo permanente de un grupo de procesos que compiten por los recursos del sistema o bien se comunican unos con otros.  Un sistema consiste en un número finito de recursos que será distribuidos entre los procesos dentro del sistema.  Ejemplos Recursos: CPU, memoria, disco, etc.
  • 3. Ejemplo  Un programa A quiere copiar desde el disco 1 al disco 2 y toma el control sobre disco 1.  Un programa B quiere copiar desde el disco 2 al disco 1 y toma el control sobre disco 2.  El programa A debe esperar hasta que el programa B libere el disco 2. El programa B debe esperar hasta que el programa A libere disco 1.  Ambos programas deberán espera para siempre.
  • 4. Modelo del sistema  Tipos de recursos: R1,R2,….,Rn – ciclos de CPU, espacio de memoria, E/S  Cada Recurso Ri posee Wi instancias.  Cada proceso usa los recursos – solicita o hace un requerimiento – los usa – los libera (al final)
  • 5. Modelo del Sistema El uso de los recursos solo puede ser hecho por medio de llamadas al sistema (System Calls) Ejemplo Open/close para archivos malloc/free para memoria request/release para dispositivos (waits y signal) Existe deadlock cuando cada proceso en el conjunto está esperando por un evento que sólo puede ser causado por otro proceso en el conjunto.
  • 6. Caracterización  Condiciones necesarias para que deadlock ocurre: – Exclusión Mutua: solo un proceso a la vez puede usar el recurso. – Hold and wait: un proceso tiene al menos un recurso y espera que le asignen otros. – No Preemption: recursos solo puede ser liberado voluntariamente, por el proceso que lo tiene. – Espera circular: dos o mas procesos esperan por recursos tenidos por otros procesos. p1 espera por p2, p2 espera por p3, y pn espera por p1.
  • 8. Grafo de recursos  G = (V,E) dirigido  V dividido en dos tipos – P : conjunto de procesos en el sistema – R : conjunto de recursos en el sistema.  Lados de requerimientos: arcos dirigidos Pi -->Rj  Lados de asignación: arcos dirigidos Rj -->Pi
  • 9. Grafo de Recursos P1 P2 P3 R1 R3 R2 R4
  • 11. Grafo  Si el grafo NO contiene ciclos ==> NO deadlock  Si el grafo contiene ciclos ==> – Deadlock si hay una instancia por recurso – Posibilidad de deadlock si muchas instancias por tipo de recursos. Un ciclo es condición necesaria pero no suficiente.
  • 12. Ejemplo P1 P2 P3 R1 R3 R2 R4 D E A D L O C K
  • 13. Métodos para Manejar Deadlock  Asegurar que el sistema nunca entra en estado de deadlock. – Prevención – Predicción  Permitir que el sistema entre al estado de deadlock y luego recuperarlo.  Ignorar el problema y pretender que no va a ocurrir. (Sol. De muchos sistemas como UNIX. El sistema se va degradando y tiene que intervenir el administrador. Es un enfoque aceptable.
  • 14. Prevención  Método: trata de garantizar que alguna de las 4 condiciones no ocurra. – M.E. No es posible prevenir por negación de la exclusión mutua, ya que existe recursos intrínsicamente no compartibles. Ej printer – H.and W. Se debe garantizar que siempre que un proceso solicite un recurso, el no tiene otro.  Protocolo 1: se le asignan a los procesos TODOS los recursos antes de comenzar.  Protocolo 2: Un proceso solo puede solicitar recursos cuando no tiene ninguno. Baja utiliz. de recursos, starvation
  • 15. Prevención  No preemption: Si un proceso solicita recursos que NO pueden ser asignados inmediatamente, entonces todos los recursos que el tiene asignado son liberados. Los recursos quitados son sumados a la lista de recursos por la cual el proceso espera. El proceso continua cuando le sean devueltos los recursos quitados, mas los nuevos.  Circular Wait: Se impone un orden total de todos los tipos de recursos y que los procesos hagan sus requerimientos en orden creciente de enumeración
  • 16. Predicción  Se le da a los procesos los recursos siempre que sea posible. Se requiere toda la información acerca de los request y release. Con esta información se decide si el proceso debe esperar o no.  Información requerida – Recursos disponibles – Recursos asignados a cada proceso – Liberaciones y futuras solicitudes de recursos.
  • 17. Predicción  Un algoritmo que evita deadlock examina dinámicamente el estado de los recursos asignados para asegurar que nunca puede haber un condición de espera circular.  El estado de asignación de recursos es definido por – el número de recursos disponibles y asignados – la demanda máxima de los procesos.
  • 18. Estado seguro  Cuando un proceso solicita recursos, el sistema debe decidir si la inmediata asignación deja al sistema en estado seguro.  Un sistema está en estado seguro, si existe una secuencia segura de todos los procesos.  La secuencia <P1,P2,….Pn> es segura si para cada Pi , los recursos que Pi aun necesita pueden ser satisfechos por los recursos disponibles + los que libere Pj para todo j < I.
  • 19. Estado seguro  Si los recursos que Pi necesita no est'an disponibles inmediatamente, entonces Pi puede esperar hasta que Pj haya finalizado.  Cuando Pj finaliza, Pi puede obtener los recursos, se ejecuta y devuelve los recursos asignados.  Cuando Pi termina, Pi+1 puede obtener los recursos que el necesita.
  • 20. Hechos básicos  Si un sistema está en estado seguro ==> NO deadlock  Si un sistema está en estado inseguro ==> existe posibilidad de deadlock.  Predicción ==> asegurar que el sistema nunca entre en estado inseguro.
  • 21. Abolir Deadlock ♣System grants resources only if it is safe ♣basic assumption: maximal request per process is known ♣Example: 2 processes and 2 devices (Printer & Plotter)
  • 22. Estado Seguro e Inseguro ♣Safe stated: ♥Not deadlocked ♥There is a way to satisfy all possible future requests
  • 23. Algoritmo del Banquero  Cada proceso debe a priori declara el número máximo de recursos a usar.  Cuando un proceso solicita recurso, el puede tener que esperar.  Cuando a un proceso se le asignan todos los recursos, el debe devolverlos en una cantidad finita de tiempo .
  • 24. Algoritmo del Banquero  Sea n número de procesos; m número de tipos de recursos  Available[m]. Si Available[j]=k, hay k instancia disponible del tipo de recurso Rj  Max[nxm]. Si Max[i,j]=k, entonces Pi a lo mas debe requerir k instancias del recurso Rj  Allocation[nxm]. Si Allocation[i,j] =k, entonces Pi tiene asignado k instancia del recurso Rj .  Need[nxm]. Si Need[i,j]=k, entonces Pi un necesita k instancia de Rj para completar su tarea. – Need[i,j]= Max[i,j] - Allocation[i,j]
  • 25. Algoritmo Seguro 1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n  Find an i such that both:  Finish[i]=false  Needi <= Work  if no exists i, go to step 4  Work := Work + Allocationi  Finisk[i] := true  go to step 2 1. If Finish[i] = true for all i,then the system is in a safe state.
  • 26. Algoritmo Banker’s  If Requesti <= Needi go to step 2. Caso contrario error el proceso excede su máximo de demanda.  If Requesti <= Available, go to step 3. Caso contrario, Pi debe espera. Los recursos no están disponibles.  Intenta la asignacion – Available := Available - Requesti – Allocationi := Allocationi + Requesti – Needi:= Needi - Requesti if safe => los recursos son asignados a Pi If unsafe => Pi debe esperar , se recupera el estado anterior
  • 27. Ejemplo Banquero 5 procesos, 3 tipos de recursos tipo A 10 instancias tipo B 5 instancias y tipo C 7 instancias. Foto en el tiempo T0. Total-Recur: A=10, B=5, C=7 Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 7 2 5
  • 28. Ejemplo Banker’s El contenido de la Matriz Need es Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 El sistema esta en estado seguro puesto que la secuencia P1,P3,P4,P2,P0 es una secuencia segura.
  • 29. Ejemplo Banker’s Supongamos que P1 requiere (1,0,2) . Cheque que Request <= Available ( (1,0,2) <= (3,3,2)) ==> true Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 Ejecutando el algoritmo se encuentra que P1,P3,P4,P0,P2 es una Secuencia segura
  • 30. Detección de deadlock  Permite que el sistema entre en deadlock  Algoritmo de detección.  Esquema de recuperación
  • 31. Algoritmo de Detección Work y Finish vectores de long. m y n respectivamente. Work:= Available ; 1. For i=1,2,….n if Allocationi <> 0 then Finish[i] :=false else Finish[i] :=true 2. Find an index i such that both: (Finish[i] = false ) and ( Requesti <= Work) if no such i exists, go to step 4 3. Work := Work + Allocationi • Finisk[i] := true • go to step 2 4. If Finish[i] = false for some i,then the system is in a deadlock.
  • 32. Ejemplo deteccion 5 procesos, 3 tipos de recursos tipo A 7 instancias tipo B 2 instancias y tipo C 6 instancias. Foto en el tiempo T0 Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 La secuencia P0,P2,P3,P1,P4 resulta con Finish[i]=true para todo i
  • 33. Ejemplo Deteccion P2 requiere una instancia adicional del tipo C Request Available A B C 0 0 0 P0 0 0 0 P1 2 0 2 P2 0 0 1 P3 1 0 0 P4 0 0 2 P0 puede liberar sus recursos, pero insuficientes para satisfacer los otros procesos. Deadlock existe, constituido por los procesos P1,P2,P3,P4
  • 34. Recuperación del Deadlock  Terminación de Procesos – Abortar todos los procesos que forman parte del deadlock. => costo elevado – Abortar un proceso a la vez hasta que el ciclo del deadlock sea eliminado. => overhead (se debe llamar muchas veces el algoritmo) – El orden de elección del proceso a abortar – Prioridad de procesos – Que cantidad ha calculado el proceso y cuanto le falta para completar – recursos usados por el proceso – recursos que necesita para terminar – Procesos interactivo o batch – Numero de procesos que necesitan ser terminados
  • 35. Recuperación del Deadlock  Preemption – Le sacamos algunos recursos a los procesos que participan en el deadlock y se lo damos a otro a ver si le va bien. – Victima de costo mínimo – Rollback. Llevar al proceso a estado seguro, el proceso continua desde el estado seguro – starvation, algunos procesos son siempre elegidos como victimas.
  • 36. Enfoque Combinado  Combina los tres enfoque – prevención – predicción – detección  permite el uso del enfoque optimo para cada clase de recursos en el sistema  Partir los recursos en clases ordenadas jerarquicamente.  Usar la técnica mas apropiada para manejar deadlock dentro de cada clase.