- - - - CENAPAD-MGCO

contents index A seguir: Propriedades de programas paralelos Acima: Liberação do Processador Anterior: Liberação do Processador


Buffer com Liberação do Processador

char B[10];
int p = 0, c = 0, n = 0;
key mutex;
bed b;

void Put(char x) {
   lock(mutex);
      while (n >= 10) wait(b,mutex); 
      /* espera por uma posicao vazia */ 
      B[p] = x; p = (p+1) % 10; n++; 
      wakeup(b,mutex);
   unlock(mutex); 
}

void Get(char *x) {
   lock(mutex);
      while (n <= 0) wait(b,mutex);
      /* espera por uma posi\c{c}\~{a}o cheia */ 
      *x = B[c]; c = (c+1) % 10; n--;
      wakeup(b,mutex);
   unlock(mutex); 
}



Osvaldo Carvalho - Postscript - Comentários?