Interbloqueos en Sistemas Operativos: Detección, Prevención y Recuperación

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 8,54 KB

Interbloqueos en Sistemas Operativos

Parbegin/Parend

Parbegin/parend: es una estructura para indicar el paralelismo, indican el comienzo y final de una ejecución en paralelo. Proposiciones:

  • Una proposición indicando que la ejecución secuencial debe ser dividida entre varias secuencias de ejecución en paralelo.

Su forma general (Dijkstra) se muestra a continuación:

parbegin Proposición1; proposicion2; Proposición n; parend

Exclusión Mutua

Exclusión mutua: se da cuando cada proceso que esté accediendo al dato compartido impide a todos los demás hacer lo mismo al mismo tiempo. Se aplica cuando un proceso accede al dato compartido, cuando los procesos ejecutan operaciones que no estén en conflicto se les permite proceder de forma concurrente.

Secciones Críticas

Secciones Críticas: es cuando un proceso está accediendo a datos compartidos. Cuando un proceso está en una sección crítica:

  • Todos los demás procesos son excluidos de sus propias secciones críticas.
  • Los demás procesos pueden continuar su ejecución fuera de sus secciones críticas. Cuando un proceso abandona su sección crítica, entonces debe permitírsele proceder a otro proceso que espera entrar en su propia sección crítica.
  • Estado especial asignado a un proceso. El proceso tiene acceso exclusivo a los datos compartidos, y todos los demás procesos que necesitan acceder a esos datos permanecen en espera.
  • Un programa no debe bloquearse dentro de su sección crítica, y las secciones críticas deben ser codificadas con todo cuidado.
  • Y termina, tanto de forma voluntaria como involuntaria, entonces, al realizar su limpieza de terminación, el sistema operativo debe liberar la exclusión mutua para que otros procesos puedan entrar en sus secciones críticas.

Deadlock (Interbloqueo)

Deadlock (interbloqueo): es cuando el proceso está esperando por un evento determinado que no va a ocurrir. En el interbloqueo de un sistema están en situación hermética uno o más procesos.

REVENGE: PROCEDURE OPTIONS(MAIN,TASK); WAIT(EVENTO); END REVENGE;

Interbloqueo de Tráfico

La norma más habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que está a su derecha. Esta norma funciona sí solo hay dos o tres coches en el cruce. Por ejemplo, si solo llegan al cruce los coches del norte y del oeste, el coche del norte esperará hasta que el del oeste pase. Sin embargo, si los cuatro coches llegan al mismo tiempo cada uno se abstendrá de entrar en el cruce, provocando interbloqueo. Si todos los coches ignoran las normas y entran (con cuidado) en el cruce, cada coche obtendrá un recurso (un cuadrante) pero no podrá continuar porque el segundo recurso que necesita ya ha sido invadido por otro coche. De nuevo, se tiene interbloqueo.

Interbloqueo de un Recurso Simple

Muchos de los interbloqueos que tienen lugar en un sistema operativo se desarrollan debido a la contención normal de los recursos dedicados (es decir, recursos que pueden ser utilizados por un usuario a la vez, algunas veces se denominan recursos utilizables en serie).

  • Pueden ser utilizados por un solo usuario a la vez.
  • Cada proceso está esperando por el otro para liberar uno de los recursos.
  • El recurso retenido no será liberado hasta que el otro proceso usuario libere su recurso.
  • Este último proceso usuario no liberará su recurso retenido hasta que el primer proceso usuario libere su recurso retenido.
  • Se produce una espera circular

Detección del Bloqueo

Detección del bloqueo: consiste en determinar si existe o no un bloqueo identificando qué procesos y recursos están en el bloqueo. Cualquier proceso que forme parte de un ciclo está bloqueado; si no existen ciclos, el sistema no está bloqueado.

Un Problema Relacionado: Postergación Indefinida

En una situación del sistema que mantiene los procesos mientras que la asignación de recursos procesa la planificación de decisiones. Se origina por el sesgamiento de la política de planificación de recursos de un sistema.

Evitar P.I se aplica el envejecimiento que aumenta la prioridad de un proceso mientras espera por un recurso.

Interbloqueo en Sistemas de Spool

Son utilizados para incrementar la capacidad de ejecución del sistema, al desasociar un programa de la lenta velocidad de los dispositivos de operación.

  • Los sistemas de spool suelen ser propensos al interbloqueo.
  • Para acelerar la ejecución las líneas de cada salida son enviadas a un dispositivo más rápido, una unidad de disco, donde se almacenan temporalmente hasta que puedan ser impresas.
  • Varios trabajos parcialmente completos que generan líneas de impresión pueden interbloquearse si el espacio disponible se llena antes de completar los trabajos.
  • Desenredarse o recuperarse de tal interbloqueo puede implicar el reinicio del sistema con la pérdida de todo el trabajo hasta entonces realizado.
  • Si el sistema se bloquea de tal manera que deje al operador en control, entonces un modo de recuperación menos drástico puede ser el perder uno o más trabajos, hasta disponer de espacio suficiente en el archivo de spool para que los trabajos restantes puedan llegar a su terminación.
  • Cuando un sistema operativo es generado por el programador del sistema, se especifica la cantidad de espacio disponible para los archivos spool.
  • Forma de reducir la probabilidad de interbloqueos es proporcionar un espacio considerablemente mayor para los archivos de lo que se prevé necesario.
  • La solución más común es la de limitar los spoolers para que no lean más trabajos cuando los archivos de spool se saturan, 75 por ciento de su capacidad.
  • Esto puede reducir la capacidad de ejecución del sistema, pero es el precio que hay que pagar por reducir la probabilidad de ocurrencia de interbloqueos.
  • Los sistemas actuales son mucho más sofisticados. Permitir que la impresión comience antes de terminarse un trabajo, de manera que un archivo de spool lleno, o casi lleno, pueda ser vaciado o despejado en cierta medida aunque un trabajo se encuentre todavía en ejecución.
  • En muchos sistemas, la asignación del espacio del spool se ha hecho más dinámica de forma que si el espacio existente ha empezado a llenarse, pueda disponerse de más espacio.

Cuatro Condiciones Necesarias para el Interbloqueo

Coffman, Elphick y Shoshani establecieron cuatro condiciones para que se produzca un interbloqueo:

  • Los procesos reclaman control exclusivo de los recursos que piden (condición de exclusión mutua).
  • Los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales (condición de espera por).
  • Los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización (condición de no apropiatividad).
  • Existe una cadena circular de procesos que mantiene a uno o más recursos requeridos por el siguiente proceso de la cadena (condición de espera circular).

Recuperación del Interbloqueo

Son varios los factores que dificultan la recuperación del interbloqueo:

  • En primer lugar, puede no estar claro si el sistema se ha bloqueado o no.
  • Medios pobres para suspender un proceso por tiempo indefinido y reanudarlo más tarde.
  • Aunque existan medios efectivos suspensión/reanudación, estos implicarán una sobrecarga considerable y requieren atención de un operador.
  • Recuperarse de un interbloqueo modesto implica cantidad razonable de trabajo; un interbloqueo a gran escala requiere una enorme cantidad de trabajo.

Los Procesos Pueden ser Retirados de Acuerdo con un Orden de Prioridades

  • Las prioridades de los procesos bloqueados pueden no existir, así es que el operador deberá tomar una decisión arbitraria.
  • Las prioridades pueden ser incorrectas, o un poco confusas debido a consideraciones especiales, como en la planificación a plazo fijo, en el cual algunos procesos de prioridad relativa baja, tienen una prioridad momentánea alta a causa de una fecha tope inminente.
  • La decisión óptima de cuáles procesos retirar puede requerir de un esfuerzo considerable para determinarla.

Entradas relacionadas: