Pessoal, tenho uma dúvida conceitual com relação a processamento paralelo com múltiplos processadores, ou os atuais dual core.
Bom, depois que a gente estuda um pouquinho percebe que nem tudo em computação é mágica. Portanto, pra que possa ser aproveitar o poder de mais de um processador, é necessário que tenhamos mecanismos que possibilitem dividir as tarefas entre eles. Tudo bem, é pra isso que temos kernel SMP, certo ? Imagino que a função mais básica desse tipo de kernel seja escalonar os processos para mais de um processador. Então, se você tem uma máquina dual core ou com mais de um processador real, mas não tem um kernel que faça processamento paralelo, de nada adianta. Mas, se você o tem, todos os processos usarão essa capacidade total, creio eu, devido ao escalonamento. Agora, a dúvida vem quando ouço falar, e inclusive passo adiante, a informação de que o Squid, por exemplo, não faz uso desses recursos, o que torna seus vários processadores carésimos indeferentes, nesse caso. Mas, se quem distribui o processamento é o próprio kernel, não deveria ser assim. Ou deveria ? Como fica essa história ? Afinal, o que o kernel faz, e o que o programa faz, com relação a multiprocessadores ? Ter um kernel SMP já garante que o processamento de todos seja aproveitado ? Bom, eu já vi arquitetura, microprocessadores e sistemas operacionais na faculdade, mas não sei o quão bem absorvi todos esse conceitos. Mas pelo que me lembro, no caso de SOs, o processamento distribuído deveria depender do kernel e deveria ser transparente aos processos, a não ser em casos em que eles usassem instruções específicas desse tipo de arquitetura. Tô meio confuso. =@ Abraço a todos. -- >>> http://edsonmarquezani.wordpress.com <<<

