¿Qué es interbloqueo o punto muerto?
La definición de interbloqueo, en un sentido amplio, es un estado de inactividad en el que no se puede progresar porque los recursos necesarios para que un proceso continúe están siendo retenidos por otro proceso, que a su vez está esperando que los recursos sean retenidos por otro, lo que provoca una reacción en cadena. donde no se avanza. En un sistema operativo de computadora, el interbloqueo es muy similar; es un estado de inactividad cuando un sistema está esperando que un proceso libere los recursos necesarios para que otro proceso se realice con éxito. Esto hace que el propio sistema se «bloquee», impidiendo su funcionamiento. Esto eventualmente puede conducir a una condición llamada «inanición», donde no hay recursos disponibles para ningún proceso. Deadlock no es necesariamente solo un término usado para los sistemas operativos, pero ahí es donde encuentra su uso más común.
Condiciones de Coffman
Las condiciones de Coffman son las cuatro condiciones necesarias y suficientes que un sistema debe cumplir para que exista la posibilidad de un punto muerto. Si estas cuatro condiciones se cumplen simultáneamente, se puede diagnosticar y tratar un interbloqueo. Estas cuatro condiciones son exclusión mutua, espera circular, mantener y esperar, y sin derecho preferente. Es importante tener en cuenta que evitar cualquiera de estas cuatro condiciones evitará que su sistema entre en punto muerto.
- La exclusión mutua ocurre cuando un proceso usa un recurso y lo retiene, no permitiendo que ningún otro proceso activo lo use.
- La espera circular ocurre cuando un proceso está esperando un recurso que está en manos de otro proceso, que a su vez está esperando un recurso en manos de otro, y así sucesivamente hasta que regresa al primer proceso, lo que hace que el sistema se bloquee y haga sin progreso.
- Retener y esperar se produce cuando un proceso utiliza un recurso y solicita uno o varios recursos que ya están siendo utilizados por otros recursos.
- No se produce preferencia cuando un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene. Si la preferencia , o la asignación de una cantidad específica de recursos para un proceso, está presente, entonces el proceso se ve obligado a renunciar a cualquier recurso que sea necesario para el siguiente proceso, lo que evita el punto muerto.
Ejemplos de interbloqueo
Tal vez la forma más fácilmente reconocible de interbloqueo es el embotellamiento de tráfico. Múltiples filas de autos están compitiendo por espacio en la carretera y la oportunidad de cruzar una intersección, pero se ha vuelto tan atascado que no hay espacio libre para posibles bloqueos alrededor. Esto hace que intersecciones enteras o incluso múltiples intersecciones se detengan por completo. El tráfico solo puede fluir en una sola dirección, lo que significa que no hay a dónde ir una vez que el tráfico se ha detenido. Sin embargo, si el automóvil al final de cada línea de tráfico decide retroceder, esto libera espacio para que otros automóviles hagan lo mismo y, por lo tanto, se resuelve el embotellamiento. Otro ejemplo real de interbloqueo es el uso de una sola vía por varios trenes. Digamos que varias pistas convergen en una; hay un tren en cada vía individual, que conduce a la única vía. Todos los trenes están detenidos, esperando que otro se vaya, aunque ninguno de ellos se mueve. Este es un ejemplo de interbloqueo porque el recurso, la vía del tren, se mantiene en un estado de limbo ya que cada tren espera a que otro avance para poder continuar.
Detección de interbloqueo
Cuando se trata de detectar y tratar interbloqueos dentro de un sistema informático, un gráfico de asignación de recursoses quizás la forma más efectiva de hacerlo. Como sugiere su nombre, un gráfico de asignación de recursos es un gráfico visual que muestra dónde un usuario puede ver qué procesos dentro de un sistema están reteniendo o usando recursos. Esto es útil porque brinda una representación visual de todos los recursos que utilizan los diferentes procesos, lo que permite que un usuario identifique qué procesos se interbloquearán, cuál de las cuatro condiciones de Coffman cumplirán y luego le permite a un usuario evitar que ocurra un interbloqueo. en conjunto al evitar que dichos procesos cumplan con cualquiera de las condiciones de Coffman. Un gráfico de asignación de recursos se puede convertir en la matriz de asignación de recursos, una figura que muestra cuántos recursos se comparten entre varios procesos dentro de un solo sistema. También llamado «algoritmo bancario» debido a su uso en operaciones bancarias y aplazamiento de carga, elLa matriz de asignación de recursos permite que un sistema simule el número máximo de solicitudes de recursos que necesita cada proceso. La matriz de asignación de recursos puede ejecutar estos procesos en un «estado s» o «estado seguro» para determinar si un sistema puede o no ejecutarse de manera segura bajo sus parámetros actuales. Esto permite que un usuario evite el interbloqueo por completo.
Recuperación
Hay varias formas de sacar un sistema del punto muerto, siendo la más común la eliminación de procesos , o el cierre de un solo proceso en el «bucle de retroalimentación» respectivo que está causando dicho punto muerto, liberando recursos para que continúen otros procesos. Otro método de recuperación de punto muerto es la preferencia de recursos ; La preferencia de recursos es el proceso de retener ciertos recursos de un proceso para dárselos a otro en caso de un posible punto muerto. Imponer un límite específico en la cantidad de recursos dentro de un sistema también es una forma confiable de evitar interbloqueos porque evita que los procesos retengan recursos. Crear una reversióntambién es confiable; una reversión revierte los procesos a un punto funcional y permite que se realicen ajustes para evitar que vuelva a ocurrir un punto muerto.
Resumen y análisis del Libro «Una rosa para Emily»
Livelock vs Deadlock
Livelock se diferencia de deadlock en que no se trata de que los recursos se retengan de varios procesos, sino que varios procesos cambian de estado constantemente y, por lo tanto, evitan que los demás continúen. Livelock, similar a deadlock, puede ocurrir cuando más de un proceso requiere un solo recurso. Sin embargo, difiere en el sentido de que cada proceso entrega dicho recurso al otro proceso o procesos, quienes a su vez detectan que el recurso es requerido por otros procesos y lo devuelven. Esto continúa en un circuito de retroalimentación, sin que se realice ningún progreso. En esencia, el bloqueo dinámico no ocurre cuando los procesos involucrados se están reteniendo recursos entre sí, sino cuando están demasiado ocupados tratando de resolver problemas para permitir que los demás finalicen. Esto hace que cada proceso vuelva de un estado activo a un estado inactivo.
Resumen de la lección
El interbloqueo es una condición en la que varios procesos intentan utilizar los mismos recursos, pero ningún proceso libera dichos recursos para permitir que los demás finalicen. El interbloqueo depende de cuatro condiciones de Coffman , las condiciones bajo las cuales se produce el interbloqueo; La exclusión mutua es cuando un proceso usa un recurso y lo retiene, no permitiendo que ningún otro proceso activo lo use; La espera circular es cuando un proceso está esperando un recurso retenido por otro proceso; Retener y esperar es cuando un proceso utiliza un recurso y solicita uno o varios recursos que ya están siendo utilizados por otros recursos; y sin preferenciaes cuando un recurso sólo puede ser liberado voluntariamente por el proceso que lo retiene. Si la preferencia , la asignación previa de recursos, está presente, entonces el proceso se ve obligado a renunciar a cualquier recurso que sea necesario para el siguiente proceso, evitando el punto muerto. Si se cumple alguna de estas cuatro condiciones, se producirá un punto muerto. Existen numerosas soluciones para el interbloqueo, incluidas las reversiones , la reversión de procesos a un estado de trabajo anterior; matar procesos, apagar procesos hasta que el sistema ya no esté en punto muerto; y preferencia de recursos. Otra forma de interbloqueo, llamada interbloqueo, se diferencia en que no se trata de recursos retenidos sino de procesos en conflicto que, debido a los estados cambiantes, no permiten que se completen entre sí.
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...
