Ir ao conteúdo

Posts recomendados

  • Membro VIP
Postado

No final da página 9 do livro "Montagem de Micros, Para Autoditadas, Estudantes e Técnicos, 4ª Edição" de @Gabriel Torres, é informado que "para aproveitar todo o potencial oferecido por processadores com muitos núcleos, você precisa rodar programas que reconheçam e usem esses núcleos adicionais.". E a título de exemplo de categorias de programas capazes de aproveitar todo o potencial de uma CPU multicore, ele menciona "renderização de imagens tridimensionais, edição de vídeos e alguns jogos.".

 

Como um programa desktop é capaz de reconhecer e usar os núcleos adicionais de um processador, uma vez que codificam programas para o sistema operacional, e não para o computador?

  • Administrador
Postado
Em 12/02/2024 às 14:45, RoboGUERRERO disse:

Como um programa desktop é capaz de reconhecer e usar os núcleos adicionais de um processador, uma vez que codificam programas para o sistema operacional, e não para o computador?

 

Oi @RoboGUERRERO!

 

O meu livro "Montagem de Micros" tem por objeto ensinar o leitor a montar um computador, e não explicar o funcionamento de hardware ou arquitetura de computadores.  Sendo voltado a um público iniciante/leigo, explicações técnicas são deixadas de lado ou são simplificadas para que um iniciante/leigo consiga entender a matéria sem a necessidade de explicarmos o que tecnicamente está por trás das afirmações. Para o nível de profundidade que você está querendo aprender, o livro mais adequado é o Hardware. De qualquer forma, discorro um pouco abaixo sobre o que você quer saber.

 

Vou traduzir o que eu escrevi no livro para uma linguagem mais técnica: os programas precisam ser multithread: https://en.wikipedia.org/wiki/Multithreading_(computer_architecture)

 

(Além do link acima, sugiro pesquisar pelos termos multithread, multirthrading e multithreaded no Google para entender melhor a parte técnica do assunto que simplificarei abaixo.)

 

É verdade que os programas são escritos para sistemas operacionais, e do ponto de vista do programa, ele não precisa saber o hardware exato da máquina. Os sistemas operacionais modernos são todos multithread, e assim os programas também podem ser multithread. Há um componente do sistema operacional chamado agendador (scheduler) que vai compatibilizar as threads disparadas pelos programas com a capacidade de execução de threads do processador.

 

Exemplo 1:

 

Se, por exemplo, em um dado momento o programa disparar (digamos) oito threads e o processador só for capaz de executar quatro threads por vez, o agendador vai criar uma fila de espera. Neste cenário, se substituirmos o processador por um modelo com capacidade de oito threads, ganharemos desempenho, já que não haverá mais tempo de espera na execução de todas as threads.

 

Exemplo 2:

 

Vamos a um segundo exemplo. Em um dado momento o programa dispara oito threads e já temos na máquina um processador de oito threads. Substituir este processador por um modelo de 16 threads não vai fazer o computador ganhar desempenho para este programa, pois não havia fila de espera na execução das threads.

 

Espero que eu tenha conseguido explicar o que eu escrevi no livro de uma forma mais técnica. Recomendo também que você assista ao vídeo abaixo onde explico este assunto:

 

 

Abraços,

Gabriel Torres

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!