O planejador do sistema operacional afeta a maneira como os encadeamentos são executados

0

Estou codificando um aplicativo multi-thread usando a biblioteca pthread, eu crio um thread usando pthread_create e executo randomfunction tudo que um thread é criado

Psedo-code of application

pthread_t thread[10];

for(int i=0;i<10;i++)

{
   pthread_create(&thread[i], NULL, randomfunction, NULL)
}

Por alguma razão desconhecida, os threads não estão rodando concorrentemente, mas rodando um após o outro, é como se a função pthread tivesse que executar o acabamento antes que outro pthread_create fosse executado.

Eu estou querendo saber se é possível que o Scheduler do sistema operacional Ubuntu esteja afetando a maneira como os threads estão sendo executados.

É possível que o Scheduler do sistema operacional Ubuntu esteja fazendo com que os encadeamentos sejam executados apenas quando a função de chamada tiver terminado de executar, em vez de simultaneamente?

Estou executando o Ubuntu 9.10 no VMWare Windows 7

    
por Computernerd 23.02.2014 / 18:12

1 resposta

1

  1. Você precisa definir o número de processadores para mais de um nas configurações do VirtualBox | Sistema | Processador
  2. Você também precisa definir o BIOS para a Virtualização (veja em Configurações de segurança do sistema).

Isso funcionou para mim.

    
por TomYam 03.05.2014 / 07:21