La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Contenido Introducción Tipos de recursos Modelo del sistema

Presentaciones similares


Presentación del tema: "Contenido Introducción Tipos de recursos Modelo del sistema"— Transcripción de la presentación:

0 Sistemas operativos: una visión aplicada Capítulo 6 Interbloqueos

1 Contenido Introducción Tipos de recursos Modelo del sistema
Definición y caracterización del interbloqueo Tratamiento del interbloqueo Detección y recuperación del interbloqueo Prevención del interbloqueo Predicción del interbloqueo Tratamiento del interbloqueo en los sistemas operativos Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

2 Introducción Procesos compiten por recursos y se comunican entre sí
S.O. proporciona mecanismos de comunicación y sicronización No basta: Conflicto entre necesidades de procesos puede causar bloqueo indefinido Interbloqueo (deadlock) Problema conocido y estudiado pero poca repercusión práctica Aparece en otras disciplinas informáticas (p.e. Bases de datos) Múltiples ejemplos de la vida cotidiana Carretera de 2 sentidos con puente donde sólo cabe 1 coche 2 personas llamándose por teléfono mutuamente Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

3 Caracterización Interbloqueo se caracteriza por la existencia de:
Cjto. de entidades activas que usan un cjto. de recursos Entidades activas Procesos y threads Recursos Físicos: UCPs, memoria, dispositivos. etc. Lógicos: archivos, semáforos, mutex, cerrojos, mensajes, señales, etc. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

4 Tipos de recursos Reutilizables o consumibles
¿Sigue existiendo después de usarse? Uso dedicado o compartido ¿Pueden usarlo varios procesos simultáneamente? Con uno o múltiples ejemplares ¿Existen múltiples ejemplares del mismo recurso? Expropiables o no expropiables ¿Es factible expropiar el recurso cuando se está usando? Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

5 Recursos reutilizables
Todos los recursos físicos Algunos lógicos (archivos, cerrojos, mutex, ...) Ejecución con interbloqueo P1: solicita(C) P2: solicita(I) P2: solicita(C)  bloqueo P1: solicita(I)  interbloqueo Primer ejemplo de interbloqueo Proceso P1 Proceso P2 Solicita(C) Solicita(I) Solicita(I) Solicita(C) Uso de rec. Uso de rec. Libera(I) Libera(C) Libera(C) Libera(I) Ejecución sin interbloqueo P1: solicita(C) P1: solicita(I) P2: solicita(I)  bloqueo P1: libera(I) P2: solicita(C)  bloqueo P1: libera(C) P2: libera(C) P2: libera(I) Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

6 Recursos consumibles Proceso genera recurso y otro lo consume
Recursos asociados a comunicación y sincronización mensajes, señales, semáforos, ... Ejemplo: Interbloqueo inevitable (“estructural”) Proceso P1 Proceso P2 Proceso P3 Enviar(P3) Recibir(P1) Recibir(P2) Recibir(P3) Enviar(P3) Enviar(P1) Enviar(P2) Recibir(P1) Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

7 Recursos reutilizables y consumibles
En general, procesos usan ambos tipos de recursos No hay solución general eficiente Exposición se centra en recursos reutilizables Ejemplo mixto: Proceso P1 Proceso P2 Solicita(C) Solicita(C) Enviar(P2) Recibir(P1) Libera(C) Libera(C) Si P2 obtiene C  interbloqueo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

8 Uso dedicado o compartido
Recursos compartidos no afectan a interbloqueos Puede haber recursos con ambos tipos de uso En solicitud debe indicarse el modo de uso deseado Si compartido: concedido si no se está usando en m. exclusivo Si exclusivo: concedido si no se está usando Por ejemplo, cerrojos sobre archivos No tratados en la exposición Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

9 Con uno o múltiples ejemplares
Modelo general: N unidades de cada recurso Solicitud de varias unidades de un recurso Ejemplos: sistema con varias impresoras, la memoria, ... Ejemplo: Memoria disponible: 450KB Proceso P1 Proceso P2 Solicita(100K) Solicita(200K) Solicita(100K) Solicita(100K) Solicita(100K) Si P1 satisface 2 primeras y P2 satisface 1ª  interbloqueo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

10 Expropiables o no expropiables
Algunas soluciones basadas en expropiación: Salvar estado de recurso y asignarlo a otro proceso No siempre posible eficientemente: p.ej. plotter Ejemplos de recursos expropiables: Procesador: Cambio de proceso = Expropiación Estado de procesador copiado a BCP Memoria virtual: Reemplazo = Expropiación Contenido de página copiado a swap Ejemplo de interbloqueo potencial: P1 listo (espera UCP) y tiene asignada cinta P2 en ejecución (tiene UCP) solicita cinta ¿Cómo lo resuelve el S.O.? Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

11 Modelo del sistema Conjunto de procesos o threads
Conjunto de recursos de uso exclusivo (N unidades/recurso) Relaciones entre procesos y recursos: Asignación: nº unidades asignadas a cada proceso Pendientes: nº unid. pedidas pero no asignadas por proceso Primitivas genéricas: Solicitud (R1[U1],...,Rn[Un]) U1 unidades del recurso 1, U2 del recurso 2, etc. Si todos disponibles, se concederá Si no, se bloquea proceso sin reservar ningún recurso Liberación (R1[U1],...,Rn[Un]) Puede causar desbloqueo de otros procesos Carácter dinámico del sistema: procesos y recursos aparecen y desaparecen Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

12 Representación mediante grafo de asignación
Nodos {N}: Procesos {P} + Recursos {R} Asociado a cada Ri valor que indica nº de unidades existentes Aristas {A}: Asignación (RiPj): Pj tiene asignada 1 unidad de Ri Unidades asignadas de Ri  Unidades existentes Solicitud (PiRj): Pi tiene pedida y no concedida 1 unid. de Rj Solicitud de recursos de Pi: ¿Todos disponibles? Sí: Por cada Rj tantas aristas RjPi como unidades solicitadas No: Por cada Rj tantas PiRj como unidades solicitadas Cuando disponibles se cambian a RjPi Liberación de recursos de Pi: Eliminar aristas RjPi correspondientes Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

13 Ejemplo 1 de representación con grafo
Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2) P1: solicita(R1[2])  solicita 2 unidades P2: solicita(R2[1]) P2: solicita(R1[1])  se bloquea P3: solicita(R2[1]) P1: solicita(R2[1], R3[2])  se bloquea Grafo resultante: N={P1,P2,P3,R1(2),R2(3),R3(2)} A={R1P1,R1P1,R2P2,P2R1,R2P3, R2P3,P1R2,P1R3,P1R3} Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

14 Representación gráfica del ejemplo
Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

15 Ejemplo 2 de representación con grafo (1unid/rec)
P1: solicita(R1) P2: solicita(R2) P2: solicita(R1)  bl. P3: solicita(R2)  bl. P4: solicita(R3) P1: solicita(R2) N={P1,P2,P3,P4,R1(1),R2(1),R3(1)} A={R1P1,R2P2,P2R1,P3R2,R3P4,P1R2} Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

16 Representación matricial
Rec. existentes E (dim p): Ei cuántas unid de Ri hay en el sistema Asignación A (dim pxr): A[i,j] unid de Rj asignadas a Pi Solicitud S (dim pxr):S[i,j] unid de Rj pedidas y no concedidas a Pi Rec. disponibles D (dim p): Di cuántas unid de Ri hay disponibles Deducible de E y A, su uso facilita descripción de algoritmos Solicitud de recursos de Pi: ¿Todos disponibles? Sí: Por cada Rj, A[i,j]= A[i,j]+ Uj (unidades solicitadas de Rj) No: Por cada Rj, S[i,j]= S[i,j]+ Uj Cuando disponibles se resta Uj de S[i,j] y se suma a A[i,j] Liberación de recursos de Pi: Por cada Rj, A[i,j]= A[i,j]- Uj (unidades solicitadas de Rj) Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

17 Ejemplo 1 de representación matricial
Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2) P1: solicita(R1[2])  solicita 2 unidades P2: solicita(R2[1]) P2: solicita(R1[1])  se bloquea P3: solicita(R2[1]) P1: solicita(R2[1], R3[2])  se bloquea Matriz resultante: 2 0 0 0 1 2 A= 0 1 0 S= 1 0 0 E=[2 3 2] D=[0 0 2] 0 2 0 0 0 0 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

18 Ejemplo 2 de representación matricial (1unid/rec)
Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2) P1: solicita(R1) P2: solicita(R2) P2: solicita(R1)  se bloquea P3: solicita(R2)  se bloquea P4: solicita(R3) P1: solicita(R2) Matriz resultante: 1 0 0 0 1 0 A= 0 1 0 S= 1 0 0 E=[1 1 1] D=[0 0 0] 0 0 0 0 1 0 0 0 1 0 0 0 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

19 Definición de interbloqueo
Cjto. de procesos tal que cada uno está esperando un recurso que sólo puede liberar (generar, si consumibles) otro proceso del cjto No es requisito bloqueo: puede haber espera activa Condiciones para interbloqueo (Coffman): Exclusión mutua. Recursos de uso exclusivo. Retención y espera. Mientras proc. espera por recursos pedidos, mantiene los ya asignados. Sin expropiación. No se expropian recursos asignados. Espera circular. Existe lista circular de procesos tal que cada proceso espera por recurso que tiene siguiente proceso. Son necesarias pero no suficientes: Ejemp. 1 y 2 las cumplen pero sólo en el 2º hay interbloqueo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

20 Condición necesaria y suficiente
Idea base: Visión “optimista” del estado actual Proceso no bloqueado debería devolver recursos en el futuro Recursos liberados desbloquearían otros procesos Esos procesos liberarían recursos desbloqueando a otros, etc. Reducción del sistema por proceso P Si se pueden satisfacer necesidades de P con rec. disponibles Nuevo estado hipotético donde P ha liberado todos sus rec. Condición necesaria y suficiente:  secuencia de reducciones desde estado actual que incluya a todos los procesos Si no: procesos no incluidos están en interbloqueo Sistemas con restricciones son más sencillos: Si 1 unid/rec  Cond. de Coffman necesarias y suficientes Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

21 Tratamiento del interbloqueo
Detección y recuperación. Dejar que se produzca, detectarlo y recuperarse del mismo. Coste de algoritmo + pérdida del trabajo realizado Prevención. Asegura que no ocurre fijando reglas para pedir rec. Infrautilización de rec.: se deben pedir antes de necesitarlos Predicción. Asegura que no ocurre basándose en conocimiento de necesidades futuras de los procesos Dificultad de conocer futuro Coste de algoritmo + Infrautilización de recursos Ignorar el problema: Utilizada por la mayoría de los SS.OO. Dada la baja probabilidad de que ocurra y el coste que conlleva evitarlo (infrautilización y/o coste de algoritmos). Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

22 Detección del interbloqueo
Aplicación del concepto de reducción Esta presentación se limita a alg. para rep. matricial Para sistemas con restricciones, algoritmos más sencillos: Si 1 unid/rec  Cond. de Coffman necesarias y suficientes Espera circular  ciclo en grafo Sólo necesario comprobar que no ciclo en grafo O(pr)) Ejemplo 2 tiene interbloqueo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

23 Algoritmo de detección
Reducción por Pi: Si S[i]D (recs. disponibles satisfacen necesidades) D= D+A[i](devolver los recursos asignados) Algoritmo de complejidad O(p2r): S=; Repetir { Buscar Pi no incluido en S tal que S[i]D; Si Encontrado { Reducir por Pi: D = D + A[i] Añadir Pi a S; } } Mientras (Encontrado) Si (S==P) No hay interbloqueo Si no: Procesos en P-S están en interbloqueo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

24 Ejemplo de aplicación del algoritmo (1/3)
Matriz inicial: 2 0 0 0 1 2 A= 0 1 0 S= 1 0 0 E=[2 3 2] D=[0 0 2] 0 2 0 0 0 0 Primera iteración: Estado inicial: S= Red. por P3(S[3]D) D=D+A[3]=[022] S={P3} Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

25 Ejemplo de aplicación del algoritmo (2/3)
Segunda iteración (D=[022]): Red. por P1: S[1]D([012][022]) D=D+A[1]=[022]+[200]=[222] S={P3,P1} Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

26 Ejemplo de aplicación del algoritmo (3/3)
Tercera iteración (D=[222]): Red. por P2: S[2]D([100][222]) D=D+A[2]=[222]+[010]=[232] S={P3,P1,P2} Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

27 Activación del algoritmo de detección
¿Con qué frecuencia se ejecuta? Algoritmo tiene coste pero, cuanto antes de detecte, mejor Supervisión continua: Por cada petición que no puede satisfacerse Puede tener coste demasiado alto Supervisión periódica: Guiada por tiempo y/o por detección de síntomas P.ej. Uso de UCP < umbral con alto grado de multiprogram. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

28 Recuperación del interbloqueo
Una vez detectado, hay que eliminarlo Seleccionar sucesivamente procesos implicados y quitarles sus recursos hasta eliminar interbloqueo Alternativas: “Retroceder en el tiempo” ejecución de proceso Requiere S.O. con mecanismo de puntos de recuperación Abortar proceso perdiendo todo su trabajo realizado Criterio de selección de procesos basado en: prioridad, nº de recursos asignados al proc., t. de ejecución,... Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

29 Prevención del interbloqueo
Estrategias basadas en que no se cumpla una cond. necesaria “Exclusión mutua” y “sin expropiación” no se pueden relajar Dependen de carácter intrínseco del recurso Las otras dos condiciones son más prometedoras Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

30 Prevención basada en evitar “retención y espera”
Sólo pueden solicitarse recursos si no se tiene ninguno asignado Infrautilización t1: solicita(A,B,C) (t1,t2): sólo utiliza A (t2,t3): utiliza A y B t3: Libera(A) (t3,t4): sólo utiliza B (t4,t5): utiliza B y C t5: Libera(B) (t5,t6): sólo utiliza C t6: Libera(C) t7: solicita(D) (t7,t8): sólo utiliza D t8: Libera(D) Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

31 Prevención basada en evitar “espera circular”
Método de las peticiones ordenadas: Se establece un orden total de los recursos del sistema Restricción: Proceso sólo puede pedir recursos en orden Conlleva infrautilización En ejemplo anterior: Si A<B<C<D  Proceso pide justo cuando necesita Si A>B>C>D  Proceso pide todo en t1 Se deben ordenar recursos según orden más frecuente de uso Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

32 Predicción del interbloqueo
Existencia de “punto de no retorno” Proceso P1 Proceso P2 Solicita(C) Solicita(I) Solicita(I) Solicita(C) Uso de rec. Uso de rec. Libera(I) Libera(C) Libera(C) Libera(I) Si P1 y P2 obtienen su primer recurso habrá interbloqueo Se evita conociendo a priori plan de peticiones de cada proceso No concede 1 de esas peticiones aunque recursos disponibles El sistema debe estar siempre en un “estado seguro” Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

33 Concepto de estado seguro
“Aunque todos los procesos solicitasen en este momento sus necesidades máximas, existe un orden secuencial de ejecución tal que cada proceso pueda obtenerlas” Similar al análisis “futuro” de algoritmo de detección Pero usando necesidades máx en vez de peticiones actuales E. seguro: No interbl. usando como solicitudes necesidades máx. Conocimiento a priori no da información sobre uso real Proceso P1 Proceso P2 Solicita(C) Solicita(I) Libera(C) Solicita(C) Solicita(I) Libera(C) Libera(I) Libera(I) Estado inseguro  condición necesaria pero no suficiente Ejemplo: no hay interbloqueo y sí estado inseguro Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

34 Algoritmo de predicción
Esta presentación se limita a alg. para rep. matricial Algoritmo del banquero de Dijkstra (1965) Requiere nueva estr. de datos: Matriz de necesidad N (dim pxr): N[i,j] cuántas unid adicionales de Rj puede necesitar Pi Es la diferencia entre necesidades máx. y unidades asignadas Refleja tanto solicitudes no concedidas como futuras Matriz S queda recogida en N y no la usa el algoritmo Inicialmente contiene necesidades máx. de cada proceso Solicitud de recursos de Pi: ¿Todos disponibles? Sí: Por cada Rj, A[i,j]= A[i,j]+ Uj y N[i,j]= N[i,j]- Uj No: Sólo se actualiza S (que no se usa en algoritmo) Cuando disponibles, A[i,j]= A[i,j]+ Uj y N[i,j]= N[i,j]- Uj Liberación de recursos de Pi: Por cada Rj, A[i,j]= A[i,j]- Uj y N[i,j]= N[i,j]+ Uj Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

35 Algoritmo del banquero
Determina si estado es seguro O(p2r) S=; Repetir { Buscar Pi no incluido en S tal que N[i]D; Si Encontrado { Reducir por Pi: D = D + A[i] Añadir Pi a S; } } Mientras (Encontrado) Si (S==P) El estado es seguro Si no: El estado no es seguro Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

36 Estrategia de predicción
Cuando proceso realiza petición de rec. que están disponibles: Se calcula nuevo estado provisional transformando A y N Se aplica algoritmo del banquero sobre nuevo estado Si es seguro, se asignan recursos y nuevo estado se hace permanente Si no, se bloquea al proceso sin asignarle los recursos y se restaura el estado previo Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

37 Ejemplo de algoritmo del banquero (1/3)
Estado actual del sistema (es seguro): 1 1 0 3 0 2 A= 0 1 2 N= 2 2 0 D=[2 1 2] 1 0 0 1 1 2 Secuencia de peticiones: P3 solicita 1 unidad de R3 P2 solicita 1 unidad de R1 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

38 Ejemplo de algoritmo del banquero (2/3)
P3 solicita 1 unidad de R3: Nuevo estado provisional 1 1 0 3 0 2 A= 0 1 2 N= 2 2 0 D=[2 1 1] 1 0 1 1 1 1 ¿Estado seguro? S= P3: ya que N[3]D D=D+A[3]=[312]  S={P3} P1: ya que N[1]D  D=D+A[1]=[422] S={P3 ,P1} P2: ya que N[2]DD=D+A[2]=[434] S={P3,P1,P2} Se acepta petición: estado provisional  estado del sistema Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

39 Ejemplo de algoritmo del banquero (3/3)
P2 solicita 1 unidad de R1: Nuevo estado provisional 1 1 0 3 0 2 A= 1 1 2 N= 1 2 0 D=[1 1 1] 1 0 1 1 1 1 ¿Estado seguro? S= P3: ya que N[3]D D=D+A[3]=[212]  S={P3} No hay Pi tal que N[i]D  Estado inseguro No se acepta petición: Se bloquea al proceso y se restaura estado del sistema Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

40 Limitaciones de estrategias de predicción
Conocimiento a priori de necesidades máximas Difícil de obtener Basado en peor caso posible Necesidades máximas no expresan uso real de recursos Infrautilización de recursos Niegan uso de recurso aunque esté libre Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

41 Tratamiento del interbloqueo en los SS.OO.
Mayoría lo ignora o no da una solución general Distinción entre dos tipos de recursos: Recursos internos (propios del S.O.) Usados por un proceso en modo sistema Uso restringido a ejecución de una llamada Ej. semáforo interno para acceder a t. de procesos o buffer Interbloqueo puede causar colapso del sistema Recursos de usuario Usados por un proceso en modo usuario Uso durante tiempo impredecible Ej. dispositivo dedicado o semáforo de aplicación Interbloqueo afecta a procesos y recursos involucrados Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

42 Tratamiento del interbloqueo en los SS.OO.
Tratamiento de recursos internos Código del S.O. es algo que apenas se modifica Se puede estudiar a priori uso de recursos Interbloqueo  error de programación de S.O. Uso de estrategias de prevención es adecuado Dado que tiempo de uso es breve y acotado Tratamiento de recursos de usuario Código de procesos que usan recursos es impredecible No hay tratamiento general para todos los recursos Prevención  Infrautilización Predicción  Dificultad de conocer información a priori Detección y recuperación  Demasiada sobrecarga Puede usarse para un único recurso P.ej. En 4.4BSD se usa para cerrojos sobre archivos Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez


Descargar ppt "Contenido Introducción Tipos de recursos Modelo del sistema"

Presentaciones similares


Anuncios Google