Sistemas operativos una visin aplicada Captulo 6 Interbloqueos
Sistemas operativos: una visión aplicada Capítulo 6 Interbloqueos
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Recursos reutilizables • Todos los recursos físicos • Algunos lógicos (archivos, cerrojos, mutex, . . . ) Primer ejemplo de interbloqueo Proceso P 1 Proceso P 2 Solicita(C) Solicita(I) Solicita(C) Uso de rec. Libera(I) Libera(C) Libera(I) Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos Ejecución con interbloqueo P 1: solicita(C) P 2: solicita(I) P 2: solicita(C) bloqueo P 1: solicita(I) Ejecución sin interbloqueo P 1: solicita(C) P 1: solicita(I) P 2: solicita(I) bloqueo P 1: libera(I) P 2: solicita(C) bloqueo P 1: libera(C) P 2: libera(I) © J. Carretero, F. García, P.
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 P 1 Enviar(P 3) Recibir(P 3) Enviar(P 2) Sistemas operativos: una visión aplicada de Miguel, F. Pérez Proceso P 2 Recibir(P 1) Enviar(P 3) Proceso P 3 Recibir(P 2) Enviar(P 1) Recibir(P 1) Sistemas Distribuidos © J. Carretero, F. García, P.
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 P 1 Solicita(C) Enviar(P 2) Libera(C) Proceso P 2 Solicita(C) Recibir(P 1) Libera(C) Si P 2 obtiene C interbloqueo Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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: 450 KB Proceso P 1 Solicita(100 K) Proceso P 2 Solicita(200 K) Solicita(100 K) Si P 1 satisface 2 primeras y P 2 satisface 1ª interbloqueo Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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: • P 1 listo (espera UCP) y tiene asignada cinta • P 2 en ejecución (tiene UCP) solicita cinta • ¿Cómo lo resuelve el S. O. ? Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 (R 1[U 1], . . . , Rn[Un]) • U 1 unidades del recurso 1, U 2 del recurso 2, etc. • Si todos disponibles, se concederá • Si no, se bloquea proceso sin reservar ningún recurso – Liberación (R 1[U 1], . . . , 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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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: Sistemas Distribuidos – Eliminar aristas Rj Pi correspondientes Sistemas operativos: una visión aplicada de Miguel, F. Pérez © J. Carretero, F. García, P.
Ejemplo 1 de representación con grafo • Ejecución de 3 procesos con 3 recursos R 1 (2), R 2 (3) y R 3 (2) 1. P 1: solicita(R 1[2]) solicita 2 unidades 2. P 2: solicita(R 2[1]) 3. P 2: solicita(R 1[1]) se bloquea 4. P 3: solicita(R 2[1]) 5. P 3: solicita(R 2[1]) 6. P 1: solicita(R 2[1], R 3[2]) se bloquea • Grafo resultante: N={P 1, P 2, P 3, R 1(2), R 2(3), R 3(2)} A={R 1 P 1, R 2 P 2, P 2 R 1, R 2 P 3, P 1 R 2, P 1 R 3} Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Representación gráfica del ejemplo Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo 2 de representación con grafo (1 unid/rec) 1. P 1: solicita(R 1) 2. P 2: solicita(R 2) 3. P 2: solicita(R 1) bl. 4. P 3: solicita(R 2) bl. 5. P 4: solicita(R 3) 6. P 1: solicita(R 2) N={P 1, P 2, P 3, P 4, R 1(1), R 2(1), R 3(1)} A={R 1 P 1, R 2 P 2, P 2 R 1, P 3 R 2, R 3 P 4, P 1 R 2} Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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: Sistemas Distribuidos © J. Carretero, F. García, P. – Por cada R , A[i, j]= A[i, j]- U (unidades solicitadas de R ) Sistemas operativos: una visión aplicada de Miguel, F. Pérez
Ejemplo 1 de representación matricial • Ejecución de 3 procesos con 3 recursos R 1 (2), R 2 (3) y R 3 (2) 1. P 1: solicita(R 1[2]) solicita 2 unidades 2. P 2: solicita(R 2[1]) 3. P 2: solicita(R 1[1]) se bloquea 4. P 3: solicita(R 2[1]) 5. P 3: solicita(R 2[1]) 6. P 1: solicita(R 2[1], R 3[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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo 2 de representación matricial (1 unid/rec) • Ejecución de 3 procesos con 3 recursos R 1 (2), R 2 (3) y R 3 (2) 1. 2. 3. 4. 5. 6. P 1: solicita(R 1) P 2: solicita(R 2) P 2: solicita(R 1) se bloquea P 3: solicita(R 2) se bloquea P 4: solicita(R 3) P 1: solicita(R 2) • Matriz resultante: 1 0 0 A= 0 1 0 S= 0 0 0 1 Sistemas operativos: una visión aplicada de Miguel, F. Pérez 0 1 0 1 0 0 0 E=[1 1 1] D=[0 0 0] Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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(p 2 r): 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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo de aplicación del algoritmo (1/3) • Matriz inicial: 2 0 0 A= 0 1 0 0 2 0 0 1 2 S= 1 0 0 E=[2 3 2] D=[0 0 2] 0 0 0 Primera iteración: –Estado inicial: S= –Red. por P 3(S[3] D) D=D+A[3]=[022] –S={P 3} Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo de aplicación del algoritmo (2/3) • Segunda iteración (D=[022]): – Red. por P 1: S[1] D([012] [022]) D=D+A[1]=[022]+[200]=[222] – S={P 3, P 1} Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo de aplicación del algoritmo (3/3) • Tercera iteración (D=[222]): – Red. por P 2: S[2] D([100] [222]) D=D+A[2]=[222]+[010]=[232] – S={P 3, P 1, P 2} Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Prevención basada en evitar “retención y espera” • Sólo pueden solicitarse recursos si no se tiene ninguno asignado – Infrautilización t 1: solicita(A, B, C) (t 1, t 2): sólo utiliza A (t 2, t 3): utiliza A y B t 3: Libera(A) (t 3, t 4): sólo utiliza B (t 4, t 5): utiliza B y C t 5: Libera(B) (t 5, t 6): sólo utiliza C t 6: Libera(C) t 7: solicita(D) (t 7, t 8): sólo utiliza D t 8: Libera(D) Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 t 1 • Se deben ordenar recursos según orden más frecuente de uso Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Predicción del interbloqueo • Existencia de “punto de no retorno” Proceso P 1 Proceso P 2 Solicita(C) Solicita(I) Solicita(C) Uso de rec. Libera(I) Libera(C) y. Libera(C) P 2 obtienen su primer recurso Libera(I) • Si P 1 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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 P 1 Proceso P 2 Solicita(C) Solicita(I) Libera(C) Solicita(C) Ejemplo: no hay interbloqueo y Solicita(I) sí estado inseguro Libera(C) Libera(I) Sistemas operativos: una visión aplicada Sistemas Distribuidos © J. Carretero, F. García, P. de Miguel, F. Pérez Libera(I) Estado inseguro condición necesaria pero no suficiente
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Algoritmo del banquero • Determina si estado es seguro O(p 2 r) 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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 1 0 0 1 1 2 • Secuencia de peticiones: – P 3 solicita 1 unidad de R 3 – P 2 solicita 1 unidad de R 1 Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos D=[2 1 2] © J. Carretero, F. García, P.
Ejemplo de algoritmo del banquero (2/3) • P 3 solicita 1 unidad de R 3: 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? 1. S= 2. P 3: ya que N[3] D D=D+A[3]=[312] S={P 3} 3. P 1: ya que N[1] D D=D+A[1]=[422] S={P 3 , P 1} 4. P 2: ya que N[2] D D=D+A[2]=[434] S={P 3, P 1, P 2} Se acepta petición: estado provisional estado del sistema Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
Ejemplo de algoritmo del banquero (3/3) • P 2 solicita 1 unidad de R 1: 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? 1. S= 2. P 3: ya que N[3] D D=D+A[3]=[212] S={P 3} 3. 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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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 de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
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. 4 BSD se usa para cerrojos sobre archivos Sistemas operativos: una visión aplicada de Miguel, F. Pérez Sistemas Distribuidos © J. Carretero, F. García, P.
- Slides: 43