PROCESSADORES COM MULTIPLOS THREADS

Olá pessoal.

Em uma discussão saudavel com alguns amigos surgiu uma duvida do que era exatamente uma thread de um precessador.

Fui em busca de varios sites uma boa explicação inclusive no site da Intel.

 

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.

 

OBS: Uma thread nada mais é que uma quantidade de tarefas de podem serem executadas simultaneamente em um core de processador. O Windows 7 entende que cada THREAD é um processador lógico. Então se você tiver um processador de 4 núcleos com 8 threads o Windows entenderá que o computador tem 8 CPUs.

 

Abaixo postei um video que explica muito bem o que é Thread.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *