Em 09/11/2012 10:41, Otacílio escreveu:
> [...]
>
> Se o problema é stressar alguém está falando com quem entende.
>
> Este é um programinha que fiz para encontrar números primos mas cujo
> verdadeiro motivo de existir é exemplificar a programação com múltiplos
> processos. Você informa uma faixa de valores e ele encontra os números
> primos naquela faixa utilizando o número de processos que você informar.
> Você pode usar isso para stressar as suas CPUs.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <sys/types.h>
> #include <sys/wait.h>
> #include <unistd.h>
> #include "primo.h"
>
> int main(int argc, char **argv){
>       u_int32_t       limite_superior;
>       u_int32_t       i, j;
>       u_int32_t       processos;
>       u_int32_t       intervalo;
>       u_int32_t       passo;
>       int status;
>
>       if(argc != 3){
>               fprintf(stderr,"Este programa encontra todos os numero primos 
> em um
> intervalo.\nVoce deve usar %s limite_superior numero_processos\n", argv[0]);
>               exit(1);
>       }
>       
>       processos = (u_int32_t)strtol(argv[2], (char **)NULL, 10);
>       limite_superior = (u_int32_t)strtol(argv[1], (char **)NULL, 10);
>       
>       intervalo = limite_superior/processos;
>       
>       passo = 2 * processos;
>       
>       if(limite_superior >= 1){
>               fprintf(stdout,"%d eh primo\n", 1);
>               fflush(stdout);
>       }
>       if(limite_superior >= 2){
>               fprintf(stdout,"%d eh primo\n", 2);
>               fflush(stdout);
>       }
>       
>       //Vamos criar os processos reponsáveis por encontrar os números
>       for(i=0; i<processos; i++){
>               //Vamos fazer o fork do processo
>               if(!fork()){
>                       //Processo filho entra aqui                             
>                       for(j=3+2*i; j<=limite_superior; j+=passo){
>                               if(eh_primo(j)){
>                                       fprintf(stdout,"%d eh primo\n", j);
>                               }
>                       }
>                       exit(0);
>               }
>       }
>       
>       for(i = 1; i<=processos; i++){
>               wait(&status);
>       }
>       return 0;
> }
>
>

paulo@amd> gcc46 numeroprimo.c                                         
numeroprimo.c:6:19: fatal error: primo.h: No such file or directory
compilation terminated

paulo@amd> g++46 numeroprimo.c                                         
numeroprimo.c:6:19: fatal error: primo.h: No such file or directory
compilation terminated.







-- 
http://about.me/paulocavalcanti

-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a