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

Re: [OFF-TOPIC] Multiprocessadores / Processamento paralelo



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


Reply to: