PDF de programación - Tema 11: Interbloqueo sobre sistemas operativos

Imágen de pdf Tema 11: Interbloqueo sobre sistemas operativos

Tema 11: Interbloqueo sobre sistemas operativosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
569 visualizaciones desde el 23 de Febrero del 2018
638,0 KB
4 paginas
Creado hace 16a (01/01/2008)
Sistemas Operativos
Tema 11. Interbloqueo

© 1998-2008 José Miguel Santos – C. Rubén García - Alexis Quesada

Modelo del sistema

n  El interbloqueo es un problema que afecta a

procesos concurrentes que utilizan recursos en
un sistema.

n  Los procesos solicitan recursos al sistema y los
liberan cuando ya no los necesitan. Un recurso
puede estar disponible o bien asignado a algún
proceso.

1

3

Contenidos

n  Caracterización del interbloqueo
n  Estrategias de tratamiento del interbloqueo
n  Métodos de prevención
n  Métodos de evitación
n  Detección del interbloqueo
n  Recuperación tras un interbloqueo

2

Modelo del sistema

n  Ejemplares. Puede haber varios ejemplares de
un mismo tipo de recurso (ej. varias impresoras).
En este caso, cuando un proceso solicita un
recurso, se le concede cualquiera de los
ejemplares que esté disponible.

n  Si un proceso solicita un recurso que no tiene

ejemplares disponibles, el proceso queda
bloqueado, esperando hasta que se le asigna un
ejemplar.

Modelo del Sistema

El problema

n  Un conjunto de procesos bloqueados, cada uno de

ellos esperando por un recurso que retiene otro
proceso de ese conjunto.
q  ningún proceso del conjunto puede avanzar
q 

interbloqueo, bloqueo mutuo, abrazo mortal (deadlock).

n  Esquema de funcionamiento normal

q  1.- Solicitud
q  2.- Uso
q  3.- Liberación

Llamadas al

Sistema

n  ¿ Como saber en qué estados están los

recursos ?
q  Tabla de sistema podría registrar si cada recurso está
libre o asignado, y si un recurso está asignado, a qué
proceso se le asignó

5

4

6

1

¿De quién es la culpa del
interbloqueo?

n  Muchas veces, el interbloqueo no es responsabilidad

de las aplicaciones, sino del sistema de gestión de
recursos

n  Ejemplo: Los procesos A y B se pueden

interbloquear, aunque están escritos correctamente
Proceso A
Pide(escáner)
Pide(impresora)
usa impr. y escáner
Libera(impresora)
Libera(escáner)

Proceso B
Pide(impresora)
Pide(escáner)
usa impr. y escáner
Libera(escáner)
Libera(impresora)

Ejemplo de grafo de
asignación

P1, P2 y P3 están en interbloqueo

·

·

p1

p2

· ·

p3

p4

·

7

9

Grafo de asignación de recursos

n  Sirve para representar el estado de un sistema de
asignación de recursos. Muestra esta información:
q  cuántos ejemplares hay de cada tipo de recurso
q 
q  qué recursos están asignados y a qué proceso
q  qué procesos están bloqueados y por cuáles recursos

los procesos activos en el sistema

espera

··

asignación

···

proceso
bloqueado

recurso

con dos ejemplares

proceso con un
recurso asignado

recurso

con tres ejemplares

8

Condiciones para el
interbloqueo
n  Si en un sistema se produce una situación de

interbloqueo, entonces se cumplen simultáneamente
estas cuatro condiciones:
q  Exclusión mutua. Los recursos no se pueden compartir.
q  Retención y espera. Un proceso que retiene uno o varios

recursos se encuentra esperando por recursos asignados a otros
procesos.

q  No expropiación. Un recurso sólo puede ser liberado por el

proceso que lo retiene, voluntariamente.

q  Espera circular. Existe una serie de procesos en espera

{Po,P1,...Pn} en la que todo Pi espera por un recurso retenido
por Pi+1; y Pn espera por un recurso retenido por Po.

10

Tratamiento del interbloqueo

Prevención del interbloqueo

n  Garantizar que en el sistema nunca ocurren

interbloqueos
q  prevención: diseñar el sistema de manera que nunca se cumpla

alguna de las cuatro condiciones del interbloqueo.

q  evitación: tratar de no caer nunca en un estado de interbloqueo.

n  Permitir la aparición de interbloqueos y recuperarse

cuando ocurran
q  necesitamos un sistema de detección y un mecanismo de

recuperación

n  Se trata de eliminar la aparición de alguna de

las cuatro condiciones necesarias para el
interbloqueo.
q  Exclusión mutua. Depende de la naturaleza del

recurso, así que esta condición no se puede
eliminar.

n  No tratar el problema

q  si hay interbloqueos, el usuario tiene que intervenir

11

12

2

Prevención del interbloqueo (2)

Prevención del interbloqueo (3)

n  Retención y espera. Hay que garantizar que un

proceso no pueda quedar bloqueado si retiene algún
recurso. ¿Cómo conseguirlo?
q  el proceso tiene que pedir todos sus recursos de una vez, p.ej.

antes de empezar a ejecutarse
n  efecto negativo: muchos recursos retenidos pero no usados,
q  un proceso sólo puede solicitar recursos cuando no tiene

ninguno asignado
n  Efecto negativo: puede ocurrir que tengamos que liberar un recurso y

volver a pedirlo para poder solicitar otros recursos

q  En ambos caso puede que un proceso nunca se ejecute (inanición)

Prevención del interbloqueo (4)

n  Espera circular. Se puede evitar forzando un

orden en la petición de los recursos.
q  Cada recurso tiene asignado un número de orden
q  Los recursos se deben pedir en orden ascendente
q  Aconsejable: el orden de petición de los recursos se

establezca según el orden de uso normal de los
recursos de un sistema

q  Efectos negativo

n  se limita la libertad de escritura de código
n  se puede inducir a una mala utilización de los recursos

n  No expropiación. Permitir que el S.O. desasigne

recursos a un proceso bloqueado.
q  Si un proceso se bloquea por un recurso, los recursos retenidos

quedan a disposición de los procesos activos

q  El proceso bloqueado tiene ahora que esperar por todos los

recursos

q  penaliza a los procesos que necesitan muchos recursos
q  Es posible seguir este protocolo en recursos cuyo estado se
puede guardar fácilmente y después restaurarse (registros de
CPU, espacio de memoria, ...). Generalmente no puede
aplicarse a recursos tales como impresoras y unidades de cinta

13

14

Evitación del interbloqueo:
algoritmo del banquero
n  Se trata de conceder los recursos sólo cuando no representen

un riesgo futuro de interbloqueo.

n  Lo procesos han de declarar por anticipado la cantidad

máxima de recursos que van a utilizar a lo largo de su vida

n  Estado seguro: un estado en el cual no hay riesgo inminente

de interbloqueo. Un estado es seguro si en él podemos
encontrar una secuencia segura con todos los procesos del
sistema
{P1, P2, ...,PN} es una secuencia segura si los recursos que Pi
puede pedir en el peor caso se pueden atender con lo que hay
disponible más los recursos poseídos por todos los procesos
Pj,j<i

n  Sólo concedemos recursos si el estado resultante tras la

n 

petición es seguro

15

16

Algoritmo del banquero (2)

Algoritmo del banquero (3)

n  ¿ Qué significa una secuencia segura ?

q  Nos ponemos en el peor caso del sistema: que todos los

procesos soliciten al mismo tiempo el máximo de recursos a los
que tiene derecho

q  El primer proceso de la secuencia es uno que podría finalizar en

ese peor caso, con los recursos disponibles en el sistema

q  El segundo proceso es uno que puede finalizar con lo que hay

disponible más los recursos que liberaría el primer proceso

q  De la misma forma, los siguientes procesos pueden finalizar con

los recursos que han liberado los anteriores en la secuencia

q  Y si todos los procesos pueden terminar, es que no hay

interbloqueo

n  Cuando un proceso realiza una petición, el SO
calcula si tras conceder los recursos el sistema
pasa a un estado seguro
q  si el nuevo estado es seguro, se concede la petición
q  si el nuevo estado no es seguro, el proceso queda

bloqueado (aunque existan recursos suficientes para
atender la petición). La petición se concede cuando se
observa que no hay riesgo de interbloqueo

17

18

3

Algoritmo del banquero: ejemplo

Detección del interbloqueo

n  Dos recursos R1 y R2, con 5 y 6 ejemplares
n  En el instante actual quedan libres 1 y 1 ejemplares

Asignado

Máximo

Necesidades

Pa
Pb
Pc

1 0
1 3
2 2

2 2
3 4
3 2

1 2
2 1
1 0

n  El estado es seguro porque existe la secuencia segura {Pc, Pa, Pb}
n  ¿ Qué pasa si Pa pide un ejemplar de R1 y se lo damos ?

q  El sistema quedará en un estado inseguro

n  El interbloqueo se puede detectar comprobando si
existe una secuencia de terminación de procesos
(similar a la sec. segura):
q  Sea L la lista de procesos del sistema y R el conjunto de

recursos disponibles

recursos disponibles en R

1.  Buscar en L un proceso que puede continuar con los
2.  si no se encuentra ningún proceos, ir al paso 5
3.  suponer que P termina (lo retiramos de L) y que libera los
4.  volver al paso 1
5.  Si L no está vacía, hay interbloqueo

recursos que retiene (los añadimos a R)

19

20

Recuperación del interbloqueo

Recuperación del interbloqueo (2)

n  Un sistema que pretenda recuperarse del

interbloqueo, debe invocar a un algoritmo de
detección cuando lo considere oportuno (ej.
periódicamente)

n  Formas de intentar la recuperación:

q  Terminación de procesos
q  Expropiación de recursos

n  Terminación de procesos

q  matando a todos los procesos implicados (drástico)
q  matando a uno de los procesos ¿cuál?

n  el que más recursos libere
n  el que menos tiempo lleve en ejecución...

q  retrocediendo la ejecución de algún proceso (rollback)
n  muy complicado de implementar y necesita que el programa

esté diseñado para que pueda retroceder

21

22

Recuperación del interbloqueo (3)

n  Expropiación de recursos

q  Selección de la víctima

n  ¿ Qué recursos y de que procesos se expropian ?

q  Retroceso

n  Si expropiamos un recurso de un proceso, ¿ qué hacemos

con ese proceso ?

n  En ambos casos (terminación de procesos o

expropiación de recursos) hay que tener
cuidado de no provocar la inanición de procesos

23

4
  • Links de descarga
http://lwp-l.com/pdf8999

Comentarios de: Tema 11: Interbloqueo sobre sistemas operativos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad