elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Ejercicios / Programacion concurrente en: 23 Enero 2007, 07:47 am
Wenass! asía ya tiempo que no venia por aqui pero veo que sigue conservando su prestigio alli donde navegue ... ::)

Weno, tengo un problemilla a ver si alguien me puede echar un cable:

Considerar la siguiente modificacion de Peterson para 2 procesos para que se pueda implementar la exclusion mutua de N procesos:
Di si la solución es correcta. En caso contrario propon, si es posible las modificaciones necesarias para que lo sea.
Código:
int Turno=0;
BOOLEAN QuiereEntrar[N] = {FALSE,...,FALSE};

void Proceso(int i){
   extern BOOLEAN QuiereEntrar[N];
   extern int Turno;
   int k;

   while(TRUE){
      QuiereEntrar[i] = TRUE;
      Turno = (i+1) % N;
      for(k=0;k<N;k++)
         while(QuiereEntrar[k] && Turno==k);

      /*sección Crítica*/
      QuiereEntrar[i] = FALSE;
      /*Sección residual*/
   }
}
:huh:
Se que el problema está en la variable Turno, ya que tal y como está tendriamos otra sección crítica ahí mismo, ya que puede llegar otro proceso y alterar la variable turno. Por tanto ...
Pense en convertir a la variable Turno en un array... pero no se si voy por buen camino ... me podeis ayudar¿?

Gracias !! ;D
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines