Pular para conteúdo

Solução e Explicação Detalhada: Aula 05 - Hierarquia de Memória

Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na Aula 05.

Solução da Questão 1 - 1. A Pirâmide de Alta Performance (Básico 1)

Explicação Detalhada do Assunto:

Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe em qual camada a variável se hospeda:


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 1. A Pirâmide de Alta Performance determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 2 - 2. Os Impactos da Latência (Lado do Código) (Básico 2)

Explicação Detalhada do Assunto:

Quando escrevemos um código com constantes consultas não linearizadas ao Banco de Dados (ou SSD local), pagamos a mais cara taxa processual: o I/O disk penalty.

A instrução e os dados descem da L3, saltam para L2, descem para L1 e se acoplam na ALU.


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 2. Os Impactos da Latência (Lado do Código) determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 3 - 3. Optimizando Uso (Intermediário 1)

Explicação Detalhada do Assunto:

Por que linguagens como C e C++ dominam infraestrutura de servidores High Frequency Trading?

Porque elas permitem Alocação Estática e Constante que é perfeitamente "encaixada" pelo compilador diretamente na memória Cache.

Ao invés de carregar gigabytes de Strings na lenta RAM, as linguagens de baixo nível incentivam o uso de matrizes de tamanho delimitado (arrays fixos), cujo agrupamento contíguo força a arquitetura de Hardware Prefetching a adiantar os bytes do Array para a Cache nativamente, antes mesmo de você rodar a linha do código!

Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 3. Optimizando Uso determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 4 - Resumo Prático (Intermediário 2)

Explicação Detalhada do Assunto:

  • Se processadores hoje são mísseis atingindo +4GHz, a RAM parou no tempo (Latência de CAS não baixa proporcionalmente).

  • Tudo recai na técnica humana de amarrar dados juntos (Caches L1 e L2) e escrever data-oriented code se quiser ultra-latência C++.

Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de Resumo Prático determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 5 - 1. A Pirâmide de Alta Performance (Desafio)

Explicação Detalhada do Assunto:

Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe em qual camada a variável se hospeda:


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 1. A Pirâmide de Alta Performance determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.


Voltar para Exercício