Multiprocessadores Simétricos & O Kernel, uma história de amor.... |
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.
Somente usuários registrados podem escrever comentários!
!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."
|
||||||||
LAST_UPDATED2 |