[FUG-BR] FreeBSD desaparecendo com um núcleo na CPU

Marcelo Gondim gondim em bsdinfo.com.br
Sexta Novembro 9 11:13:16 BRST 2012


Em 09/11/12 10:59, Paulo Olivier Cavalcanti escreveu:
> 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 em amd> gcc46 numeroprimo.c
> numeroprimo.c:6:19: fatal error: primo.h: No such file or directory
> compilation terminated
>
> paulo em amd> g++46 numeroprimo.c
> numeroprimo.c:6:19: fatal error: primo.h: No such file or directory
> compilation terminated.
>
>
>
>
>
>
>
Opa faltou ele mandar o primo.h :)  que não faz parte do C  :)

Otacílio manda o código desse header.  :)


Mais detalhes sobre a lista de discussão freebsd