Pular para conteúdo

Exercícios: Aula 06 - Cache e Localidade

Resolver esses exercícios ajudará na fixação do conteúdo abordado na Aula 06.

1 - 1. Cache Hit e Cache Miss (Básico 1)

Contexto:

O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.

Pergunta: Descreva o conceito fundamental de 1. Cache Hit e Cache Miss e liste duas vantagens de seu uso.

2 - 2. Localidade Espacial vs Temporal (Básico 2)

Contexto:

As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):

Pergunta: Descreva o conceito fundamental de 2. Localidade Espacial vs Temporal e liste duas vantagens de seu uso.

3 - 3. False Sharing e Lógica Invertida (A Morte do C++) (Intermediário 1)

Contexto:

A estrutura define a localidade espacial. Prefira dezenas de minúsculas variáveis sequenciais nos métodos a usar longos grafos com saltos randômicos baseados em ponteiros, se for iterar a esmo.

Pergunta: Analisando o funcionamento de 3. False Sharing e Lógica Invertida (A Morte do C++), como essa métrica interage em um ambiente prático de compilação ou execução de código C/C++ a nível de sistema operacional?

4 - 1. Cache Hit e Cache Miss (Intermediário 2)

Contexto:

O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.

Pergunta: Analisando o funcionamento de 1. Cache Hit e Cache Miss, como essa métrica interage em um ambiente prático de compilação ou execução de código C/C++ a nível de sistema operacional?

5 - 2. Localidade Espacial vs Temporal (Desafio)

Contexto:

As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):

Pergunta (Desafio): Elabore um cenário de arquitetura onde o uso incorreto ou a falta de entendimento de 2. Localidade Espacial vs Temporal cause um problema grave de performance ou vazamento de memória. Como você mitigaria estruturalmente esse gargalo?



📚 Gabarito e Solução Comentada

Gabarito Explicado Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na **Aula 06**. !!! success "Solução da Questão 1 - 1. Cache Hit e Cache Miss (Básico 1)" **Explicação Detalhada do Assunto:** O desempenho do seu loop `for()` depende maciçamente da *Cache Hit Rate*. - **Cache Hit:** Acerto! A CPU pediu a posição `[1]`, ela já estava na Cache e a conta foi resolvida quase imediatamente. - **Cache Miss:** Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *1. Cache Hit e Cache Miss* 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. !!! success "Solução da Questão 2 - 2. Localidade Espacial vs Temporal (Básico 2)" **Explicação Detalhada do Assunto:** As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada): Se o programa acessou a variável na posição de memória `X`, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória `X + 1`. Se o programa visitou a variável `Y` agora, há enorme probabilidade dele visitá-la nos próximos ms. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *2. Localidade Espacial vs Temporal* 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. !!! success "Solução da Questão 3 - 3. False Sharing e Lógica Invertida (A Morte do C++) (Intermediário 1)" **Explicação Detalhada do Assunto:** A estrutura define a localidade espacial. Prefira dezenas de minúsculas variáveis sequenciais nos métodos a usar longos grafos com saltos randômicos baseados em ponteiros, se for iterar a esmo. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *3. False Sharing e Lógica Invertida (A Morte do C++)* 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. !!! success "Solução da Questão 4 - 1. Cache Hit e Cache Miss (Intermediário 2)" **Explicação Detalhada do Assunto:** O desempenho do seu loop `for()` depende maciçamente da *Cache Hit Rate*. - **Cache Hit:** Acerto! A CPU pediu a posição `[1]`, ela já estava na Cache e a conta foi resolvida quase imediatamente. - **Cache Miss:** Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *1. Cache Hit e Cache Miss* 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. !!! success "Solução da Questão 5 - 2. Localidade Espacial vs Temporal (Desafio)" **Explicação Detalhada do Assunto:** As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada): Se o programa acessou a variável na posição de memória `X`, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória `X + 1`. Se o programa visitou a variável `Y` agora, há enorme probabilidade dele visitá-la nos próximos ms. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *2. Localidade Espacial vs Temporal* 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. --- [:octicons-arrow-left-24: Voltar para Exercício](exercicio-06.md){ .md-button }