-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04-01-2008 13:17, Edson Marquezani Filho wrote: > Pessoal, tenho uma dúvida conceitual com relação a processamento > paralelo com múltiplos processadores, ou os atuais dual core.
Há quem argumente que há uma grande diferença entre múltiplos processadores e múltiplos núcleos. > 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 ? A maior parte da "thread" já explicou sobre as diferenças de divisão de tarefas, aqui tem um item do FAQ do Squid que diz porque ele não se beneficia do SMP: http://wiki.squid-cache.org/SquidFaq/InstallingSquid?highlight=%28processor%29%7C%28multi%29#head-56167774a7ab4b9ec2fb1b0bd20a74b4d984776c > 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 ? Talvez o que seja o mais importante de explicar de forma concisa e numa abordagem mais prática (até para que outros menos técnicos possam entender) é que o Linux faz as trocas de contexto, ou seja, tira e coloca os processos na área de execução, mas cada processo tem que saber lidar com múltiplos processadores. Uma analogia simples é possível, um sistema de arquivos no Linux pode suportar arquivos de mais de 4GB, mas uma aplicação qualquer pode não ter esse suporte e corromper o arquivo. A idéia para o uso do processador é similar. :-) > 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. Processamento distribuído é ainda outro capítulo da parte de processamento, diferente do processamento SMP (ou de múltiplos núcleos). Há processamento distribuído transparente e não transparente, e isso é parte da idéia de "clusterização". > Tô meio confuso. =@ > Abraço a todos. Abraço, - -- Felipe Augusto van de Wiel (faw) "Debian. Freedom to code. Code to freedom!" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHgBd9CjAO0JDlykYRAijLAJ43//cAk6MGr5XbC/yIjsPspF5UYQCghOXp B7Ov3eW2DaXrZfwpuNj+/bI= =ySFD -----END PGP SIGNATURE----- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]