SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
INTERBLOQUEO
Es un problema que afecta a procesos concurrentes que utilizan recursos
en un sistema.
El esquema de interacción procesos-recursos es el siguiente:
● Un proceso, a través de una llamada al sistema, solicita recursos.
● Usa esos recursos, en caso de que estén disponibles.
● A través de una llamada al sistema, el proceso libera los recursos cuando
ya no los necesita.
Se muestra Ejemplo:
Considera dos procesos y dos recursos. Supón que cada proceso necesita
acceder a ambos recursos para llevar a cabo una parte de su función. Puede
suceder que el sistema operativo asigne R1 a P1 y R2 a P2. Cada proceso está
esperando uno de los dos recursos. Ninguno liberará el recurso que posee hasta
que adquiera el otro y realice su tarea.
Para entender mejor debemos entender el modelo del sistema:
● Un sistema consta de un número finito de recursos que son distribuidos
entre un número de procesos que compiten por ellos.
● Puede haber varios ejemplares de un mismo recurso, en ese 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.
● Una tabla del sistema registra cuando un recurso está libre o asignado y en
ese caso, a qué proceso se le asignó.
¿COMO ES EL PROBLEMA DEL INTERBLOQUEO?
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
Es una situación en donde un conjunto de procesos se encuentra bloqueados,
cada uno de ellos esperando por un recurso que retiene otro proceso de ese
conjunto.
Y lo que ocurre es que ningún proceso del conjunto puede avanzar, Interbloqueo,
bloqueo mutuo, abrazo mortal (deadlock).
La gestión del interbloqueo no es responsabilidad de las aplicaciones, sino del
sistema de gestión de recursos.
TIPOS DE RECURSOS
Recursos reutilizables:
● Pueden ser usados por un proceso y no se agotan con el uso.
● Los procesos solicitan, usan y liberan los recursos para que posteriormente
otros procesos los reutilicen.
● Ejemplos: Procesadores, impresoras, dispositivos de E/S, memorias
principal y secundaria, archivos, DDBB y semáforos.
Recursos consumibles:
● Pueden ser producidos (creados) y consumidos (destruidos) por un
proceso.
● Cuando un proceso adquiere un recurso éste deja de existir.
● Ejemplos: Interrupciones, señales, mensajes e información en buffers de
E/S.
GRAFO DE ASIGNACIÓN DE RECURSOS
Este sirve para describir el interbloqueo, consta de un conjunto de vértices y
un conjunto de flechas. Los vértices son procesos y recursos, las flechas pueden
ser de asignación (R j →P i ), indican que el recurso j se asignó al proceso i, o
también pueden ser de solicitud (P i →R j ), indican que el proceso i solicita el
recurso j y las Instancias que son número de ejemplares que hay de cada recurso.
Ejemplo:
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
• P = {P1, P2, P3}
• R = {R1, R2, R3, R4}
• F = {P1R1, P2R3, R1P2, R2P2, R2P1, R3P3}
• Instancias:
• 1 de R1 •1 de R3
• 2 de R2 • 3 de R4.
Estado de los procesos:
● P1 posee una instancia del recurso R2 y espera por una de R1.
● P2 tiene asignada una instancia de R1, una instancia de R2 y espera por
una de R3.
● P3 tiene asignada una instancia de R3.
Si en el grafo no existen ciclos, ningún proceso del sistema está en bloqueo
mutuo. En el ejemplo anterior no hay interbloqueo.
Ejemplo 2:
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
En este ejemplo P1, P2 y P3 están n interbloqueo.
CONDICIONES EN LAS QUE SE PRESENTA EL INTERBLOQUEO
El interbloqueo se da si se cumplen las cuatro condiciones:
1. Exclusión mutua: Sólo un proceso puede usar un recurso cada vez. Si
otro proceso solicita ese recurso deberá esperar a que se libere el recurso.
2. Retención y espera: Un proceso retiene unos recursos mientras espera
que se le asignen otros.
3. No expropiación: Un proceso no puede ser forzado a abandonar un
recurso que retiene.
4. Espera circular: Existe una cadena cerrada de procesos {P0, P1, ..., Pn},
cada uno de los cuales retiene, al menos, un recurso que necesita el
siguiente proceso de la cadena (P0 espera por P1, P1 por P2, P2 por P3,
..., Pn por P0).
TRATAMIENTO DEL INTERBLOQUEO
Para garantizar que no ocurra nunca en el sistema:
● Prevención: Asegura que no ocurre fijando reglas.
Infrautiliza recursos: se deben pedir antes de necesitarlos.
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
● Predicción: Asegura que no ocurre basándose en conocimiento de
necesidades futuras de los procesos.
Dificultad de conocimiento de evolución futura.
Coste de algoritmo + infrautilización de recursos.
Detección y recuperación: Se detecta y se recupera.
● Coste de algoritmo + pérdida de trabajo realizado.
Ignorar el problema: Utilizado por la mayoría de los SO.
● Dada la baja probabilidad de que ocurra y el coste que conlleva
evitarlo (infrautilización y/o coste de algoritmos).
PREVENCIÓN DEL INTERBLOQUEO
1. Tratando de eliminar la aparición de alguna de las cuatro condiciones
necesarias para el interbloqueo. Exclusión mutua: Depende de la
naturaleza del recurso, así que no se puede eliminar.
2. Retención y espera: Hay que garantizar que un proceso no pueda quedar
bloqueado si retiene algún recurso ¿cómo conseguirlo?
● El proceso pide todos los recursos de una vez ([Link]. 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 pedirlo para poder solicitar otros recursos. En ambos
casos puede darse inanición (un proceso no se ejecuta nunca).
3. No expropiación: Permitir que el SO desasigne recursos a un proceso
bloqueado.
● 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.
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
● 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.
4. Espera circular: Se puede evitar forzando un orden en la petición de
recursos.
● Cada recurso tiene asignado un número de orden.
● Los recursos se deben pedir en orden ascendente.
● Aconsejable: que el orden de petición de los recursos se establezca
según el orden de uso normal de los recursos de un sistema.
● Efecto negativo: Se limita la libertad de escritura de código y se puede
inducir a una mala utilización de los recursos.
PREDICCIÓN DEL INTERBLOQUEO
Se trata de conceder los recursos sólo cuando no representen un riesgo
potencial de interbloqueo. además, se necesita conocer las peticiones futuras de
recursos: Los procesos han de declarar por anticipado la cantidad máxima de
recursos que van a utilizar a lo largo de su vida. Los procesos son independientes,
no hay condiciones de sincronización.
Hay dos enfoques para la predicción del interbloqueo: No iniciar un proceso
si sus demandas pueden llevar al interbloqueo y no conceder una solicitud de
incrementar los recursos de un proceso si esta asignación puede llevar al
interbloqueo.
Concepto de estado seguro: El estado de un sistema viene dado por la
asignación actual de recursos a los procesos. Pueden existir dos tipos de estado:
● Estado seguro: estado en el que existe, al menos, una secuencia de
asignación de recursos a los procesos que no lleva al interbloqueo.
● Estado inseguro: estado que no es seguro.
Sólo concedemos recursos si el estado resultante tras la petición es seguro.
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
Algoritmo del banquero: Esta basado en la negativa de asignación de
recursos. {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 disponibles más los
recursos poseídos por todos los procesos P j,j<i .
Funcionamiento:
● El peor caso: que todos los procesos soliciten a la vez el máximo de
recursos a los que tienen derecho.
● El primer proceso de la secuencia podría finalizar con los recursos
disponibles en el sistema.
● El segundo podría finalizar con los disponibles más los que libera el
proceso 1 y así sucesivamente.
● Si todos los procesos finalizan ⇒ ⇒ no hay interbloqueo.
DETECCIÓN DEL INTERBLOQUEO
La detección del interbloqueo no limita el acceso a los recursos ni restringen las
acciones de los procesos. Ahora se conceden los recursos que los procesos
necesiten siempre que sea posible. El interbloqueo se puede detectar
comprobando si existe una secuencia de terminación de procesos:
Sean C los procesos del sistema y R los recursos disponibles.
1. Buscar en C un proceso que puede continuar con los R.
2. Si no se encuentra ningún proceso ir al paso 5.
3. Suponer que un proceso termina (lo retiramos de C) y que libera los
recursos que retiene (los añadimos a R).
4. Volver al paso 1.
5. Si C está vacío, 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 (de manera más o menos
periódica).
Las formas de intentar la recuperación son:
● Terminación de procesos.
● Expropiación de recursos.
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
Terminación de procesos
● Abortando a todos los procesos implicados (muy drástico).
Efecto negativo: se pierde el trabajo previamente realizado.
● Abortando a uno de los procesos ¿cuál?
El que más recursos libere.
El que menos tiempo lleve en ejecución.
● Retrocediendo la ejecución de algún proceso.
Efecto negativo: 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 qué procesos se expropian?
● Retroceso: Si expropiamos a un recurso de un proceso ¿qué hacemos con
ese proceso?.
● Orden de los criterios de selección para expropiación de recursos:
1. Menor tiempo ya consumido en el procesador.
2. Menor número de salidas.
3. Menor tiempo restante estimado.
4. Menor número total de recursos ya asignados.
5. Prioridad más baja.
INANICIÓN
Para los dos casos de intento de recuperación del interbloqueo (terminación de
procesos o expropiación de recursos) hay que tener cuidado de no provocar la
inanición de procesos.
¿Qué es la inanición? Supón tres procesos que acceden periódicamente a un
recurso.
Considera que P1 posee el recurso y que P2 y P3 están esperando. Cuando P1
haya ejecutado su sección crítica tanto P2 como P3 podrán solicitar el recurso.
Supón que le le concede el acceso a P3 y que, antes de que termine su sección
SISTEMAS OPERATIVOS LAPSO 2021-2
ESTUDIANTE JOELDRI SANCHEZ 26001180
crítica, P1 solicita acceso de nuevo y así sucesivamente, se puede llegar a una
situación en la que P2 nunca accede al recurso.