#include #include #include #include #include #include #include "barrier.h" #define NUM 20 int NUM_THREADS=2; thread_t *tid; sem_t mutex; barr_t barr; char numeros[NUM]; int n=NUM, primo=0; void* Marca(void *); /* Codigo dos processos */ void vet_init(void) { int i; for(i=0; iNUM?NUM:end); printf("Proc %d verificando de %d a %d\n", myself, start,end-1); mybarrier(&barr,myself); for (i=2; i<=lim; i++){ if (!numeros[i]){ for (z=(i>start?i+1:start); z %d\n", myself,res,primo); sem_post(&mutex); return (void*)0; } int main(int argc, char *argv[]) { int i; tid = (thread_t *)malloc(NUM_THREADS * sizeof(thread_t)); sem_init(&mutex, 1, 1); vet_init(); init_mybarrier(&barr,NUM_THREADS); for(i=0; i