(Razón de la condición de interbloqueo) proceso hilos punto muerto y Soluciones

En primer lugar, la definición de estancamiento

Multi-proceso, multi-hilo de ejecución concurrente pesar de una mejor utilización de los recursos del sistema, mejora el rendimiento del sistema, pero al mismo tiempo también trajo nuevos problemas ----- punto muerto.

Punto muerto significa que varios procesos (hilos) en el proceso de implementación, debido a la competencia por los recursos o fenómenos (otro cuelga de espera), en ausencia de la fuerza Un externa bloqueo causado debido comunican entre sí, serán incapaces de seguir promoviendo - aquí siempre.

En este momento, dicen que el sistema se encuentra en estado de interbloqueo o sistema para producir un callejón sin salida, que siempre está en el proceso de espera de otro proceso que se llama el punto muerto.

En segundo lugar, varios estancamiento común

1. hilo se bloquea a sí mismos

Con el fin de asegurar la sincronización y la exclusión mutua entre las discusiones, a menudo necesitamos para bloquearla, y, a veces, se aplican los recursos de bloqueo de rosca, sino también no esperar a la salida, y otra vez aplicar el bloqueo, el resultado está a la espera de la espera de la liberación de la cerradura pero la cerradura está llevando a cabo su propia, por lo que se colgará siempre esperando, provocando un estancamiento.

2. Multi-roscado reciclaje de recursos competencia de espera

Hay dos hilos P1 y P2, P1 primera aplicación es un L2 de bloqueo L1, aplicación P2 se ha bloqueado, esta vez dirigido a aplicar para el bloqueo P1 L2, el resultado es una liberación de la cerradura está suspendido esperando P2 L2, pero también desea aplicar por sólo P2 cerradura L1, es el resultado de la liberación pendiente de la espera de bloqueo P1 L1, esta vez causando un punto muerto entre sí dos hilos, causando un punto muerto.

3. proceso avance bloqueos por parte de orden incorrecto

Hay tres hilos, P1, P2 y P3, respectivamente, los datos de producción M1, M2, M3, recibir simultáneamente datos generados por otro hilo M3, M2, M1, si el orden correcto en un avance de rosca, es decir, tres primeros hilos son datos de producción, y luego recibió, no hay problema, pero una vez que el hilo para aceptar datos, datos de reproducción, ya que no hay datos para generar un comienzo, el resultado será en un punto muerto tres hilos.

En tercer lugar, la razón del estancamiento y las condiciones necesarias

1. La principal razón para el estancamiento:

La insuficiencia de recursos del sistema.
Sequential Processes (hilos) propulsado mal.
la asignación inadecuada de los recursos.

Cuando los recursos del sistema son abundantes, cuando cada proceso se puede aplicar a la recurso deseado, entonces la probabilidad de estancamiento a velocidad baja y diferente orden de programación de rosca, puede conducir a un punto muerto.

2. Los cuatro condiciones necesarias para estancamiento generados :( llamar la atención)

condiciones mutuamente excluyentes: procesos de Recursos (hilos) sólo pueden ser presentadas (hilos) en un período de tiempo en un proceso.
Solicitud y esperar a que las condiciones: proceso (rosca) ya tienen un recurso, pero se aplican de nuevos recursos, los recursos se han mantenido sin cambios.
condición irrenunciable: en un proceso (rosca) no agotarse, tomar la iniciativa para liberar recursos, no pueda ser substituida.
condición de espera circular: Hay una cadena sin fin de los recursos entre múltiples procesos (hilos).

3. El método de procesamiento de punto muerto:

prevención de estancamiento: la destrucción de una de las cuatro condiciones de estancamiento, nota que las condiciones no son mutuamente exclusivos daños.
Evitar el estancamiento: la asignación racional de los recursos.
cheque callejón sin salida: el uso del mecanismo de inspección estancamiento estancamiento especializada, y toma el método apropiado.
Levante el punto muerto: interbloqueo se produce cuando se forma razonable para resolver el punto muerto. En general, los recursos privan.

4. ¿Cómo romper las cuatro condiciones que generan

Romper las condiciones mutuamente excluyentes: la transformación de los recursos exclusivos como un recurso virtual , pero la mayoría de los recursos no se reforma, y por lo tanto no recomendamos el uso de esta plaza método.
solicitud de interrupción para mantener condiciones: antes del proceso (rosca) se está ejecutando, poner los recursos en lugar de solicitar una aplicación de una sola vez y cumplir con el plazo, no se conforma con esperar, para que no se causa en el caso de posesión de los recursos, sino que también se aplica para un nuevo recursos.
Romper condición irrenunciable: cuando la proporción de los recursos y también quiere solicitar un nuevo recurso, el retorno de los recursos ya ocupado.
Esperar a que las condiciones para romper el ciclo: ordenada asignación de los recursos, es decir, el número de clasificación para todos los dispositivos, solamente con el fin de solicitar financiación ascendente.

Por ejemplo, el proceso P1, el orden de uso de los recursos es R1, R2, P2 proceso, el orden de uso de los recursos es R2, R1, si se toma asignada dinámicamente, es probable que cause un interbloqueo es. Clasificamos el número de dispositivo, P1, P2 sólo en el orden de R1, R2 para solicitar fondos. Puede romper el bucle sin fin de evitar un punto muerto.

En cuarto lugar, el algoritmo del banquero

En el método de evitar el estancamiento en el más famoso es el algoritmo del banquero, es Dijkstra EW presentada en 1968.

Por qué se llama el algoritmo del banquero, ya que es un poco al banco de servicios "préstamo", si el suministro de capital de los bancos sólo un número limitado de créditos a clientes, a continuación, con el fin de asegurar que los bancos tienen fondos suficientes para operar antes de pedir dinero prestado a auditar si el cliente tiene la capacidad de ser capaz de pagar el préstamo en un plazo determinado.

En el estudio de las estrategias de asignación de recursos de nuestro sistema operativo, no habrá problemas similares en nuestro sistema de recursos limitados que deben asignarse a diferentes procesos, entonces lo harían -

Avance examinar si este proceso tiene la capacidad de devolver los recursos en un plazo determinado - debe asegurarse de que puede ser devuelto dentro de un tiempo limitado, los otros procesos de arco.

Aproximadamente Método:

Cuando el número de recursos en el sistema de un proceso de máxima demanda de recursos no puede exceder el proceso de aceptación.

El proceso puede puesta en escena de solicitud de recursos, pero el número total de peticiones no exceda la demanda máxima.

Cuando los recursos disponibles no pueden cumplir con el sistema tomará varios procesos de recursos, el proceso puede demorar la solicitud de asignación, pero el proceso general puede obtener recursos en un tiempo limitado.

Cuando los recursos existentes del sistema para cumplir con el proceso tomará unos recursos, el sistema debe ser probado los recursos existentes puede cumplir con el número máximo de recursos que todavía necesitan proceso, si la asignación de los recursos para satisfacer las aplicaciones de prensa actuales, o tiene que posponer la distribución .

algoritmo del banquero:

En primer lugar es necesario definir el concepto de la seguridad del estado y el estado.

Estado de los recursos del sistema están actualmente atribuida al proceso.

Por lo tanto, el vector de estado contiene dos recursos (cantidad total de cada recurso en el sistema) y disponible (cantidad total de cada recurso no está asignada al proceso) y dos matrices reivindicación (la demanda de proceso expresado por los recursos) y Asignación (expresado Actualmente los recursos asignados al proceso). significa la condición de seguridad que hay al menos una secuencia de la asignación de recursos no conduce a un callejón sin salida.

Cuando un proceso solicita un conjunto de recursos, suponiendo que concede la solicitud, cambiando así el estado del sistema, y luego determinar si el resultado está todavía en condición segura.
Si se está de acuerdo con esta solicitud, en caso contrario, bloquear el proceso de consentimiento sabe que el estado del sistema petición es todavía seguro.

Publicados 254 artículos originales · ganado elogios 23 · Vistas a 50000 +

Supongo que te gusta

Origin blog.csdn.net/qq_30242987/article/details/104733279
Recomendado
Clasificación