El punto muerto puede ser una desventaja virtual que puede surgir en algún momento de una comunidad de procedimientos cooperativos o competitivos. Un callejón sin salida es ese estado de cosas en el que un grupo de métodos se bloquea como resultado de que cada técnica requiere un proceso fijo, fuentes necesarias para sus dolores de cabeza y la anticipación de la liberación de los activos finales que se mantienen mediante el uso de otros en una organización igual, por lo que es imposible para cualquiera de los métodos para proceder.
Interbloqueo implica los siguientes elementos:
1. Recurso:
el dispositivo operativo y el sistema de administración de recursos útiles pueden verse afectados en escenarios de punto muerto. Hay un número finito de activos en el mercado dentro del sistema. Estos recursos se distribuyen entre una selección de métodos competitivos.
- Fuentes reutilizables:
una ayuda reutilizable es aquella que se puede usar correctamente usando solo un método a la vez y no se agota con ese uso. Los procesos acumulan unidades de ayuda que luego desatan para su aplicación a través de diferentes tácticas.
Ejemplos de fuentes reutilizables son los procesadores incorporados, los canales de E/S, los dispositivos de E/S, la memoria número uno y secundaria, los archivos, la base de datos, los semáforos, etc. - Fuentes fungibles –
La ayuda fungible es aquella que se puede crear y destruir. No hay restricción sobre la cantidad de bienes fungibles de un tipo particular. Ejemplos de fuentes prescindibles son interrupciones, mensajes indicadores y experiencia en búferes de E/S. Un sistema debe solicitar un recurso antes de victimizarlo y debe liberar un recurso útil una vez que lo victimiza. La cantidad de activos solicitados no excederá la variedad completa de activos en el mercado dentro del dispositivo.
2. Solicitud:
Se puede entender por solicitud cuando cualquier procesador solicita el uso de algún recurso. Si la solicitud no se puede conceder en tiempo real, entonces la técnica de solicitud debe esperar hasta que acumule fuentes.
3. Uso:
este estado surge cuando se asignan recursos al procesador.
4. Liberación:
después de realizar la operación requerida, los recursos se establecen en estado libre, lo que puede estar relacionado con la liberación de recursos.
Algoritmos de detección de bloqueos distribuidos:
el programa algorítmico se iniciará cada vez que se presente una forma de bloqueo. El programa algorítmico puede iniciarse usando el sitio web nativo del método o usando el método de posicionamiento en cualquier lugar espera. Las situaciones distribuidas se detectarán tomando una foto del dispositivo y examinándola para detectar una situación de impasse.
El programa algorítmico de detección de interbloqueo distribuido se puede dividir en cuatro clases de la siguiente manera:
- Inserción de ruta:
información de ruta enviada al Node en espera para bloquear el Node. - Persecución de bordes:
unidad de área de mensaje de sondeo enviada en el borde del gráfico. - Cálculo de difusión:
unidad de ubicación de mensajes de eco enviada en los bordes del gráfico. - Detección de nación global:
creación y reducción de WFG de barrido hacia afuera y hacia adentro.
Algoritmo de búsqueda de bordes:
- Edge chasing algoritmo hace uso de un mensaje único en cada caso, la detección de callejón sin salida es iniciada por el procedimiento Pi y sus millas se envían a través del sitio web de la casa de forma Pi al sitio web de la casa del procedimiento Pk .
- Un mensaje de sondeo viaja a lo largo de los bordes del gráfico TWF mundial. Se detecta un impasse si un mensaje de sondeo vuelve a su proceso inicial.
Nota –
Se mantiene una array booleana, dependientes, para cada técnica P i . Si P j es consciente de que P i depende de él, el dependiente (j) está listo para ser verdadero. De lo contrario, es muy falso.
Ejemplo: Considere un sistema como se muestra en la Fig. Si el método P 1 inicia la detección de situaciones, envía la sonda (1, 3, 4) a S 2 . Dado que P 6 está esperando a P 8 y P 7 está esperando a P 10 . S2 envía la sonda (1, 6, 8) y (1, 7, 10) a S3 que envía sucesivamente la sonda (1, 9, 1) a S1 . Al recibir la sonda (1, 9, 1), S 1 declara que P 1 está obstruido (punto muerto).
If Pi is locally dependent on itself then declare deadlock Else for all Pj and Pk such that Pi is locally dependent upon Pj, and Pj is waiting on Pk, and Pj and Pk are on totally different sites Send probe(i,j,k) to home site of Pk
Al recibir la sonda (i, j, k), el posicionamiento realiza acciones posteriores.
If Pk is blocked, and dependentk(i) is false. and Pk has not replied to any or all requests of Pj then begin dependentk(i)= true; if k = i then declare that Pi is under deadlock else for all Pm and Pn such that Pk is locally dependent upon Pm, and Pm is waiting on Pn and Pm and Pn are on totally different sites, send Prob(I,m,n) to house sites of Pn end
Solución del ejemplo dado usando el algoritmo de persecución de Edge:
- P 6 al principio le pide a P 8 su etiqueta pública y cambia su propia 2 a 3.
- P 3 pregunta a P 4 y cambia su etiqueta pública 1 a 3.
- P 9 pregunta a P 1 y encuentra su propia etiqueta pública 3 y luego detecta la situación.
- PAGS 1 → PAGS 2 → PAGS 3 → PAGS 4 → PAGS 5 → PAGS 6 → PAGS 8 → PAGS 9 → PAGS 1 .
Publicación traducida automáticamente
Artículo escrito por praveeny182 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA