TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE NUEVO LEÓN
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE EDUCACIÓN A DISTANCIA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
TEMA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
Investigación de INTERBLOQUEO
Catedrático.
ING. Orlando Fernández
Presenta:
Diego Alonso Armas Frías
C20040769
Cd. Guadalupe, Nuevo León; a 31 de Agosto de 2022.
INTERBLOQUEO
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.
Esquema de funcionamiento normal
1.- Solicitud
2.- Uso Llamadas del sistema
3.- Liberación
¿ Como saber en qué estados están los recursos ?
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ó
El problema
Un conjunto de procesos bloqueados, cada uno de ellos esperando por
un recurso que retiene otro proceso de ese conjunto.
ningún proceso del conjunto puede avanzar q interbloqueo, bloqueo
mutuo, abrazo mortal (deadlock).
¿De quién es la culpa del interbloqueo?
Muchas veces, el interbloqueo no es responsabilidad de las aplicaciones,
sino del sistema de gestión de recursos
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)
Condiciones para el interbloqueo
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 se
encuentra esperando por recursos asignados a otros procesos.
No expropiación. Un recurso sólo puede ser liberado por el proceso que
lo retiene, voluntariamente.
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.
Prevención del interbloqueo
Retención y espera.
Hay que garantizar que un proceso no pueda quedar bloqueado si
retiene algún recurso. ¿Cómo conseguirlo?
el proceso tiene que pedir todos sus recursos de una vez, [Link]. antes de
empezar a ejecutarse n 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 pedirlo para poder solicitar otros recursos
En ambos caso puede que un proceso nunca se ejecute (inanició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
El proceso bloqueado tiene ahora que esperar por todos los recursos .
penaliza a los procesos que necesitan muchos recursos .
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
Evitación del interbloqueo:
algoritmo del banquero
Se trata de conceder los recursos sólo cuando no representen un riesgo
futuro de interbloqueo.
Lo procesos han de declarar por anticipado la cantidad máxima de
recursos que van a utilizar a lo largo de su vida.
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
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
2. si no se encuentra ningún proceso, 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
Terminación de procesos q matando a todos los procesos implicados
(drástico)
matando a uno de los procesos ¿cuál?
el que más recursos libere n el que menos tiempo lleve en ejecución...
retrocediendo la ejecución de algún proceso (rollback)
muy complicado de implementar y necesita que el programa esté
diseñado para que pueda retroceder
Expropiación de recursos Selección de la víctima ¿ Qué recursos y de
que procesos se expropian ? Retroceso
Si expropiamos un recurso de un proceso, ¿ qué hacemos con ese
proceso ?
En ambos casos (terminación de procesos o expropiación de recursos)
hay que tener cuidado de no provocar la inanición de procesos
LINK DEL VIDEO
[Link]
Reseña
El video la verdad se me hizo muy bueno , no se si porque ya había le
dio e investigado del tema pero además de decir todo lo que nos pidió
lo hace de una manera muy gráfica que ayuda a que sea mejor
entendido , en lo personal solo le agregaría un poco de mas información
a la recuperación de interbloqueo y a la detección de la misma .