Pregunta sobre el "punto muerto"

  

Noticias de la tienda de informática

1. ¿Por qué tiene un punto muerto?

1.1, un ejemplo simple

Hay dos procesos listos Escanee el documento y grabe en el CD. El Proceso A solicita el escáner y lo obtiene, mientras que el Proceso B primero solicita la grabadora de CD y lo obtiene. Luego, el proceso A solicita el grabador de CD, que falla porque el proceso B ya tiene un grabador de CD y no está dispuesto a liberarlo, y también solicita al escáner que complete el trabajo. Como resultado, nadie en los dos procesos puede completar el trabajo y aparece un punto muerto.

1.2, Acerca de los recursos

Los escáneres son un tipo de recurso. Como se puede ver en lo que antecede, la solicitud de recursos es la raíz del punto muerto. De hecho, el recurso puede ser un dispositivo de hardware (como una grabadora de CD) o un conjunto de información (como un registro bloqueado en la base de datos). En pocas palabras, el recurso es todo lo que se puede obtener, usar y liberar después de su uso.

Los recursos se dividen en dos categorías: preventivo y no preventivo. Preventivo significa que los recursos se anticipan del proceso que los posee sin efectos secundarios. De esto, se puede ver que la reasignación de recursos se puede resolver cuando el uso de recursos preventivos está bloqueado.

De hecho, hay una pequeña cantidad de puntos muertos que no son causados ​​por recursos. No los discutiré aquí.

2, modelado de interbloqueo

2.1, definición de especificación de interbloqueo

Si cada proceso de una recopilación de procesos está esperando solo por la recopilación de procesos El evento que otros procesos pueden provocar, entonces la recopilación de procesos está bloqueada.

Dado que todos los procesos están en espera, el resultado es que cada proceso no puede generar eventos que satisfagan otros procesos, y todos los procesos esperarán. En el caso del uso de recursos, cada proceso requiere recursos adicionales para continuar, y los procesos que poseen esos recursos no los liberan porque continúan porque no hay suficientes recursos.

2.2, condiciones de bloqueo de recursos y estrategias de afrontamiento

2.2.1, puntos muertos de recursos tienen cuatro condiciones necesarias: 1 condiciones mutuamente excluyentes. Esto significa que un recurso no puede ser usado simultáneamente por múltiples procesos. 2 condiciones de posesión y espera. Los procesos que ya han obtenido un recurso pueden continuar solicitando recursos adicionales. 3 no puede adelantarse a las condiciones. Como se mencionó anteriormente, cuando se prioriza un recurso, puede causar efectos secundarios y solo puede ser liberado explícitamente por el proceso que lo posee. Condición de espera de 4 bucles. Existe una cadena de bucles de proceso en la que los recursos adquiridos por cada proceso en la cadena se solicitan simultáneamente en el siguiente proceso.

2.2.2, existen cuatro estrategias para lidiar con los puntos muertos: 1 ignoro el problema. 2 detectan punto muerto y recuperan. 3 Asigna cuidadosamente los recursos para evitar puntos muertos. 4 Evite que se produzcan interbloqueos al destruir una de las cuatro condiciones necesarias que causan el interbloqueo. Estas estrategias se discuten por separado a continuación.

3, algoritmo de avestruz

El algoritmo corresponde a la primera estrategia anterior: ignorar. El llamado algoritmo de avestruz se debe a un folclore: el avestruz enterrará su cabeza en la arena cuando encuentre un problema, y ​​nada pretenderá que no haya ocurrido ningún problema. Tal vez te sientas muy enredado: ¿Cómo puede haber un algoritmo tan absurdo? Para los matemáticos, sus ideas son como usted, y no deben tolerar una estrategia de no hacer nada. Pero para los ingenieros, considerarán seriamente el algoritmo de avestruz. Cuando la probabilidad de un interbloqueo es baja y baja, y hay muchos otros problemas pendientes de resolución, adoptarán un algoritmo de avestruz para el problema del interbloqueo.

4, detección de interbloqueo y recuperación de interbloqueo

La detección de interbloqueo se basa en el bucle mencionado anteriormente, es decir, el proceso de detección tiene un bucle en la posesión de recursos y solicitudes, y si es así, El lado ilustra el pestillo muerto. Este artículo está "simplificado" y no describe específicamente el algoritmo de detección.

Hay tres formas de recuperarse del interbloqueo: 1 Use la recuperación de preferencia. 2 utilizan recuperación de retroceso. Vuelva a un estado anterior. 3 recuperarse matando el proceso. De hecho, estos métodos no son buenos métodos y tienen muchos inconvenientes.

5, prevención de interbloqueo

El algoritmo principal para evitar el interbloqueo se basa en el concepto de estado de seguridad. El estado de seguridad significa que si no se produce un interbloqueo, e incluso si todos los procesos solicitan repentinamente la máxima demanda de recursos, todavía hay algún tipo de orden de programación que permite que cada proceso termine de ejecutarse, lo que se dice que es seguro.

El algoritmo más famoso para evitar el interbloqueo es el algoritmo bancario, que verifica cada solicitud y la satisface si sigue siendo seguro. De lo contrario, la solicitud se pospone.

6, prevención de interbloqueo

La prevención de interbloqueo es destruir una de las cuatro condiciones necesarias para causar un interbloqueo. 1 destruye la condición mutuamente excluyente. Use la tecnología de spooling para simular múltiples procesos que ocupan un recurso a la vez. 2 Destruir las condiciones de ocupación y espera. Especifica que todos los procesos solicitan y obtienen todos los recursos que necesitan antes de iniciar la ejecución. 3 destrucción no puede adelantarse a las condiciones. También está utilizando la tecnología de cola. 4 romper la condición de espera de bucle. Todos los recursos se numeran de manera uniforme y el proceso se solicita en secuencia cuando se solicitan múltiples recursos.

7, Resumen

No hay una manera perfecta de lidiar con los puntos muertos, y no hay un método universalmente aplicable. Solo en diferentes situaciones, considere de manera integral varias estrategias y formule algoritmos que cumplan con los requisitos hasta cierto punto.

Copyright © Conocimiento de Windows All Rights Reserved