elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:16  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Programacion concurrente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programacion concurrente  (Leído 1,417 veces)
omykron

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Programacion concurrente
« en: 23 Enero 2007, 07:47 »

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


En línea

Fortis cadere, cedere non potest
-/OmYkRoN/-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines