#include <sys/sem.h>
#include "rshmem.h"
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include "proto.h"
void producir(){
float n;
n=rand();
n/=RAND_MAX;
TP;
printf("producir\n");
}
void meter(int *contador,int Mutex,int Lleno,int Vacio){
semWait(Mutex);
semWait(Vacio); /*s.entrada*/
*contador++; /*s.crítica*/
semSignal(Lleno);
semSignal(Mutex);/*s.salida*/
printf("meter\n");
}
void sacar(int *contador,int Mutex,int Lleno,int Vacio){
/*Sacamos c elementos del almacén*/
semWait(Mutex);
semWait(Lleno); /*s.entrada*/
*contador--; /*s.crítica*/
semSignal(Vacio);
semSignal(Mutex);/*s.salida*/
}
/*Sacamos las ruedas del almacén si el chasis que se evalua es defectuoso*/
void vaciar(int *contador,int Mutex,int Lleno,int Vacio){
semWait(Mutex);
while(*contador>1){
semSignal(Vacio);
semWait(Lleno);
*contador--;
printf("estoy vaciando el almacen\n");
}
semSignal(Mutex);
}
int control(){
return (((((float) rand())/RAND_MAX)>0.1)? 1 : 0) ;
}