Professional Documents
Culture Documents
Sistemas Operativos II
Sistemas Operativos II
os
Contenid
os
• Caracterización del interbloqueo
• Estrategias de tratamiento del
interbloqueo
• Métodos de prevención
• Métodos de evitación
• Detección del interbloqueo
• Recuperación tras un interbloqueo
Modelo del
sistema
◼◼El interbloqueo es un problema que afecta a
procesos concurrentes que utilizan recursos
en un sistema.
◼◼ 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.
Modelo del
sistema
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.
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
◼◼ Esquema de funcionamiento normal
1.- Solicitud
❑❑
Llamadas
❑❑ 2.- Uso
al
❑❑ 3.-
Sistema
Liberación
◼ ¿Como saber en qué estados están los recursos?
Libera(impresora) Libera(escáner)
Libera(escáner) Libera(impresora)
Grafo de asignación de
recursos
◼◼ Sirve para representar el estado de un sistema de asignación
de recursos. Muestra esta información:
❑❑ cuántos ejemplares hay de cada tipo de recurso
❑❑ los procesos activos en el sistema
espera asignación
·· ··
recurso proceso con un
·recurso
proceso con tres ejemplares
bloqueado con dos ejemplares recurso
asignado
Ejemplo de grafo de
P1, P2 y P3 están en asignación
interbloqueo
· ·
p1 p2 p3 p4
· ·
·
C
◼◼ Si en un sistema se produce una situación de
interbloqueo, entonces se cumplen
simultáneamente estas cuatro condiciones:
❑❑ Exclusión mutua. Los recursos no se pueden compartir.
❑❑ Retención y espera. Un proceso que retiene uno o varios recursos
❑❑el proceso tiene que pedir todos sus recursos de una vez, p.ej. antes
de empezar a ejecutarse
◼◼ Efecto negativo: muchos recursos retenidos pero no usados,
❑❑un proceso sólo puede solicitar recursos cuando no tiene ninguno
asignado
Efecto negativo: puede ocurrir que tengamos que liberar un recurso y volver a
◼◼
recursos
❑❑ penaliza a los procesos que necesitan muchos recursos
peor caso se pueden atender con lo que hay disponible más los recursos
poseídos por todos los procesos
P
j,j<i
◼◼ Sólo concedemos recursos si el estado resultante tras la petición es seguro
Algoritmo del
• Llamado también negativa
banquero
de asignación de recursos, el
algoritmo resuelve un problema planteado por Edsger Dijkstra.
• Existe un banco que tiene una reserva limitada de dinero a
prestar y clientes con línea de crédito. Un cliente pide dinero y
no hay garantía de que haga reposiciones hasta que saque la
cantidad máxima. El banco puede rechazar el préstamo si hay
riesgo de que no tenga fondos para prestar a otros clientes
• Viéndolo como Sistema Operativo, los clientes serían los
procesos, el dinero a prestar los recursos y el banquero el S.O.
Algoritmo del
banquero
Para este algoritmo es importante considerar los siguientes puntos:
• Estado. Es la asignación actual de los recursos a los procesos.
• Matriz demanda (o máximo necesario). Son las exigencias
máximas de recursos para cada proceso.
• Matriz asignación. Son las asignaciones actuales de recursos
para cada proceso.
• Vector disponible. Cantidad total de recursos sin asignar a los
procesos.
• Estado seguro. Es un estado en el que existe al menos un orden
en el que todos los procesos pueden ejecutar hasta el final sin
generar interbloqueo.
Algoritmo del banquero
(2)
◼◼¿ Qué significa una secuencia segura ?
❑❑ 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
❑❑ El primer proceso de la secuencia es uno que podría finalizar en ese
◼◼ A la derecha se tienen 5 procesos, cada uno tiene recursos de tipo A, B y C. En la primer columna de
asignados está la cantidad de recursos que el proceso ha obtenido a lo largo de un tiempo; en la segunda
columna de Máximo Necesario, están los recursos que tiene que obtener de cada tipo para comenzar a ser
ejecutado. Por ejemplo, el P0 no ha obtenido ningún recurso del tipo A, sólo 1 del tipo B y ninguno del tipo C,
y necesita para ejecutarse haber conseguido 7 del A, 5 del B y 3 del C.
El proceso 0 no está en estado seguro. Si se suman Asignados + Disponibles para cada uno de los recursos A, B y C, realmente no se alcanzan los Máximos
Requeridos. Entonces se va al proceso 1 y se trata de hacer lo mismo, sumar Asignados + Disponibles. Allí sí se tiene un ESTADO SEGURO, A con 5, B
con 3 y C con 2, y como se alcanza a llenar los Máximos, ese proceso se ejecuta.
Detección del
interbloqueo
◼◼ El interbloqueo se puede detectar comprobando si existe
una secuencia de terminación de procesos (similar a la sec.
segura):
❑❑ Sea L la lista de procesos del sistema y R el conjunto
de recursos disponibles
1. Buscar en L un proceso que puede continuar con los recursos
disponibles en R
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
recursos que retiene (los añadimos a R)
4. volver al paso 1
5. Si L no está vacía, hay interbloqueo
Recuperación del
interbloqueo
◼◼ Un sistema que pretenda recuperarse del
interbloqueo, debe invocar a un algoritmo de
detección cuando lo considere oportuno (ej.
periódicamente)
◼◼ Formas de intentar la recuperación:
❑❑ Terminación de procesos
❑❑ Expropiación de recursos
Recuperación del interbloqueo
(2)
◼◼ Terminación
de procesos
❑❑ matando a todos los procesos implicados
(drástico)
❑❑ matando a uno de los procesos ¿cuál?
• ❑❑ Retroceso
• ◼◼ Si
expropiamos un recurso de un proceso, ¿ qué
hacemos cen ese proceso ?
• ◼◼ En ambos casos (terminación de procesos o expropiación de recursos) hay que tener cuidado