Requisito previo: bifurcación de sincronización de procesos
:
la instrucción bifurcación es la instrucción en la ejecución del proceso que produce dos ejecuciones simultáneas en un programa. Una de las ejecuciones concurrentes comienza en la declaración etiquetada y otra ejecución es la continuación de la ejecución en la declaración que sigue a la instrucción fork . La asignación de llamadas de sistemas de bifurcación tiene un parámetro, es decir, Etiqueta (L).
Unión:
la instrucción de unión es la instrucción en la ejecución del proceso que proporciona el medio para recombinar dos cálculos concurrentes en uno solo. La instrucción de combinación tiene un parámetro de recuento de enteros que especifica el número de cálculos que se van a combinar. Decrementa el entero en uno. Si el valor del número entero después del decremento es distinto de cero, el proceso termina; de lo contrario, el proceso continúa ejecutándose con la siguiente instrucción.
Ejemplo-1:
Construya el gráfico de precedencia para el siguiente programa de bifurcación/unión.
S1; count1: = 2; fork L1; S2; S4; count2: = 2; fork L2; S5; Go to L3; L1: S3; L2: join count1; S6; L3: join count2; S7;
Solución :
Ejemplo-2:
escriba un programa de bifurcación/unión para el siguiente gráfico de precedencia.
Solución:
después de S1, se requiere una declaración de bifurcación para crear un hijo.
Después de S4, se requiere una declaración de bifurcación para crear un hijo.
Todos los procesos deben unirse antes de S7.
S1; count: = 3; fork L1; S2; S4; fork L2; S5; Go to L3; L2: S6; GOTO L3; L1: S3; L3: join count; S7;