Interrupciones, un mal imposible de eliminar.

Los interbloqueos son comunes, pero no tanto, en los sistemas operativos de hoy en día. Existen cuatro características que nos ayudan a determinar si se trata de un interbloqueo y 4 para poder tomar acciones cuando éstos sucedan. Una interrupción consiste en que dos o más procesos estén bloqueados en espera de los recursos que cada uno tiene. Esto es, proceso A tiene ocupada la impresora, pero necesita la grabadora de CD; proceso B tiene ocupada la grabadora de CD y necesita la impresora para terminar su tarea. Este proceso es infinito y jamás podrá interrumpirse a menos que el sistema operativo tome acciones o ellos mismos. 

La definición formal de un interbloqueo es la siguiente: Un conjunto de procesos se encuentra en un interbloqueo  si cada proceso en el conjunto está esperando un evento que sólo puede ser ocasionado por otro proceso en el conjunto.

Las condiciones para que se de un interbloqueo de recursos son las siguientes 4:

  1. Condición de exclusión mutua. Cada recurso se asigna en un momento dado a sólo un proceso, o está disponible.
  2. Condición de contención y espera. Los procesos que actualmente contienen recursos que se les otorgaron antes pueden solicitar nuevos recursos.
  3. Condición no apropiativa. Los recursos otorgados previamente no se pueden quitar a un proceso por la fuerza. Deben ser liberados de manera explícita por el proceso que los contiene.
  4. Condición de espera circular. Debe de haber una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso contenido por el siguiente miembro de la cadena.
Nota: Si alguno de los puntos anteriores no estuviera presente, no es posible que ocurra una interrupción de recursos.
Las acciones a seguir en un interbloqueo son:

  1. Sólo ignorar el problema. Tal vez si usted lo ignora, él lo ignorará a usted.
  2. Detección y recuperación. Dejar que ocurran los interbloqueos, detectarlos y tomar una acción.
  3. Evitarlos de forma dinámica mediante la asignación cuidadosa de recursos.
  4. Prevención, al evitar estructuralmente una de las cuatro condiciones requeridas.



Comentarios

Entradas populares de este blog

Análisis de conexiones TIME_WAIT

Agregar un usuario a un grupo secundario

Desencriptar passwords AES y DES en WebLogic 10