Bloqueo Mutuo
En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que tomó.

Ejemplo de representación de Bloqueo Mutuo en grafos de alocación de recursos con dos procesos A y B, y dos recursos R1 y R2.
Casos de Bloqueo

Bloqueo de Archivos

Bloqueo Bases de Datos
Bloqueo de Dispositivos

Bloqueo de asignación de dispositivos

Bloqueo de Discos
Bloqueo de Red
Terminos Basicos
Evasion: Impedir que se haga un interbloqueo explotando información sobre las necesidades de los procesos. Denegando solicitudes que se podrían conceder para no depender de la dinámica de ejecución de los procesos.
Exclusion Mutua: un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
Inanicion: Es una condición en la cual un proceso es demorado indefinidamente porque siempre se le da preferencia a otros procesos.
Retencion de Recurso: Un proceso puede retener unos recursos asignados mientras espera que se le asignen otros.
Sincronizacion de procesos: es la transmisión y recepción de señales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos.
PREGUNTAS DE REFUERZO DIAPOSITIVA No 35
Bloqueo Mutuo y Estrategias de Control
BLOQUEO MUTUO Y APLAZAMIENTO INDEFINIDO
Cuando el proceso de un sistema de multiprogramación espera en balde a que se presente un evento específico, se dice que se encuentra en un estado de bloqueado mutuo. En un bloqueo del sistema, pueden ser uno o varios los procesos que se encuentran en un bloqueo mutuo.
Los bloqueos mutuos pueden aparecer en muchas formas. Si a un proceso se le asigna la tarea de esperar a que ocurra un evento y el sistema no incluye providencias para señalar la ocurrencia de dicho evento, habrá un bloqueo mutuo con un solo proceso.
Es muy difícil detectar los bloqueos mutuos de esta naturaleza. La mayor parte de los bloqueos mutuos en los sistemas reales implican una competencia entre varios procesos por varios recursos.
BLOQUEO MUTUO SIMPLE DE RECURSOS
La mayor parte de los bloqueos mutuos de los sistemas operativos se presentan a causa de una competencia normal por los recursos dedicados, es decir, recursos que solo pueden ser utilizados por un usuario a la vez; se conocen también como recursos reutilizables en serie.
Un bloqueo muto simple. Este sistema está bloqueado porque cada proceso tiene un recurso solicitado por el otro proceso y ninguno de ellos está dispuesto a liberar el recurso que tiene.
BLOQUEO MUTUO EN SISTEMA DE SPOOL
Los sistemas de spool son procesos al bloqueo mutuo. Un sistema de spool se utiliza para mejorar la producción del sistema haciendo que un programa sea independiente de la baja velocidad de operación de dispositivos tales como las impresoras.
Una manera de reducir la posibilidad de bloqueo mutuo en los sistemas de spool es reservar un espacio mucho mayor para los archivos de spool que es considerado indispensable.
APLAZAMIENTO INDEFINIDO
Tal situación se conoce con varios nombres, entre los que se incluyen aplazamiento indefinido, bloqueo indefinido e inanición, y puede resultar tan peligrosa como un bloqueo mutuo.
El aplazamiento indefinido puede ocurrir debido a predisposiciones en las políticas de planificación de recursos del sistema.
CONCEPTOS DE RECURSOS
Un sistema operativo es ante todo un administrador de recursos. Se encarga de la asignación de un amplio conjunto de recursos de varios tipos. La gran variedad de los tipos de recursos es una de las razones del interés que despiertan los sistemas operativos.
Algunos recursos son no apropiables y no pueden arrebatarse al proceso al que han sido asignados. Por ejemplo, las unidades de cinta se asignan a un proceso en particular por periodos de varios minutos u horas. Mientras la unidad de cinta permanece a un proceso y nadie puede arrebatarla a ese proceso para dársela a otro.
El código que no se puede modificar mientras se usa se le llama reentrante. El código que se puede modificar, pero que vuelve a su forma inicial cada vez que se utiliza, se llama reutilizable en serie.
CONDICIONES NECESARIAS PARA EL BLOQUEO MUTUO
Coffman, Elphick y Shoshani, establecen que deben darse las siguientes cuatro condiciones necesarias para que un bloqueo mutuo.
Los procesos exigen un control exclusivo de los recursos que necesitan (condición de exclusión mutua)
Los procesos mantienen la posesión de los recursos ya asignados a ellos mientras esperan recursos adicionales (condición de espera).
Los recursos no pueden arrebatarse a los procesos a los cuales están asignados hasta que termine su utilización (condición de no apropiación).
Existe una cadena circular de procesos en la cual cada proceso tiene uno o más recursos que son requeridos por el siguiente proceso en la cadena (condición de espera circular).
AREAS PRINCIPALES EN LA INVESTIGACION DEL BLOQUEO MUTUO
Los resultados de la investigación sobre el bloqueo mutuo han sido “satisfactorios” en cuanto a que se han encontrado métodos limpios y rápidos para manejar la mayoría de los problemas comunes. En principio existen cuatro grandes áreas de interés en la investigación sobre el bloqueo mutuo: prevención, técnicas para evitarlo, detección y recuperación.
Si a un proceso le asigna la tarea de esperar a que ocurra un evento y el sistema no incluye providencias para señalar la ocurrencia de dicho evento, habrá un bloqueo mutuo con un solo
proceso. Es muy difícil detectar los bloqueos mutuos de esta naturaleza.
proceso. Es muy difícil detectar los bloqueos mutuos de esta naturaleza.
La mayor parte de los bloqueos mutuos en los sistemas reales implican una
competencia entre varios procesos por varios recursos.
competencia entre varios procesos por varios recursos.
La mayor parte de los bloqueos mutuos de los sistemas operativos se
presentan a causa de una competencia normal por los recursos dedicados
es decir, recursos que solo pueden ser utilizados por un usuario a la vez;
se conoce también como recursos reutilizables en serie.
presentan a causa de una competencia normal por los recursos dedicados
es decir, recursos que solo pueden ser utilizados por un usuario a la vez;
se conoce también como recursos reutilizables en serie.
Bloqueos Mutuos en una Red
Las redes usan lo que se denomina buffer. El buffer es un espacio igual que el spool, pero reside en la memoria principal y no en el disco duro. En un ejemplo tenemos 7 computadoras conectadas entre sí que pueden enviarse mensajes como las flechas indican en la figura siguiente:
Al llenarse ambas colas de salida en C1 y C2, con mensajes destinados respectivamente a C2 y a C1 obtenemos un bloqueo mutuo ya que ninguna de las dos puede enviar mensajes. Además como las colas no se vacían no pueden recibir tampoco mensajes de ninguna otra computadora, por lo que todo el sistema se paraliza.
Términos Basicos
Proceso Demonio: Un daemon servicio o programa residente es un tipo especial de proceso informático no interactivo, es decir, que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario. Este tipo de programas continua en el sistema, es decir, que puede ser ejecutado en forma persistente o reiniciado si se intenta matar el proceso dependiendo de configuración del demonio y políticas del sistema. La palabra daemon viene de las siglas en ingles D.A.E.MON (Disk And Execution Monitor).
Competencia: Las competencias digitales son un conjunto de conocimientos, capacidades, destrezas y habilidades, en conjunción con valores y actitudes, para la utilización estratégica de la información, y para alcanzar objetivos de conocimiento tácito y explícito, en contextos y con herramientas propias de las tecnologías digitales.
Semaforos: Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS.
Spooling:En el campo de la Informática, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer (un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo.
No hay comentarios:
Publicar un comentario