quinta-feira, 12 de março de 2015

Threads e processadores


Claro, você já ouviu falar em processador, conhece marcas como Intel e AMD, tem ideia de que a CPU faz cálculos, de que ela conta com núcleos e, possivelmente, sabe muito mais do que tudo isso. No entanto, existem coisas que nem sempre são esclarecidas, como é o caso de alguns termos americanos que aparecem quando falamos sobre os processadores.


Processador com suporte para executar múltiplas threads


Uma das palavras mais misteriosas nesse sentido é a “thread”. No que se refere a hardware, essa palavra apareceu no Brasil quando surgiram os primeiros modelos de processador com múltiplos núcleos. A princípio era fácil compreender que um dual-core tinha dois núcleos.
Entretanto, com a evolução das arquiteturas nas CPUs, surgiu o suporte para múltiplos threads (multithreading). E é aí que muitas pessoas se perguntaram o que realmente mudava. Afinal, o que é essa palavra? Faz diferença um processador trabalhar com o dobro de threads? Isso é o que vamos explicar agora!



A execução de um programa

Antes de falarmos exatamente sobre as threads, precisamos entender como os processadores e os sistemas operacionais trabalham com os aplicativos. Basicamente, a execução de um programa dá-se, em um primeiro instante, em uma ação do sistema operacional. Quando o usuário abre um aplicativo, o sistema operacional interpreta a ação e requisita que os arquivos relacionados a esse software sejam executados.
Claro que qualquer atividade do sistema operacional está sujeita à operação do processador. Todavia, antes que um programa esteja aberto e realmente requisite o trabalho em massa da CPU, ele é apenas carregado na memória RAM, o que não exige uma atividade do processador.




Processos e threads


Ao efetuar o carregamento de um programa, o sistema operacional trabalha com processos. Cada software possui um processo (alguns utilizam árvores de processos), cada qual com respectivas instruções para o processador saber como proceder na hora de efetuar os cálculos.

Os processos e as threads


Os chamados “processos” são módulos executáveis, os quais contêm linhas de código para que a execução do programa seja realizada apropriadamente. Isso quer dizer que o processo é uma lista de instruções, a qual informa ao processador que passos devem ser executados e em quais momentos isso acontece.
Os processadores trabalham muito bem com os processos, mas a execução de muitos processos simultaneamente acarreta na lentidão da CPU. Isso ocorre porque, mesmo um processador tendo dois ou mais núcleos, existe um limite para ele.
Uma CPU com dois núcleos, por exemplo, pode trabalhar com dois processos simultaneamente. No entanto, se você pressionar as teclas “Ctrl + Shift + Esc”, vai verificar que o sistema operacional trabalha com dezenas de processos ao mesmo tempo. No entanto, tudo parece rodar perfeitamente na sua tela.


Processos em execução


Explicar isso é bem simples. Suponha que estamos tratando de uma CPU com dois núcleos. Em teoria, ela é capaz de executar dois programas ao mesmo tempo. Contudo, você está com seis programas abertos e todos respondendo em tempo real.
O processador consegue trabalhar com todos os aplicativos e apresentar resultados satisfatórios devido à velocidade de processamento. Sendo assim, “parece” que os processos são executados simultaneamente.
A princípio, a presença de múltiplos núcleos era suficiente para a maioria dos usuários. Todavia, a evolução dos softwares e dos componentes de hardware requisitou uma divisão ainda melhor das tarefas. As linhas de instruções dos processos adquiriram características únicas, que possibilitaram separá-las para execuções em diferentes núcleos.


Cada processo com suas threads



Essas linhas de instruções ficaram conhecidas como threads, mas muita gente preferiu traduzir a palavra “thread” para tarefa. A questão é que o nome em si não faz diferença, visto que, de certa maneira, uma linha de instrução é uma tarefa que o processador deverá realizar. Entretanto, algumas coisas mudaram no processador.

As threads nos processadores

Enfim, chegamos ao ponto que interessa. Como já vimos, a thread é uma divisão do processo principal de um programa. Todavia, nem todos os processos são divididos em múltiplas threads, assim como nem todos os processadores são capazes de trabalhar “tranquilamente” com uma enormidade de threads.
Os mais recentes processadores vêm com especificações quanto aos núcleos e às threads. E como saber o que exatamente isso significa? Vamos tomar como exemplo o processador Intel Core i7 2600. Verificando no site da fabricante, temos a informação de que esse modelo vem com quatro núcleos e tem suporte para trabalhar com até oito threads.


Threads no Intel Core i7 2600


Isso quer dizer que essa CPU pode trabalhar com quatro processos indivisíveis simultaneamente (um em cada núcleo) ou com até oito linhas de execução (threads) — as quais podem ou não ser de um mesmo processo. Saber como cada aplicativo é executado dentro do processador não é tão simples, mas o que importa é ter noção de que existem aplicativos que serão executados de uma maneira mais satisfatória nas CPUs mais novas.
Vale ressaltar que não é garantido que um processador multithread sempre apresente maior desempenho. Contudo, a chance de aumento na eficiência é grande, pois, tendo suporte para trabalhar com múltiplas threads, é mais provável que a CPU execute mais programas ao mesmo tempo.

E a evolução continua

Agora que você já sabe os conceitos básicos sobre o que é uma thread e como ela influencia no desempenho do computador, talvez fique fácil compreender como serão os próximos processadores, que deverão vir com mais núcleos e com suporte para a execução de mais threads.
Esperamos que este artigo tenha sido esclarecedor e reforçamos o convite para você soltar o verbo nos comentários. Até a próxima.


Fonte : TecMundo

Nenhum comentário:

Postar um comentário