UFMG - Pós-graduação em Ciência da Computação - Programação Paralela

A seguir: Jantar dos Filósofos com Acima: Sincronização com Memória Compartilhada Anterior: Exclusão Mútua com Semáforos


Produtor/Consumidor com semáforos

class Buffer{

int p=0, c=0;
Semaphre cheios = new Semaphore(0);
Semaphore vazios = new Semaphore(MAX);


public void put(char x) {
  P(vazios);
  buf[p] = x;
  p = (p + 1) % MAX;
  V(cheios);
}

public char get() {
  P(cheios);
  char x = Buf[c];
  c := (c + 1) MOD (MAX + 1);
  V(vazios);
  return x;
}}



Osvaldo Carvalho