You are on page 1of 81

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Administracin de procesos: Bloqueos


mutuos y polticas
Gunnar Wolf
Facultad de Ingeniera, UNAM

2013-02-20 2013-02-25

El SO y los Bloqueos mutuos

Prevencin

Evasin

ndice

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Deteccin y recuperacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Generalizando bloqueos mutuos

Estudiamos ya varios casos de bloqueos mutuos al hablar


de sincronizacin
Pueden presentarse en varios otros entornos
De cmputo o de la vida real

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

El encuentro de dos trenes

Cuando dos trenes lleguen a un crucero, ambos


deben detenerse por completo y no avanzar hasta
que el otro se haya ido
Ley aprobada por el Estado de Kansas, principios del siglo XX

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El cruce de un semforo
Cuando dos personas llegan a un crucero sin semforo,
quin tiene el paso?
Reglamento de trnsito: El conductor que viene ms por
la derecha
Y qu procede cuando cuatro conductores llegan a la
vez?
Legalmente, los cuatro deben detenerse y nunca ms
avanzar
Uno podra echarse en reversa, otro podra ignorar la ley y
pasar de todos modos, pero es porque los conductores
humanos tienen iniciativa!

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El cruce de un semforo
Cuando dos personas llegan a un crucero sin semforo,
quin tiene el paso?
Reglamento de trnsito: El conductor que viene ms por
la derecha
Y qu procede cuando cuatro conductores llegan a la
vez?
Legalmente, los cuatro deben detenerse y nunca ms
avanzar
Uno podra echarse en reversa, otro podra ignorar la ley y
pasar de todos modos, pero es porque los conductores
humanos tienen iniciativa!

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El cruce de un semforo
Cuando dos personas llegan a un crucero sin semforo,
quin tiene el paso?
Reglamento de trnsito: El conductor que viene ms por
la derecha
Y qu procede cuando cuatro conductores llegan a la
vez?
Legalmente, los cuatro deben detenerse y nunca ms
avanzar
Uno podra echarse en reversa, otro podra ignorar la ley y
pasar de todos modos, pero es porque los conductores
humanos tienen iniciativa!

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Cundo se presenta un bloqueo mutuo?


Condiciones de Coffman
Exclusin mutua Los procesos reclaman acceso exclusivo de
los recursos
Espera por Los procesos mantienen los recursos que ya les
haban sido asignados mientras esperan recursos
adicionales
No apropiatividad Los recursos no pueden ser extrados de los
procesos que los tienen hasta su completa
utilizacin
Espera circular Existe una cadena circular de procesos en que
cada uno mantiene a uno o ms recursos que son
requeridos por el siguiente en la cadena

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Evaluando en base a las conidiciones de Coffman

Cada una de las condiciones presentadas son necesarias,


pero no suficientes para que haya un bloqueo
Pero pueden alertarnos hacia una situacin de riesgo
Cuando se presentan las cuatro, tenemos un bloqueo
mutuo que slo puede resolverse terminando a uno de los
procesos involucrados
Prdida de datos / estado

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo clsico de bloqueo mutuo (1)


Asumimos: Un sistema con dos unidades de cinta (acceso
secuencial, no-compartible)
Dos procesos, A y B, requieren de ambas unidades.
1
2
3

4
5

A solicita una unidad de cinta y se bloquea


B solicita una unidad de cinta y se bloquea
El sistema operativo otorga la unidad 1 a A y lo vuelve a
poner en ejecucin
A contina procesando; termina su periodo de ejecucin
El sistema operativo otorga la unidad 2 a B y lo vuelve a
poner en ejecucin

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo clsico de bloqueo mutuo (2)

6
7

8
9

B solicita otra unidad de cinta y se bloquea


El sistema operativo no tiene otra unidad de cinta por
asignar. Mantiene a B bloqueado; otorga el control de
vuelta a A
A solicita otra unidad de cinta y se bloquea
El sistema operativo no tiene otra unidad de cinta por
asignar. Mantiene a B bloqueado; otorga el control de
vuelta a otro proceso (o queda en espera)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Esquematizando el ejemplo clsico

Figura: Esquema clsico de un bloqueo mutuo simple: Los procesos


A y B esperan mutuamente para el acceso a las unidades de cinta 1
y 2.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El punto de vista del sistema operativo

El rol del sistema operativo va ms all de lo presentado


en las lminas anteriores (Exclusin mutua)
No podemos asumir que los procesos cooperarn entre s
Ni siquiera que sabrn por anticipado de la existencia
mutua

Un rol primario del sistema operativo es gestionar los


recursos del equipo

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Polticas de prevencin o resolucin de bloqueos


mutuos

Si el sistema establece polticas respecto a la asignacin de


recursos, puede evitar casos como el presentado.
Las polticas pueden verse en un contnuo entre:
Liberales Buscan a otorgar los recursos lo antes posible
cuando son solicitados
Conservadoras Controlan ms el proceso de asignacin de
recursos

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Espectro liberal-conservador de polticas

Figura: Espectro liberalconservador de esquemas para evitar


bloqueos
Volveremos a este diagrama hacia el final del tema

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Categoras de estrategias ante bloqueos mutuos


Prevencin Modela el comportamiento del sistema para
eliminar toda posibilidad de un bloqueo.
Resulta en una utilizacin subptima de recursos.
Evasin Impone condiciones menos estrictas. No puede
evitar todas las posibilidades de un bloqueo;
cuando ste se produce busca evitar sus
consecuencias.
Deteccin y recuperacin Permite que ocurran los bloqueos,
pero busca determinar si ha ocurrido y actuar
para eliminarlos.

El SO y los Bloqueos mutuos

Prevencin

Evasin

ndice

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Deteccin y recuperacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Caracterstica bsica

Modela el comportamiento del sistema para eliminar toda


posibilidad de un bloqueo.
Resulta en una utilizacin subptima de recursos.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Serializacin

Previene caer en bloqueos negando que el sistema otorgue


recursos a ms de un proceso a la vez
Los diferentes procesos pueden seguir ejecutando
Realizando clculos
Empleando recursos no rivales

Podra emplearse en un esquema tipo multiprogramacin


temprana (no interactiva)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Serializando el ejemplo clsico de bloqueo mutuo


(1)
1
2
3

4
5

A solicita una unidad de cinta y se bloquea


B solicita una unidad de cinta y se bloquea
El sistema operativo otorga la unidad 1 a A y lo vuelve a
poner en ejecucin
A contina procesando; termina su periodo de ejecucin
El sistema operativo mantiene bloqueado a B, dado que
A tiene un recurso
A solicita otra unidad de cinta y se bloquea

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Serializando el ejemplo clsico de bloqueo mutuo


(2)
7

8
9

10

11
12

13
14

El sistema operativo otorga la unidad 2 a A y lo vuelve a


poner en ejecucin
A libera la unidad de cinta 1
A libera la unidad de cinta 2 (y con ello, el bloqueo de
uso de recursos)
El sistema operativo otorga la unidad 1 a B y lo vuelve a
poner en ejecucin
B solicita otra unidad de cinta y se bloquea
El sistema operativo otorga la unidad 2 a B y lo vuelve a
poner en ejecucin
B libera la unidad de cinta 1
B libera la unidad de cinta 2

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Analizando a la serializacin

Previene toda posibilidad de bloqueo ante solicitud de


recursos
Pero se vuelve muy susceptible a la inanicin
Lleva a subutilizacin de los recursos
Con n procesos, puede haber n-1 esperando a que uno
libere los recursos.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Retencin y espera o Reserva (advance claim)

Poltica de prevencin menos conservadora


Todos los programas al iniciar su ejecucin declaran qu
recursos requerirn
Apartados para uso exclusivo hasta que el proceso termina
El sistema puede seguir concediendo solicitudes que no
rivalicen
Si C y D requieren recursos diferentes de A y B, pueden
ejecutarse en paralelo A, C y D
Posteriormente, B, C, D

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Desventajas de la retencin y espera

Recursos reservados por toda la ejecucin del proceso


Incluso si la requieren por un tiempo muy limitado

Percepcin de injusticia por inanicin


Tiempo de espera para el usuario que lanz B

Requiere que el programador sepa por anticipado los


recursos que requerir
Muchas veces es imposible

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Solicitud de una vez (one-shot)

Otro mecanismo de prevencin de bloqueos


Un proceso slo puede solicitar recursos cuando no tiene
ninguno
Dos variantes: Todos de inicio, o soltar y readquirir

Rompe la condicin de espera por


. . . Pero hay muchos recursos que deben mantenerse
bloqueados por largo plazo!
Cambia la lgica de programacin al tener puntos
definidos de adquisicin y liberacin

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Asignacin de recursos jerrquica


A cada categora de recursos se le asigna una prioridad o
nivel jerrquico
Un proceso dado slo puede solicitar recursos de un nivel
superior a los que ya tiene asignados.
Para pedir dos dispositivos del mismo nivel, debe hacerse
de forma atmica
Si tanto P1 como P2 requieren dos unidades de cinta,
ambos deben pedirlas a ambas de una sola vez
El planificador elegir cul gana; ese tendr ambos
recursos
El otro esperar hasta que ste termine
No hay bloqueo

Podramos presentar a la solicitud de una vez como un


caso degenerado de asignacin jerrquica.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Asignacin de recursos jerrquica


Si P1 y P2 requieren una impresora y una unidad de cinta,
hay un rden claro en que tienen que pedirse
No hay bloqueo

Los recursos ms escasos estn ms arriba en la jerarqua


Esto hace que lleguen menos solicitudes por ellos

. . . Pero?
Es un ordenamiento demasiado estricto para muchas
situaciones del mundo real
Lleva a los procesos a acaparar recursos de baja prioridad
Conduce a inanicin

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Sorteando los mecanismos de prevencin

Podemos burlar estos mecanismos?


P.ej. empleando procesos representantes (proxy)

Un programador poco cuidadoso puede, sin llegar a


bloqueo por recursos, llegar a un bloqueo por procesos
Pero una buena prctica sera descargar el uso de
recursos rivales en un proceso que sepa cmo
compartirlos inteligentemente

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Prevencin de bloqueos: Resumiendo

Mecanismos muy conservadores pero 100 % efectivos (si


nos limitamos a lo declarado...)
Pareceran poco acordes a un entorno
multiusuario/multitarea como la mayora de los actuales
Sin embargo, empleados para ciertos subsistemas, con
esquemas de mediacin
Impresin
Audio

El SO y los Bloqueos mutuos

Prevencin

Evasin

ndice

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Deteccin y recuperacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Caracterstica bsica

Impone condiciones menos estrictas. No puede evitar todas las


posibilidades de un bloqueo; cuando ste se produce busca
evitar sus consecuencias.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Enfoque 1: Flujos seguros e inseguros

Realizado por el planificador


Requiere saber por anticipado qu procesos utilizarn qu
recursos
Un poco menos detallado que la prevencin (nmero de
recursos por categora)

Saber cundo se va a usar cada recurso


Anlisis de la interaccin, marcando reas de riesgo

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Flujos seguros e inseguros

Figura: Evasin de bloqueos: Los procesos A (horizontal) y B


(vertical) requieren del acceso exclusivo a un scanner y una
impresora. Nota: El diagrama debe leerse como estados no
discretos. (La Red, p. 200)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

reas de riesgo
Mientras avancemos por el rea segura no hay riesgo de
bloqueos
Sistemas uniprocesador, slo avance vertical/horizontal
Sistemas multiprocesador, avance diagonal

reas de riesgo: Cuando alguno de los recursos rivales es


otorgado
El bloqueo mutuo se produce en la interseccin de I2 I3
e I6 I7
En la situacin descrita, el sistema debe mantener a B
congelado por lo menos asta que A llegue a I3

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Analizando esta estrategia

Muy dificil de implementar en un sistema de propsito


general
Requiere anlisis esttico previo del cdigo
O requisitos de programacin diferentes a los expuestos
por los sistemas en uso generalizado

Puede especificarse dentro de un marco de desarrollo:


Asignacin de recursos por subrutina

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Enfoque 2: Algoritmo del banquero

Edsger Djikstra, para el sistema operativo THE,


1965-1968
El sistema procede cuidando de la liquidez para siempre
poder satisfacer los prstamos (recursos) de sus clientes
Permite que el conjunto de recursos solicitados por los
procesos sean mayores a los disponibles

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Requisitos para el Algoritmo del banquero

Debe ejecutarse cada vez que un proceso solicita recursos


Todo proceso debe declarar su reclamo mximo (claim)
de recursos al iniciar su ejecucin
Si el reclamo en cualquier categora es superior al
mximo existente, el sistema niega la ejecucin

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estructuras a emplear: Relativas a procesos

Matrices (llaves por categora y por proceso)


Reclamado Nmero de instancias de este recurso que han
sido reclamadas
Asignado Nmero de instancias de este recurso actualmente
asignadas a procesos en ejecucin
Solicitado Nmero de instancias de este recurso actualmente
pendientes de asignar (solicitudes hechas y no
cumplidas)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estructuras a emplear: Categoras de recursos

Listas (llave por categora)


Disponibles Nmero total de instancias de este recurso
disponibles al sistema
Libres Nmero de instancias de este recurso que no
estn actualmente asignadas a ningn proceso

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estados

Estado Matrices de recursos disponibles, reclamos


mximos y asignacin de recursos a los procesos
en un momento dado
Estado seguro Un estado en el cual todos los procesos pueden
ejecutar hasta el final sin encontrar un bloqueo
mutuo.
Estado inseguro Todo estado que no garantice que todos los
procesos puedan ejecutar hasta el final sin
encontrar un bloqueo mutuo.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Lgica del algoritmo del banquero


Cada vez que un proceso solicita recursos, se calcula cul sera
el estado resultante de otorgar dicha solicitud, y se otorga
siempre que:
No haya reclamo por ms discursos que los disponibles
Ningn proceso solicite (o tenga asignados) recursos por
encima de su reclamo
La suma de los recursos asignados por cada categora no
sea mayor a la cantidad de recursos disponibles en el
sistema para dicha categora

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Definiendo estados seguros


Un estado es seguro cuando hay una secuencia de procesos
(denominada secuencia segura) tal que:
1

Un proceso j puede necesariamente terminar su ejecucin


Incluso si solicitara todos los recursos que reserv en su
reclamo
Siempre debe haber suficientes recursos libres para
satisfacerlo

Un segundo proceso k de la secuencia puede terminar:


Si j termina y libera todos los recursos que tiene
Siempre que sumado a los recursos disponibles ahora,
con aquellos que liberara j, hay suficientes recursos libres

El i-simo proceso puede terminar si todos los procesos


anteriores terminan y liberan sus recursos.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Peor caso con el algoritmo del banquero

En el peor de los casos, esta secuencia segura nos llevara a


bloquear todas las solicitudes excepto las del proceso nico en
el rden presentado.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo
Asumiendo que tenemos slo una clase de recursos y nos
quedan dos instancias libres:
Proceso
A
B
C
1

2
3
4

Asignado
4
4
2

Reclamando
6
11
7

A puede terminar porque slo requiere dos instancias


adicionales
Terminado A, C puede recibir las 5 restantes que requiere
Terminados A y C, B puede satisfacer las 7
La secuencia A-C-B es segura.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo 2
Slo una clase de recursos, 2 instancias libres
Proceso
A
B
C
1
2

Asignado
4
4
2

Reclamado
6
11
9

A puede satisfacer su demanda


Pero una vez terminado A, no podemos asegurar las
necesidades ni de B ni de C
Este es un estado inseguro, por lo cual el algoritmo del
banquero no debe permitir llegar a l.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo 3: Paso por paso

Hasta dnde nos dejara avanzar el algoritmo del banquero?


Estado inicial:
8 recursos disponibles
Reclamos: P1 : 5, P2 : 5, P3 : 4

t1 :
t2 :
t3 :
t4 :

P1
P2
P3
P1

con 2, P2 con 1, P3 con 1


solicita 1
solicita 1
solicita 1

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Ejemplo 3: Paso por paso

Imagen: Samuel Oporto Daz

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Ejemplo 3: Paso por paso

Imagen: Samuel Oporto Daz

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo 3: Paso por paso


El algoritmo nos permite avanzar por t1 , t2 , t3
Uso efectivo de recursos del sistema: 14
Sobrecompromiso (overcommitment) ante los 8 recursos
reales

Al llegar a t4 , otorgar un recurso a P1 nos ubica en un


estado inseguro
Es imposible satisfacer el reclamo completo de P1 , P2 o
P3
Desde t3 , slo podemos otorgar recursos a P3
P1 y P2 pueden seguir ejecutando si no solicitan recursos

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Implementacin ejemplo (para una sla categora)

1
2
3
4
5
6
7
8
9
10

l = [1, 2, 3, 4, 5]; # Todos los procesos del sistema


s = []; # Secuencia segura
while ! l.empty? do
p = l.select {|id| asignado[id] - reclamado[id] >
libres}.first
raise Exception, Estado inseguro if p.nil?
libres += asignado[p]
l.delete(p)
s.push(p)
end
puts "La secuencia segura encontrada es: %s" % s

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Precisiones

En el ejemplo 2, es posible que ni B ni C requirieran ya


todos sus recursos reclamados
Pero el estado es inseguro.
El algoritmo del banquero, en el peor caso, puede tomar
O(n!)
Tpicamente toma O(n2 )

Hay refinamientos a este algoritmo que reducen su costo


de ejecucin
Puede ser llamado con muy alta frecuencia

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Precisiones

Es un algoritmo conservador: Evita entrar en estados


inseguros a pesar de que no lleve con certeza a un
bloqueo mutuo
Pero es la poltica ms liberal que evita los bloqueos sin
conocer rden y tiempo de necesidad de recursos.

Desventaja de todos los algoritmos basados en la evasin:


Requieren saber por anticipado los reclamos mximos
No siempre es posible con el modelo actual de
computacin

El SO y los Bloqueos mutuos

Prevencin

Evasin

ndice

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Deteccin y recuperacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Caracterstica bsica

Permite que ocurran los bloqueos, pero busca determinar si ha


ocurrido y actuar para eliminarlos.
A diferencia de la prevencin y la evasin, las cuatro
condiciones de Coffman pueden presentarse.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Funcionamiento bsico

Se ejecuta como una tarea peridica


Busca limitar el impacto de los bloqueos existentes en el
sistema
(Discutiremos al respecto ms adelante. . . )

Mantenemos una lista de recursos existentes, asignados y


solicitados
Eliminando lo obviamente resuelto, nos quedamos con lo
obviamente bloqueado

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Representacin con grafos dirigidos


Procesos con cuadrados
Recursos con crculos
Puede representarse una clase de recursos como un
crculo grande, conteniendo crculos pequeos indicando
recursos idnticos
Si un proceso puede solicitar un recurso especfico (y no
cualquiera de una categora), no son idnticos

Flecha de un recurso a un proceso: El recurso est


asignado al proceso.
Flecha de un proceso a un recurso: El proceso est
solicitando al recurso.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estrategia general
Tenemos la representacin completa de los recursos y
procesos en el sistema
Buscamos reducir la grfica, retirando los elementos que
no aportan informacin relevante:
1

Los procesos que no estn solicitando ni tienen asignado


un recurso
Para los procesos restantes: Si todos los recursos que
solicitan pueden ser concedidos (no estn concedidos a
otro), eliminamos al proceso y a todas sus flechas.
Repetimos cuantas veces sea posible

Si no quedan procesos en el grafo, no hay interbloqueos y


podemos continuar
Los procesos irreductibles estn en bloqueo mutuo.
Proceder segn la poltica del sistema

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo 1

Figura: Deteccin de ciclos denotando bloqueos: Grafo de procesos


y recursos en un momento dado

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Resolviendo el ejemplo 1

Reducimos por B, dado que actualmente no est


esperando a ningn recurso
Reducimos por A y F, dado que los recursos por los cuales
estn esperando quedaran libres en ausencia de B
Quedamos con un interbloqueo entre C, D y E, en torno a
los recursos 4, 5 y 7.

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Ejemplo 2

Figura: Ejemplo con categoras de recursos (Imgenes: Samuel


Oporto Daz)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Ejemplo 2

Figura: Resultado de reducir por P9

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Ejemplo 2

Figura: Resultado de reducir por P7

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Ejemplo 2

Figura: Resultado de reducir por P8

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

No todo ciclo es un bloqueo!

Figura: Al manejar categoras de recursos, no siempre un ciclo


implicar un bloqueo

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Bloqueado vs. bloqueando


Reducir un proceso no implica que este haya entregado
sus recursos
Slo que est en posibilidad de hacerlo
Puede haber inanicin por parte de cualquier proceso que
espera

Podra agregarse a este algoritmo una ponderacin por


tiempo excesivo de retencin
Pero causara muchos falsos positivos Muchos casos
de procesos finalizados sin necesidad!

Ahora. . . Una vez detectado el bloqueo, qu procede?

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Mtelos, luego viriga

Terminar a todos los procesos bloqueados


Tcnica ms sencilla y ms justa. . .
Para cierta definicin de justicia

Maximiza la prdida de informacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Retroceder al ltimo punto de control (checkpoint)

Slo cuando el sistema implementa esta funcionalidad


Slo cuando ninguno de los procesos depende de factores
externos
Retroceder en el tiempo, no llevara a un nuevo bloqueo?
Los bloqueos estn ligados al rden especfico de ejecucin
Probablemente otro orden especfico se salve del bloqueo
Y si no. . . Se vuelve una vez ms.
Tal vez, agregar un contador de intentos que cambie el
planificador

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Retroceder al ltimo punto de control (checkpoint)

Slo cuando el sistema implementa esta funcionalidad


Slo cuando ninguno de los procesos depende de factores
externos
Retroceder en el tiempo, no llevara a un nuevo bloqueo?
Los bloqueos estn ligados al rden especfico de ejecucin
Probablemente otro orden especfico se salve del bloqueo
Y si no. . . Se vuelve una vez ms.
Tal vez, agregar un contador de intentos que cambie el
planificador

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Terminacin selectiva / limitada

Terminar forzosamente, uno a uno (y no en bloque), a los


procesos bloqueados
Terminar a uno y re-evaluar el estado
Los restantes pueden continuar operando

Cmo elijo al desafortunado? Varias estrategias. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estrategias para elegir el proceso a terminar (1)

Los procesos ms sensibles para detener/relanzar: Los que


demandan garantas de tiempo real. Evitar penalizarlos.
Causar una menor prdida de trabajo. El que haya
consumido menor cantidad de procesador hasta el
momento.
Mayor tiempo restante estimado (si puedo estimar cunto
procesamiento queda pendiente)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Estrategias para elegir el proceso a terminar (2)

Menor nmero de recursos asignados hasta ahora (como


criterio de justicia: qu proceso est haciendo un uso
ms juicioso del sistema?)
Prioridad ms baja (cuando la hay)
Procesos con naturaleza repetible sin prdida de
informacin (aunque s de tiempo)
p.ej. es mejor interrupmir una compilacin que la
actualizacin de una BD

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Periodicidad del chequeo

Si buscamos bloqueos cada vez que se solicita un recurso,


es una sobrecarga administrativa demasiado grande
Con una periodicidad fija: Arriesga a que los procesos
pasen ms tiempo bloqueados ( 0,5t)
Cuando el nivel de uso del CPU baje de cierto porcentaje
Indica que hay un nivel elevado de procesos en espera
. . . Pero un sistema demasiado ocupado puede nunca
disparar esta condicin

Una estrategia combinada

El SO y los Bloqueos mutuos

Prevencin

Evasin

ndice

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Deteccin y recuperacin

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Frustraciones. . .

Les advert que este tema me resultaba frustrante


Hemos visto varios enfoques a cmo lidiar con la
presencia de bloqueos
Es un rea viva y activa de investigacin, y viene
avanzando desde los primeros das del multiprocesamiento
Sin embargo. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

Recapitulando: Conservadores y liberales

./ltxpng/deadlocks_conserv_lib.png

La triste realidad. . .

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El Algoritmo del avestruz

Mecanismo ms frecuente utilizado por los sistemas


operativos de propsito general
Ignorar las situaciones de bloqueo
Esconder la cabeza bajo tierra y esperar a que pasen
Esperar que su ocurrencia suficientemente poco frecuente
Esperar que el usuario detecte y resuelva el problema por
s slo

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

El por qu del avestruz


Las condiciones impeustas por las diversas estrategias son
casi imposibles de alcanzar
Conocimiento previo de requisitos insuficiente
Bloqueos originados fuera de nuestra esfera de accin
Recursos externos
Procesos representante
Estructuras a niveles superiores

Modelo de computacin tendiente al interactivo


En servidores: Programas (y personas!) dedicados al
monitoreo

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Cuestin de compromisos

Un sistema operativo de propsito general tiene que


funcionar para muy distintas situaciones
Es muy difcil plantear esquemas aptos para toda
necesidad

Debe tomarse una decisin entre lo correcto y lo


conveniente
Un SO no debera permitir que hubiera bloqueos
Pero la inconveniencia a usuarios y programadores sera
demasiada

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Cuestin de programar defensivamente

El programador puede tomar ciertas medidas para evitar que


su programa caiga en situaciones de bloqueo
Solicitar recursos con llamadas no bloqueantes
Temporizadores y manejo de errores
Particularmente, notificar al usuario en caso de demoras o
fallas repetidas

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Aplicaciones de monitoreo en espacio de usuario

El monitoreo tambin ha cado hacia el terreno de las


aplicaciones
Brinda mayor flexibilidad
Aunque menos poder

Hay cientos de aplicaciones de monitoreo para todo tipo


de situaciones
Un monitor inteligente, adaptado para un servicio en
particular, puede detectar mejor situaciones anmalas (y
no slo bloqueos)

El SO y los Bloqueos mutuos

Prevencin

Evasin

Deteccin y recuperacin

La triste realidad. . .

Consideraciones finales

Qu es un recurso?
No slo cintas, impresoras, tarjetas de audio. . .
Tambin segmentos de memoria, tiempo de
procesamiento!
Y las estructuras lgicas creadas por el SO? Archivos,
semforos, monitores, . . .

You might also like