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

Rodrigo Mosconi freebsd em mosconi.mat.br
Sexta Novembro 9 13:15:20 BRST 2012


Em 9 de novembro de 2012 13:12, Otacílio <otacilio.neto em bsd.com.br> escreveu:
> 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.
>
O uso do crivo seria um exemplo de como usar uma área de memória
compartilhada entre processos ou threads
É um problema de exclusão mútua num bitmap


Mais detalhes sobre a lista de discussão freebsd