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

Otacílio otacilio.neto em bsd.com.br
Sexta Novembro 9 13:12:32 BRST 2012


On 09/11/2012 12:04, Rodrigo Mosconi wrote:
>>
>>         if(limite_superior >= 1){
>>                 fprintf(stdout,"%d eh primo\n", 1);
>>                 fflush(stdout);
>>         }
> 
> Há um erro conceitual: 1 não é primo, nem composto
> 
>>         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);
> 
> como vc poderia usar o crivo de erastótenes para ignorar os múltiplos
> de primos já obtidos.


É, mas a idéia é mostrar que para um problema grande eu posso usar
múltiplos processos na solução, que será bem mais rápida em uma máquina
com múltiplas CPUs. Se eu sair usando muitos atalhos não vai ficar tão
óbvia a vantagem de múltiplos processos.

O erro conceitual será corrigido na versão 2.0.



Mais detalhes sobre a lista de discussão freebsd