int main(void){ tipoFila fila; tipoDados x; char op; int aprod; printf("\nP para produzir, C para consumir, M para mostrar estado\n"); scanf("%c", &op); switch(op) { case 'p': printf("\nDigite o valor a produzir\n"); scanf("%d", &aprod); produtor(aprod); break; case 'c': printf("\nTentando consumir...\n"); consumidor} // AEAEEAEAE /* envia e lista os dados da fila inicializa(&fila); printf("Introduza uma sequencia de caracteres:\n"); while(!leDados(&x)){ adiciona(&fila,x); } printf("Sequencia lida:\n"); while(!filaVazia(&fila)){ retira(&fila,&x); escreveDados(x); } printf("\n"); exit(0); } */ void produtor(int p) { down(vazio); down(mutex); insere_item(p); up(mutex); up(cheio); } void consumidor(void) { down(cheio); down(mutex); remove_item(); up(mutex); up(vazio); } void down(int s) { if(s > 0) { s=s-1; } else{ //sleep(); printf("dorme"); } } void up(int s) { s=s+1; if(s >=1) { //wakeup(); } } void insere_item(int p) { } void remove_item(void) { }