0% encontró este documento útil (0 votos)
419 vistas9 páginas

Interbloqueo e Inanicion

El documento describe el problema del interbloqueo en sistemas operativos. El interbloqueo ocurre cuando un conjunto de procesos se encuentran bloqueados mutuamente, cada uno esperando un recurso que otro proceso en el conjunto está reteniendo. El documento explica las cuatro condiciones necesarias para que ocurra el interbloqueo y los métodos para prevenirlo, predecirlo y detectarlo.

Cargado por

Carlos Brito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
419 vistas9 páginas

Interbloqueo e Inanicion

El documento describe el problema del interbloqueo en sistemas operativos. El interbloqueo ocurre cuando un conjunto de procesos se encuentran bloqueados mutuamente, cada uno esperando un recurso que otro proceso en el conjunto está reteniendo. El documento explica las cuatro condiciones necesarias para que ocurra el interbloqueo y los métodos para prevenirlo, predecirlo y detectarlo.

Cargado por

Carlos Brito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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.

También podría gustarte