É necessário implementar várias filas de processos, uma para cada processador/núcleo.

O que é mais importante num processador: Núcleos, frequência ou threads?

  1. Controle Net
  2. Blog
  3. Servidores
  4. O que é mais importante num processador: Núcleos, frequência ou threads?

É necessário implementar várias filas de processos, uma para cada processador/núcleo.

Ao iniciar uma pesquisa sobre qual processador deve ser instalado em um servidor, alguns usuários iniciantes esbarram nos termos técnicos “core”, “clockspeed” e “threads”.

Para entender por que um processador quad-core 2.0Ghz funciona melhor que um dual-core 3,8Ghz em algumas tarefas, é necessário compreender melhor esses conceitos.

O que é core?

Core é um termo originário do inglês que significa núcleo ou centro. Os componentes eletrônicos de nossos computadores, como os processadores, são construídos através da micro compactação e acomodação de milhões (bilhões) de transistores numa única pastilha de silício.

Até vinte anos atrás, fabricantes de chips como Intel, AMD, IBM e Motorola fabricavam microprocessadores com um único núcleo, composto de milhões de transistores.

Esse expediente de miniaturização permitiu aumentar significativamente a quantidade de transístores acomodados no mesmo núcleo, entregando cada vez mais performance aos processadores fabricados.

É necessário implementar várias filas de processos, uma para cada processador/núcleo.

No início, a otimização dos processos de fabricação conseguiu reduzir continuamente o tamanho desses semicondutores, encapsulando um número cada vez maior de transistores num único chip.

As melhorias conseguidas no processo de miniaturização permitiram a fabricação de processadores com mais velocidade, tornando nossos computadores pessoais e servidores cada vez mais poderosos.

A velocidade do processador

O desempenho da CPU que equipa seu PC tem um grande impacto na velocidade que os programas são carregados e executados.

Existem diferentes maneiras de medir o desempenho do processador, e a velocidade do clock (“clock rate” ou frequência) é uma das mais significativas.

Uma CPU processa muitas instruções (cálculos de baixo nível) de diferentes programas a cada segundo. A velocidade do clock mede o número de ciclos que a CPU executa por segundo, medido em GHz (gigahertz).

Um “ciclo” é tecnicamente um pulso sincronizado por um oscilador interno, mas para efeito de comparação, eles são uma unidade básica para entender a velocidade de uma CPU. Durante cada ciclo, bilhões de transistores dentro do processador abrem e fecham.

Assim, para efeito de comparação, podemos dizer que ao equiparmos dois servidores idênticos com processadores da mesma família, o que possui velocidade de clock maior deve entregar melhor performance.

Essa resposta é aceita apenas dentro de um modelo teórico, pois para determinar o ganho real de processamento de cada sistema também será necessário avaliar o sistema operacional, aplicação executada e como softwares farão uso dos recursos de hardware.

A limitação do modelo

Por volta de 2003, porém, o modelo começou a sentir fadiga. À medida que as velocidades da CPU se aproximavam de 3GHz, os sinais não podiam mais se propagar internamente com a rapidez necessária para que o processador funcionasse.

Como os sistemas operacionais e aplicações estavam se tornando cada vez mais sofisticados, desenvolvedores de software, consumidores e empresas também precisavam extrair mais performance de seus sistemas computacionais.

Não produzir processadores mais velozes tornava impossível a fabricação de computadores mais poderosos. Essa limitação também reduziria o nível de obsolescência do parque de equipamentos instalados e novas receitas dos fabricantes.

É necessário implementar várias filas de processos, uma para cada processador/núcleo.

Os processadores multi-core

A solução encontrada para superar esse entrave técnico foi colocar várias unidades de processamento (processadores) em uma única pastilha (chip), com apenas uma interface para gerenciar todo o sistema. Cada uma dessas unidades de processamento instaladas é conhecida como núcleo.

Ao colocar vários núcleos físicos de processamento dentro de um único chip, o processador não funcionava mais rápido, mas permitia executar mais tarefas simultâneas em um determinado período.

Assim, ao invés de executar uma única tarefa com velocidades cada vez maiores, os processadores multi-core iniciaram uma era de computação paralela onde cada processador físico permitia múltiplas tarefas, executadas em diferentes núcleos do mesmo chip.

Um thread por processador

Em um sistema operacional típico, muitos processos distintos estão em execução ao mesmo tempo. Alguns desses processos estão usando ativamente a CPU, outros podem estar aguardando dados de um dispositivo de armazenamento, alguns podem estar renderizando as imagens exibidas ou ainda interpretando cliques do mouse.

Nos antigos processadores de núcleo único, só uma instrução era executada por vez. Por isso, para gerenciar todos esses processos em execução, o sistema operacional precisava compartilhar o tempo da CPU e organizar as tarefas que seriam executadas.

Cada tarefa recebe uma fatia do tempo do processador, porém mesmo durante essa pequena fração de tempo, a CPU continua a ser alimentada com novos dados e instruções da memória.

Essas novas requisições são alocadas e buscadas em uma parte da CPU chamada pipeline. À medida que cada instrução é concluída, a próxima tarefa é buscada no topo do pipeline.

O que são processadores multi-threading?

Todo o pipeline era descarregado e recarregado continuamente, e cada processo sempre consumia algum tempo de atividade para a organização das filas. Além disso, essa verificação constante do pipeline gerava trabalho extra ou períodos de ociosidade do processador.

Para tornar o sistema mais eficiente, a Intel lançou a família de processadores multi threading ou hyper-threading, equipadas com CPUs de dois pipelines.

É necessário implementar várias filas de processos, uma para cada processador/núcleo.

Enquanto uma tarefa está sendo executada em um dos pipelines, o outro está sendo preenchido com dados e instruções para o próximo processo que receberá uma fatia de tempo.

Portanto, quando esse processo for executado, o outro pipeline já estará cheio e o processador permanecerá ocupado.

As vantagens de mais núcleos e threads

O efeito prático da implementação de mais núcleos e do sistema multi-threading nos processadores foi a maior estabilidade dos processos computacionais.

Com mais núcleos e recursos multi-tarefas, os computadores puderam executar mais aplicações funcionando dentro de um único processador, sem que fosse necessário reiniciar o sistema caso uma dessas tarefas falhasse.

O recurso de Hyperthreading (HT) foi introduzido com o processador Pentium 4 e permitiu que vários aplicativos fossem utilizados simultaneamente, mesmo quando outra aplicação já estivesse em execução no sistema, apesar de possuir apenas um núcleo da CPU.

Portanto, se a especificação de uma CPU diz que tem 16 núcleos e 32 threads, isso significa o microprocessador (chip) possui 16 processadores físicos independentes na matriz e cada um tem dois pipelines, possibilitando executar até 32 processos ativos, sem causar filas de execução no sistema operacional.

Qual recurso é mais importante num processador?

É necessário implementar várias filas de processos, uma para cada processador/núcleo.

Frequência, núcleos ou threads? Essa resposta só pode ser dada ao analisar o sistema operacional e a aplicação do novo servidor. Sistemas de virtualização adoram processadores multi-core, porém geralmente cobram por isso.

Já aplicações gráficas como a edição de vídeo precisam de processadores poderosos, com memórias de alta velocidade e placas GPU para ajudarem no processamento.

Como vimos, a escolha do processador é apenas parte do problema, pois além dos núcleos e threads, a performance das memórias, dos sistemas de armazenamento e sistema operacional escolhido também vão impactar na performance do servidor.

A boa notícia é que fabricantes como a Asus possuem servidores equipados com processadores para diversas aplicações, equipados com memórias, discos e portas de comunicação de última geração, capazes de suportar novas tecnologias como SSD NVMe e portas OCP.

Traga seu projeto e tire suas dúvidas. Somos distribuidores autorizados de fabricantes como Asus, Seagate, Western Digital, Synology e Qnap, além de especialistas em sistemas de armazenamento e servidores.

O que é fila de processos prontos?

O escalonamento de processos ou agendador de tarefas (em inglês scheduling) é uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os CPU ...

Quais são os dois principais critérios usados para ordenar fila de tarefas?

Vários critérios podem ser usados para ordenar a fila de tarefas prontas e escolher a próxima tarefa a executar; a data de ingresso da tarefa (usada no FCFS) e sua duração prevista (usada no SJF) são apenas dois deles.

Quais são os critérios para determinar as prioridades dos processos?

c) Questões teóricas para responder com a ajuda do simulador Quais devem ser os critérios para determinar as prioridades dos processos? Resposta: importância do processo para o sistema, melhor otimização possível do uso do processador, aumento da performance do sistema.

O que a introdução de processadores com vários núcleos altera nesse gerenciamento?

O que a introdução de processadores com vários núcleos altera nesse gerenciamento? Torna-se possível a paralização efetiva de processos concorrentes. Os estados que um processo alcança podem ser modelados por meio diagrama exibido a seguir.