Está en la página 1de 35

UNIVERSIDAD CENTROCCIDENTAL

LISANDRO ALVARADO
DECANATO DE CIENCIAS Y TECNOLOGA
DEPARTAMENTO DE SISTEMAS

Unidad III: ( 2da. Parte)


INTERBLOQUEOS
(DEADLOCK)
Elaborado por: Prof. (a) Aimar Vargas
Revisin y aportes de los profesores:
Robiro Azuaje
Yvan Gutierrez

Sistemas Operativos. Unidad III - Mayo 2015

Interbloqueos
Contenido
1.Introduccin:

Caracterizacin
Tipos de recursos

2.Interbloqueo (Deadlock)

Concepto
Modelaje
Condiciones necesarias para que ocurra un interbloqueo.
Tratamiento para interbloqueos.

3.Mtodos de tratamiento de interbloqueo:

Prevencin
Evitacin
Deteccin y recuperacin
Ignorar el problema

Problemas de concurrencia libres de interbloqueo


Sistemas Operativos. Unidad III - Mayo 2015

Introduccin
Las necesidades de algunos procesos
pueden entrar en conflicto entre s,
causando que stos se bloqueen.

Ejemplos:
Carretera de 2 sentidos con puente

donde slo cabe un automvil


Dos personas llamndose por telfono
mutuamente

Sistemas Operativos. Unidad III - Mayo 2015

Caracterizacin
Interbloqueo se caracteriza por la existencia
de un conjunto de entidades activas que

usan un conjunto de recursos:


Entidades activas
Procesos y threads
Recursos
Fsicos:

CPU, memoria, dispositivos.

Lgicos:

archivos, semforos, mutex, mensajes, seales, etc.


Sistemas Operativos. Unidad III - Mayo 2015

Tipos de recursos

Sistemas Operativos. Unidad III - Mayo 2015

Interbloqueo (Deadlock)
Un interbloqueo supone un
bloqueo permanente de un conjunto
de procesos que compiten por recursos
o bien se comunican o sincronizan
entre s. (Carretero y otros)

Los sucesos tienen que ver con la adquisicin y


liberacin de los recursos.

En los bloqueos mutuos, pueden involucrarse uno o


varios tipos de recursos.

Sistemas Operativos. Unidad III - Mayo 2015

Modelaje de Interbloqueos

R
P pide un recurso de tipo R.

(A)

R
(B)

Un recurso de tipo R a sido


asignado al proceso P.

Sistemas Operativos. Unidad III - Mayo 2015

Bloqueo Mutuo
El recurso A
est
asignado al
proceso
PROCESO
P1
P1

El proceso P1
pide el recurso
T

El proceso P2
pide el recurso
A.

Recurso A

PROCESO
P2

Recurso
T

Este sistema est bloqueado porque cada proceso tiene


un recurso solicitado por el otro proceso y ninguno de
ellos est dispuesto a liberar el recurso que tiene.
Sistemas Operativos. Unidad III - Mayo 2015

El recurso T
est
asignado al
proceso
P2.

Modelaje de Interbloqueos

Sistemas Operativos. Unidad III - Mayo 2015

Condiciones necesarias para que ocurra un


Deadlock ( segn Coffman)
EXCLUSIN MUTUA: Los recursos implicados deben usarse

en exclusin mutua, o sea, debe tratarse de recursos de uso


exclusivo.
RETENCIN Y ESPERA: Cuando no se puede satisfacer la
peticin de un proceso, ste se bloquea manteniendo los
recursos que tena previamente asignados.
NO APROPIACIN: Los recursos no se pueden quitar, es
decir, un recurso slo puede ser liberado voluntariamente
por el proceso que lo retiene, despus que haya cumplido su
tarea.
ESPERA CIRCULAR: Debe existir una cadena circular de
procesos tal que cada proceso en la lista est esperando por
uno o ms recursos que tiene asignado el siguiente proceso.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Previos al Interbloqueo
Prevencin.

Asegura que no
ocurre fijando reglas para pedir
recursos
- Infrautilizacin de recursos: se
deben
pedir
antes
de
necesitarlos
Prediccin o evitacin. Asegura
que no ocurre basndose en
conocimiento
de
necesidades
futuras de los procesos
- Dificultad de conocer el futuro

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Posteriores al Interbloqueo
Deteccin

y recuperacin. Dejar que se


produzca, detectarlo y recuperarse del mismo.
- Coste de algoritmo + prdida del trabajo
realizado
- Coste de algoritmo + Infrautilizacin de
recursos
Ignorar el problema: Utilizada por la mayora de
los S.O. Dada la baja probabilidad de que ocurra
y el costo que conlleva evitarlo (infrautilizacin
y/o coste de algoritmos).

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin
Exclusin Mutua: Los recursos implicados deben
usarse en exclusin mutua, o sea, debe tratarse de
recursos de uso exclusivo.
La
condicin
de
EXCLUSION
MUTUA debe conservarse para
aquellos
recursos que por
naturaleza propia o funcin no
pueden compartirse.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin:
Retencin y espera: Cuando no se puede
satisfacer la peticin de un proceso, ste se
bloquea manteniendo los recursos que tena
previamente asignados.
NEGACIN DE LA CONDICIN DE RETENCIN
Y ESPERA: Principio de Todo o Nada
Cada proceso deber pedir TODOS sus recursos
al mismo tiempo y no podr comenzar su
ejecucin hasta haberlos recibido por completo.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin
No Apropiacin: Los recursos no se pueden
quitar, es decir, un recurso slo puede ser
liberado voluntariamente por el proceso que lo
retiene, despus que haya cumplido su tarea.
NEGACIN DE LA CONDICIN DE NO
APROPIACION
Si un proceso que retiene algn recurso, solicita
otro recurso que no se le puede asignar de
inmediato, entonces todos los recursos que
retiene se le expropian.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin
Espera Circular: Debe existir una cadena circular de
procesos tal que cada proceso en la lista est
esperando por uno o ms recursos que
tiene asignado el siguiente proceso.
NEGACIN DE LA CONDICIN DE ESPERA CIRCULAR:
MTODO DE PETICIONES ORDENADAS
Imponer una ordenacin total de todos los tipos de
recursos y
requerir que cada proceso solicite los recursos
siguiendo un orden de numeracin ascendente.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prevencin
Negacin de la Espera circular
utilizando el Mtodo de las
Peticiones Ordenadas:
Se restringe a que un proceso debe

pedir los recursos que necesita en


forma creciente y anticipada.

LISTA DE RECURSOS

NIVEL
1
2
3
4
5

El orden de los recursos se asigna

de manera que corresponda con el


orden de uso mas probable por
parte de la mayora de los
programas.

Sistemas Operativos. Unidad III - Mayo 2015

RECURSO
Terminal
Impresora
Plotter
Unidad CD
Disco Duro

Tratamientos para un Interbloqueo


Prediccin Evitacin
Si se presentan las condiciones necesarias para un
bloqueo mutuo, todava es posible predecir su ocurrencia
mediante una cuidadosa asignacin de recursos.
Se concede nicamente las peticiones de recursos
disponibles que no conduzcan a estados propensos a
interbloqueo.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
ALGORITMO DEL BANQUERO. (Condiciones Iniciales)
1.El sistema operativo administra un nmero fijo de unidades por
recurso entre un nmero fijo de usuarios (procesos).
2. Cada usuario (proceso) especifica por adelantado el nmero mximo
de unidades de los recursos que necesitar durante la ejecucin de los
trabajos.
3.El sistema operativo aceptar la peticin de un usuario (proceso) si la
necesidad mxima de ese usuario no es mayor al nmero fijo de
unidades del recurso.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
ALGORITMO DEL BANQUERO. (Condiciones Iniciales)
4- Un usuario (proceso) puede obtener o liberar unidades del recurso
una a una. Los recursos asignados no podrn ser mayores a las
necesidades mximas declaradas por dicho usuario.
5- Si el sistema operativo es capaz de satisfacer la necesidad mxima del
usuario (proceso), entonces este proceso debe garantizar al sistema
operativo que las unidades del recurso sern utilizadas y liberadas en
un tiempo finito.
6- Determinar la situacin del sistema : SISTEMA EN ESTADO
SEGURO" y SISTEMA EN ESTADO INSEGURO".
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
Se dice que el sistema se encuentra en estado SEGURO, si el sistema
operativo puede permitir que todos los procesos actuales terminen sus
trabajos en un tiempo finito. En otro caso, el estado del sistema es
INSEGURO.
Ejemplo 1:
Prstamo
Necesidad
Procesos
Actual
Mxima
Usuario 1
1
4
Usuario 2
4
6
Usuario 3
5
8
Unidades disponibles:2
La clave para que un sistema sea seguro es que exista al menos una
forma adecuada de que terminen todos los procesos.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
Ejemplo2:
Prstamo
Procesos
Actual
Usuario 1
8
Usuario 2
2
Usuario 3
1
Unidades disponibles:1

Necesidad
Mxima
10
5
3

Un sistema inseguro indica que alguna secuencia desafortunada en la


asignacin de recursos, podra llevar al bloqueo mutuo.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin de
Evitacin
Estructuras
datos para el Algoritmo del
Banquero:

n: nmero de procesos, m:tipos de recursos


Disponible:Un vector de longitud m que indica el nmero de recursos
disponibles de cada tipo. Si Disponible[j]=k, entonces hay k ejemplares
disponibles del tipo de recurso Rj.
Mx. Una matriz de n*m que define la demanda mxima de cada proceso por
cada clase de recurso. Si mx[i,j]=k, entonces el proceso Pi puede solicitar
como mximo k ejemplares del tipo de recurso Rj.
Asignacin: Una matriz de n*m que define el nmero de recursos de cada
tipo asignados en ese momento a cada proceso. Si asignacin[i,j]=k, entonces el
proceso pi tiene actualmente asignados k ejemplares del tipo de recurso R j.
Necesidad:Una matriz de n*m que indica los recursos que le hacen falta a
cada proceso. Si necesidad[i,j]=k, entonces el proceso p i puede necesitar k
ejemplares ms del tipo de recurso Rj para completar su tarea. Observe que
Necesidad[i,j]=Mx[i,j]-Asignacion[i,j].
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
IMPLEMENTACION DEL ALGORITMO DEL BANQUERO
Sea Solicitudi el vector de solicitudes para el proceso Pi. Si Solicitudi[j]=k, entonces el
proceso Pi quiere k ejemplares del tipo de recurso Rj. Cuando el proceso Pi efecta
una solicitud de recursos, se emprenden las siguientes acciones:
1- Si solicitudi<=Necesidadi , continuar en el paso 2. De lo contrario, presentar una
condicin de error, ya que el proceso se ha excedido de su demanda mxima.
2- Si Solicitudi<=Disponiblei , continuar en el paso 3. De lo contrario, Pi deber
esperar, pues los recursos no estn disponibles.
3- El sistema simula haber asignado todos los recursos solicitados al proceso p i
modificando el estado de la manera siguiente:
Disponible:Disponible-Solicitudi;
Asignacioni:=Asignacion+Solicitudi;
Necesidadi:=Necesidad-Solicitudi;
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
Implementacin del Algoritmo del Banquero
4. Se ejecuta el ALGORITMO PARA DETERMINAR EL ESTADO DE UN
SISTEMA.
5. Si el estado de asignacin de recursos resultante es seguro, entonces se
efecta la transaccin y los recursos se asignan al proceso p i. Sin embargo,
si el nuevo estado no es seguro, entonces Pi, deber esperar y se restablece
el anterior estado de asignacin de recursos.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
Algoritmo para determinar el Estado de un Sistema
1. Sean Trabajo y Fin vectores de longitud m y n, respectivamente. Asgnese
Trabajo:=Disponible y Fin[i]:=falso para toda i=1,2,...,n.
2- Encontrar una i (proceso) tal que se cumplan ambas proposiciones:
a) Fin[i]=falso
b) Necesidadi<=Trabajo.
Si no existe tal i, continuar en el paso 4.
3- Trabajo:=Trabajo+Asignacini
Fin[i]:=verdadero
Continuar en el paso 2.
4- Si Fin[i]=verdadero para toda i, entonces el sistema est en un estado
SEGURO. En caso contrario, el sistema se encuentra en estado INSEGURO.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Prediccin Evitacin
Ejercicio:
Sea un sistema con cinco procesos P1 a P5. y tres recursos A, B
y C, de los que existen 10, 5 y 7 ejemplares respectivamente.
Supongamos que en el instante actual tenemos la siguiente
situacin del sistema:

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
Si un sistema no emplea un algoritmo de prevencin
o prediccin de bloqueo mutuo, entonces deber:
1.

Determinar si ha ocurrido un bloqueo mutuo.


(FASE DE DETECCIN)

1.

Recuperarse del bloqueo mutuo.


(FASE DE RECUPERACIN)

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
1. Fase de Deteccin:
Debe ejecutarse un
algoritmo
que
determine
si
el
estado actual del
sistema est libre
de bloqueo y que,
en caso de que no
lo est, identifique
qu procesos estn
implicados en el
interbloqueo.

2.Fase de
Recuperacin:
Una vez detectado el
bloqueo mutuo, se
debe
aplicar
una
accin que lo elimine

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin

1.- Fase de
Deteccin

Se realiza mediante la aplicacin del concepto de reduccin a

partir de una representacin del sistema (procesos y recursos)


mediante un grafo.
Se basa en el siguiente principio: Se dice que el estado del

sistema se puede reducir por un proceso P si se pueden


satisfacer las necesidades del proceso con los recursos
disponibles . Esto significa que el proceso se encuentra
desbloqueado.
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
Sea N = Conjunto que contiene los nodos del grafo
( formado por los recurso y los procesos)
Sea A= Conjunto de las aristas que conectan a los nodos del grafo
Estado inicial
S= (Conjunto de la secuencia de reduccin )
D= Conjunto de procesos desbloqueados que NO estn en el conjunto S.
Mientras D , se puede reducir cualquier proceso del conjunto D y aadirlo a S
Si D = y S = P, Donde P es el conjunto de todos los procesos
Entonces No existe INTERBLOQUEO
Sino los procesos del conjunto resultante P-S estn en INTERBLOQUEO
Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
2.- Fase de Recuperacin
Permitir al sistema operativo recuperarse despus de la
ocurrencia de un deadlock, sin intervencin directa del
operador.
Alternativas:
i) Abortar uno o ms procesos.
ii) Arrebatar recursos a uno o ms procesos que se
encuentran en deadlock.

Sistemas Operativos. Unidad III - Mayo 2015

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
2.- Fase de Recuperacin
i. Abortar los procesos

Abortar
Mtodos:
- Abortar todos los procesos en deadlock:

Costo alto.
Prdida total del trabajo realizado.

- Abortar un proceso a la vez, hasta que el deadlock haya


eliminado:

FACTORES PARA LA ESCOGENCIA DEL PROCESO.


1- Prioridad de los procesos.
2- Cuntos y qu tipos de recursos tiene asignado el proceso.
3-Cuntos recursos ms necesita el proceso para culminar.
4-Tiempo que lleva ejecutado cada proceso.

Overhead (Sobretiempo).
Algoritmo de deteccin.
Sistemas Operativos. Unidad III - Mayo 2015

sido

Tratamientos para un Interbloqueo


Deteccin y Recuperacin
2.- Fase de Recuperacin
i. Arrebatar los recursos a uno o ms procesos
Aspectos a considerar:
SELECCIN DE UN PROCESO VICTIMA".
Determinar a cules procesos y cules recursos les sern
arrebatados.
Parmetros:
Nmero de recursos que tiene asignado un procesos en deadlock.
Cantidad de tiempo consumida por el proceso en su ejecucin.
Hay que tener presente el que no ocurra el fenmeno de
STARVATION (APLAZAMIENTO INDEFINIDO):
Garantizar que los recursos no siempre sean arrebatados a los mismos
procesos Vctimas, ya que esto aplazara su culminacin.
Sistemas Operativos. Unidad III - Mayo 2015

También podría gustarte