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
1
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
2
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
3
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
4
© J. Carretero, F. García, P. de Miguel, F. Pérez
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)
Sistemas operativos: una visión aplicada
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)
5
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
Enviar(P3)
Recibir(P3)
Enviar(P2)
Sistemas operativos: una visión aplicada
Proceso P2
Recibir(P1)
Enviar(P3)
6
Proceso P3
Recibir(P2)
Enviar(P1)
Recibir(P1)
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
Solicita(C)
Enviar(P2)
Libera(C)
Proceso P2
Solicita(C)
Recibir(P1)
Libera(C)
Si P2 obtiene C  interbloqueo
Sistemas operativos: una visión aplicada
7
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
8
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
Solicita(100K)
Solicita(100K)
Solicita(100K)
Proceso P2
Solicita(200K)
Solicita(100K)
Si P1 satisface 2 primeras y P2 satisface 1ª  interbloqueo
Sistemas operativos: una visión aplicada
9
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
10
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
11
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
12
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo 1 de representación con grafo
•
Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2)
1. P1: solicita(R1[2])
 solicita 2 unidades
2. P2: solicita(R2[1])
3. P2: solicita(R1[1])
 se bloquea
4. P3: solicita(R2[1])
5. P3: solicita(R2[1])
6. 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
13
© J. Carretero, F. García, P. de Miguel, F. Pérez
Representación gráfica del ejemplo
P2
P1
6
3
2
1
R1
Sistemas operativos: una visión aplicada
R2
14
P3
4
5
R3
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo 2 de representación con grafo (1unid/rec)
1.
2.
3.
4.
5.
6.
P1: solicita(R1)
P2: solicita(R2)
P2: solicita(R1)  bl.
P3: solicita(R2)  bl.
P4: solicita(R3)
P1: solicita(R2)
P1
P2
P3
P4
6
3
1
2
R1
5
4
R2
R3
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
15
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
16
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo 1 de representación matricial
• Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2)
1.P1: solicita(R1[2])
 solicita 2 unidades
2.P2: solicita(R2[1])
3.P2: solicita(R1[1])
 se bloquea
4.P3: solicita(R2[1])
5.P3: solicita(R2[1])
6.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
17
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo 2 de representación matricial (1unid/rec)
•
Ejecución de 3 procesos con 3 recursos R1 (2), R2 (3) y R3 (2)
1.
2.
3.
4.
5.
6.
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
A=
0 1 0 S=
0 0 0
0 0 1
Sistemas operativos: una visión aplicada
0
1
0
0
1
0
1
0
0
0
0
0
E=[1 1 1] D=[0 0 0]
18
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
19
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
20
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
21
© J. Carretero, F. García, P. de Miguel, F. Pérez
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))
P1
P2
P3
P4
6
3
1
2
5
4
Ejemplo 2 tiene interbloqueo
R1
Sistemas operativos: una visión aplicada
22
R2
R3
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
23
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
P1
P2
P3
Primera iteración:
–Estado inicial: S=
–Red. por P3(S[3]D)
D=D+A[3]=[022]
–S={P3}
R1
Sistemas operativos: una visión aplicada
24
R2
R3
© J. Carretero, F. García, P. de Miguel, F. Pérez
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}
P1
R1
Sistemas operativos: una visión aplicada
P2
R2
25
P3
R3
© J. Carretero, F. García, P. de Miguel, F. Pérez
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}
P1
R1
Sistemas operativos: una visión aplicada
P2
P3
R2
R3
26
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
27
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
28
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
29
© J. Carretero, F. García, P. de Miguel, F. Pérez
Prevención basada en evitar “retención y espera”
REC URSO S
• 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
tiem p o
A
B
C
D
t1
t2
t3
t4
t5
t6
t7
t8
30
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
31
© J. Carretero, F. García, P. de Miguel, F. Pérez
Predicción del interbloqueo
• Existencia de “punto de no retorno”
Proceso P1
Solicita(C)
Solicita(I)
Uso de rec.
Libera(I)
Libera(C)
Proceso P2
Solicita(I)
Solicita(C)
Uso de rec.
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
32
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
Solicita(C)
Libera(C)
Ejemplo: no hay interbloqueo y Solicita(I)
Libera(I)
sí estado inseguro
Estado inseguro  condición
necesaria pero no suficiente
Sistemas operativos: una visión aplicada
33
Proceso P2
Solicita(I)
Solicita(C)
Libera(C)
Libera(I)
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
34
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
35
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
36
© J. Carretero, F. García, P. de Miguel, F. Pérez
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:
– P3 solicita 1 unidad de R3
– P2 solicita 1 unidad de R1
Sistemas operativos: una visión aplicada
37
D=[2 1 2]
© J. Carretero, F. García, P. de Miguel, F. Pérez
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?
1. S=
2. P3: ya que N[3]D D=D+A[3]=[312]  S={P3}
3. P1: ya que N[1]D  D=D+A[1]=[422] S={P3 ,P1}
4. 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
38
© J. Carretero, F. García, P. de Miguel, F. Pérez
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?
1. S=
2. P3: ya que N[3]D D=D+A[3]=[212]  S={P3}
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
39
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
40
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
41
© J. Carretero, F. García, P. de Miguel, F. Pérez
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
42
© J. Carretero, F. García, P. de Miguel, F. Pérez
Descargar

PPT - Laboratorio SS.OO.