Red de conocimiento informático - Aprendizaje de código fuente - Algoritmos de software mutuamente excluyentes para sistemas operativos (no entiendo nada sobre la transferencia de programas)

Algoritmos de software mutuamente excluyentes para sistemas operativos (no entiendo nada sobre la transferencia de programas)

Añadir primero

Proceso P1:

Hacer

{

Y (turno!=1);

Código pieza clave del proceso P1;

Giro = 0°;

. . . ;

} while(true);

Este es un algoritmo de software para realizar la exclusión mutua de secciones críticas.

Se puede entender de esta manera

Primero

Int turn=0 se declara al comienzo del programa;

P0 y los procesos P1 se ejecutan al mismo tiempo.

El proceso P0 se puede ejecutar

y (¡giro!=0);

El proceso P1 y el proceso P0 se ejecutan al mismo tiempo, y el P1. También se ejecutará el proceso.

Y (turn!=1); esta oración

Porque el valor inicial de los turnos es 0

La declaración while en P0 terminará, Porque la condición del bucle no se cumple. Por lo tanto, se puede ingresar el número de sección crítica de P0.

En este momento, la declaración while en P1 caerá en un bucle infinito porque se cumple la condición del bucle, por lo que el proceso P1 quedará atrapado en el bucle infinito y no podrá ingresar a la sección crítica.

La función de while es crear un bucle infinito para restringir el proceso para que no entre en la sección crítica y acceda a recursos críticos, logrando así la exclusión mutua.