Home Artigos Arquitetura de Computadores Multiprocessadores Simétricos & O Kernel, uma história de amor....
Multiprocessadores Simétricos & O Kernel, uma história de amor.... Imprimir E-mail
Escrito por Administrator   
Sáb, 15 de Outubro de 2011 01:16

Arquitetura de Computadores - PPGI/UFPB

Unidade 5

Desde meados de 2002, quando a Intel lançou a série dos incríveis processadores Pentium 4, os quais chegavam a atingir clocks na faixa dos 3,8Ghz, os seus engenheiros e projetistas começaram a levar a sério os problemas decorrentes do aquecimento destas pequenas pastas de silício. Já era passada a hora de migrar de paradigma. Assim, finalmente, foram empenhados esforços nos Multiprocessadores Simétricos, os famosos SMPs, no sentido de tornar-lhes, de fato, a nova tecnologia dominante.

Os SMPs são, em linhas gerais, arquiteturas onde grupos de processadores, independentes, podem trabalhar conjuntamente. De fato, essa foi uma solução realmente plausível. Levando em conta que o Sistema Operacional realize um escalonamento de forma eficiente, pode-se ter dois núcleos de 1,5Ghz funcionando como um único núcleo de 3Ghz, mas eliminando uma série de problemas que se teria com este, como aquecimento e, diga-se de passagem, custo ($D)! Nesta arquitetura, tem-se núcleos realmente independentes, cada um com sua própria Unidade de Controle, ULA, registradores e cache. Como já era de se esperar, eles compartilham a mesma memória principal e, consequentemente, o mesmo barramento de memória, além da entrada/saída. Este gargalo, que chega a ser uma desvantagem no que diz respeito ao desempenho, passa a ser uma grande vantagem no quesito de simplicidade no modelo de programação (justamente ao contrário dos MPPs). Isto é, desde que os implementadores do Sistema Operacional, mais especificamente dos algoritmos de escalonamento de processos, tenham feito as suas atividades de casa (isso, eles tinham tempo para fazer coisas legais :D)

De inicio, os Sistemas Operacionais (SOs) não cumpriam muito bem o seu papel de gerenciamento dos multiprocessadores, o que culminava em certo desperdício desses recursos. Mas, ainda assim, graças a esse trabalho dos SOs, os programadores de aplicações puderam, simplesmente, desfrutar dos SMPs de forma transparente (obviamente, usando processos multithreads!). Com isso, ganha-se: desempenho, disponibilidade (haja vista que a falha em um core não afetará os demais), crescimento incremental, entre outras vantagens.

Mas, nem tudo são rosas. Enquanto, em teoria, uma arquitetura SMP possa escalar para até 256 processadores simétricos, o mecanismo de escalonamento presente no GNU\Linux “só” suporta até 64 destes (considerando o Kernel v2.6). Embora até pouco tempo esse número fosse bastante suficiente, atualmente, com a explosão da virtualização & cloud computing, já se é relativamente comum data centers com arquiteturas SMPs com até 128 multicores. A boa (ou será má?) notícia, é que este limite de 64 trata-se de software. Mas não é software de user space, estamos falando do nosso amigo mais velho, o Kernel. Um cara que só “conversa”, digamos, com os “mais chegados”.

(Resenha do Artigo:

FÁVERO, AL: “Suporte a Multiprocessadores Simétricos (SMP) em kernel Linux”, Universidade Federal do Rio Gande do Sul.)

Referências:

Open Source Development Labs, Inc., Linux Process Scheduler Improvements in Version

2.6.0, Disponível em http://developer.osdl.org/craiger/hackbench/.

Rick Lindsley, What's New in the 2.6 Scheduler, Disponível em

http://www.linuxjournal.com/article.php?sid=7178 .

Enkh Tumenbayar, Linux SMP HOWTO. Disponível em

http://www.tldp.org/HOWTO/SMP-HOWTO.html.

Hank Dietz, Linux Parallel Processing HOWTO, Disponível em

http://www.tldp.org/HOWTO/Parallel-Processing-HOWTO.html.

Intel Corporation, MultiProcessor Specification,Version 1.4 May 1997.

Comentários
Pesquisar
Somente usuários registrados podem escrever comentários!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

LAST_UPDATED2
 
João F. M. Figueiredo, Creative Commons License
Todo conteúdo, exceto onde indicado ao contrário, está licenciada sob uma Licença Creative Commons.