Ejercicio 5 | Algoritmo de Dekker?

Ejercicio 5 | Algoritmo de Dekker?

de Guillermo Daniel Toyos Marfurt -
Número de respuestas: 3

Buenas. En openfing el profesor comentó que se puede implementar una sección crítica aplicando el algortimo de deckker. Mi duda es que ambos procesos están corriendo el mismo código. Como implementamos la logica de banderas y turnos si ambos procesos ejectuan las mismas instrucciones?  Hay que tener dos procesos con sección de código independiente como en las diapositivas?

En respuesta a Guillermo Daniel Toyos Marfurt

Re: Ejercicio 5 | Algoritmo de Dekker?

de Jorge Merlino -
No se si entiendo bien la pregunta pero las banderas y el turno son variables globales a los dos procesos.
En respuesta a Jorge Merlino

Re: Ejercicio 5 | Algoritmo de Dekker?

de Guillermo Daniel Toyos Marfurt -

Eso lo entiendo. Mi duda es como hacer cuando se quiere implementar algoritmo de dekker en dos procesos que estan leyendo el mismo código. Es decir, hay dos procesos ejecutando:

procedure actividad is

 begin for i in 1..12 loop

     actividad_propia_del_proceso

     unidades := unidades + 1;

     if (unidades = 10) then 

         unidades := 0;

        decenas := decenas + 1; 

end if; end loop; end procedure;

Para implementar dekker, tengo necesariamente que escribir dos procesos actividadA y actividadB, con sus respectivas condiciones para entrar en la sección crítica?

En respuesta a Guillermo Daniel Toyos Marfurt

Re: Ejercicio 5 | Algoritmo de Dekker?

de Jorge Merlino -

Puede ser el mismo y llamar a una función entrar_dekker y salir_dekker. Si usas arreglos la única diferencia sería un parámetro que indica si es la función A o B que a su vez puede ser un parámetro del procedure actividad.