La sección crítica tiene tres pasos:
- Bloquear
- Ejecutar sección crítica
- desbloquear
La matriz de indicadores aquí es una matriz que se usa para indicar si el subproceso está libre de ejecutarse en su etapa crítica. Nota: Un proceso puede ejecutar su etapa crítica solo después de haber ejecutado con éxito Lock (). Asumamos lo siguiente:
- Hay dos hilos A y B (A es hilo 0 y B es hilo 1).
- B ya está en su sección crítica (por lo tanto, el indicador [1] es verdadero).
- En este instante, A comienza a ejecutar Lock () (por lo tanto, el indicador [0] es verdadero).
Ahora A esperará a que el indicador [1] sea falso antes de pasar a la sección crítica. Pero el indicador [1] puede establecerse en falso solo después de que el hilo B ejecute su desbloqueo (), lo que a su vez significa que ha ejecutado su sección crítica correctamente. Tan pronto como B establezca su bandera en falso, A se moverá en su sección crítica.
- ¿A qué programas de Maestría en Ciencias de la Computación debo aplicar?
- ¿Por qué una máquina Turing puede ejecutar todos los algoritmos informáticos?
- Cómo seleccionar aleatoriamente una palabra de un archivo que contiene 1,000 palabras (1 palabra por línea) y mostrarla en un programa C ++
- ¿En qué se diferencia la teoría lógica de las matemáticas de la teoría lógica de la informática?
- ¿Qué es la matemática profanada y dónde se usa?
Ahora su consulta es la parte triste cuando ambos procesos están en el paso 7 al mismo tiempo:
En este punto, ambos avanzan al paso 8, y aquí esperarán a que sus contrapartes conviertan su bandera en falsa, lo que a su vez conduce a una condición de punto muerto.
En caso de que tenga suerte y no sean concurrentes, siempre encontrará que a la vez solo un proceso puede ejecutar la sección crítica. Por definición, la exclusión mutua se refiere al requisito de garantizar que no haya dos procesos concurrentes en su sección crítica al mismo tiempo. Entonces, ya sea la condición normal o la condición de punto muerto, ambos procesos no pueden ejecutar la sección crítica simultáneamente. Esto contradice el hecho de que al comienzo de la prueba asumimos que LockOne no satisface la propiedad de condición mutua. Por lo tanto, demostró que realmente satisface.