[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[OFF-TOPIC] Multiprocessadores / Processamento paralelo



  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 <<<


Reply to: