O que é uma troca de contexto?

Nos primórdios da computação, as CPUs eram máquinas puramente sequenciais. Isso ajudou a manter os designs simples. No entanto, também limitou o desempenho. Muitos processos precisarão solicitar dados da RAM do sistema ou do disco rígido. Embora a RAM do sistema seja rápida, ela ainda não é tão rápida quanto a CPU, deixando-a ociosa, esperando por dados até que a resposta volte da RAM. A situação é ainda pior para os dados solicitados do disco rígido, um dispositivo de armazenamento muito mais lento que a RAM. Aqui a CPU pode ficar ociosa por períodos significativos, aguardando uma resposta. Infelizmente, com processadores sequenciais, esse problema é simplesmente inevitável.

Felizmente, as CPUs modernas não são mais sequenciais. Eles oferecem muitos recursos avançados, como execução fora de ordem e vários threads. A execução fora de ordem permite que a CPU analise as próximas instruções e as reordene para maximizar a eficiência. Multi-threading permite que a CPU tenha vários threads ou processos diferentes em execução.

Além de ter vários núcleos, a CPU não pode executar mais de um por vez. Ele pode, no entanto, fazer com que pareça, alternando entre eles regularmente para garantir que cada um obtenha uma quantidade considerável de tempo de CPU constante. O processo de alternar entre threads é chamado de troca de contexto.

Como funciona uma troca de contexto?

Uma troca de contexto consiste em duas partes, trocando o thread anterior e trocando o novo. Para alterar o thread antigo, a CPU deve salvar seu estado atual em um bloco de controle de processo ou switch frame. Isso inclui os valores de quaisquer registradores relevantes da CPU e sempre consiste no valor do contador do programa. Uma vez que o thread tenha sido armazenado, um identificador pode ser adicionado a uma fila pronta para permitir que ele seja restaurado quando necessário.

Mudar no segmento seguinte é o mesmo processo inverso. Um thread é selecionado da fila pronta, dependendo da ponderação. Alternativamente, pode ser escolhido por uma interrupção indicando que um evento que o thread estava esperando agora está pronto ou completo. Os dados do thread são então copiados nos registradores corretos e o thread é restaurado. Neste ponto, o novo thread está pronto para continuar a operação de onde parou.

Impacto no desempenho

O processo de leitura e gravação de dados ao ativar ou desativar um thread leva algum tempo, embora não muito, pois a memória usada é normalmente de alta velocidade. Há, no entanto, outros custos de desempenho. Ao alternar threads, os dados nos caches e buffers da CPU do thread anterior podem não ser relevantes para o novo thread. Isso pode levar a um aumento significativo no TLB ( Translation Lookaside Buffer ) e perdas de cache.

Esse efeito não é significativo se os dois threads foram gerados pelo mesmo processo, pois é provável que eles compartilhem elementos de memória consideráveis. O TLB deve ser totalmente liberado ao alternar entre threads de métodos diferentes. Isso leva a uma taxa de falha de TLB de 100%, enquanto a taxa de acerto do cache da CPU também é significativamente reduzida.

Embora as CPUs ofereçam suporte de hardware para troca de contexto, os sistemas operacionais normalmente não usam isso. A comutação de contexto de hardware carece de consciência da relevância dos dados. Portanto, ele precisa armazenar e restaurar todos os registros, aumentando o tempo gasto e o espaço de armazenamento necessário.

Além disso, a comutação de contexto de hardware não armazena os dados dos registradores de ponto flutuante, funcionalidade que pode ser necessária. A comutação de contexto de software é, portanto, geralmente usada. Permite manter os dados de todos os registradores, inclusive registradores de ponto flutuante. As chaves de contexto de software têm uma compreensão da relevância dos dados. Isso significa que ele pode escolher quais armazenar conforme necessário.

Conclusão

Uma troca de contexto é um processo pelo qual uma CPU moderna troca qual thread está executando. O processo envolve armazenar os dados relevantes do thread atual e restaurar os dados pertinentes do novo thread. A comutação de contexto vem com um custo de desempenho relacionado ao tempo necessário para realizar a comutação e ao aumento da taxa de cache e faltas de TLB, pois não são armazenadas. As trocas de contexto acontecem para garantir que todos os threads tenham um bom suprimento de tempo de CPU ou devido a uma interrupção indicando que um evento que a linha estava aguardando foi concluído.



Leave a Comment

O Que Fazer Se o Powerbeats Pro Não Carregar no Estojo

O Que Fazer Se o Powerbeats Pro Não Carregar no Estojo

Se o seu Powerbeats Pro não estiver carregando, experimente usar outra fonte de energia e limpe seus fones de ouvido. Deixe o estojo aberto enquanto carrega seus fones.

Canon Pixma MG5220: Digitalize sem Tinta

Canon Pixma MG5220: Digitalize sem Tinta

Como ativar a digitalização na Canon Pixma MG5220 quando você ficar sem tinta.

5 Motivos pelos Quais Seu Laptop Está Superaquecendo

5 Motivos pelos Quais Seu Laptop Está Superaquecendo

Descubra algumas das possíveis razões pelas quais seu laptop está superaquecendo, juntamente com dicas e truques para evitar esse problema e manter seu dispositivo fresco.

Como Corrigir o Código de Erro 0xC272008F do GeForce Now

Como Corrigir o Código de Erro 0xC272008F do GeForce Now

Você está se preparando para uma noite de jogos, e será uma grande noite – você acaba de adquirir “Star Wars Outlaws” no serviço de streaming GeForce Now. Descubra a única solução conhecida que mostra como corrigir o Código de Erro 0xC272008F do GeForce Now para que você possa começar a jogar jogos da Ubisoft novamente.

Fundamentos da Impressão 3D: Dicas de Manutenção para a Sua Impressora 3D

Fundamentos da Impressão 3D: Dicas de Manutenção para a Sua Impressora 3D

Manter suas impressoras 3D é muito importante para obter os melhores resultados. Aqui estão algumas dicas importantes a serem lembradas.

Como Encontrar o Endereço IP de uma Impressora

Como Encontrar o Endereço IP de uma Impressora

Está tendo dificuldades para descobrir qual endereço IP sua impressora está usando? Vamos mostrar como encontrá-lo.

Como desligar o Roku

Como desligar o Roku

Descubra como desligar o Roku Player, enquanto aprende sobre suas opções de economia de energia e melhores práticas.

O que é SLI?

O que é SLI?

SLI ou Scalable Link Interface é uma tecnologia da Nvidia que permite que várias placas gráficas trabalhem juntas para obter maior desempenho.

O que é N-Key Rollover e Anti-Ghosting?

O que é N-Key Rollover e Anti-Ghosting?

Entenda os conceitos de N-key rollover e Anti-Ghosting, dois recursos essenciais em teclados para gamers que melhoram a experiência de jogo.

O que é VRAM?

O que é VRAM?

VRAM, ou Video Random Access Memory, é uma forma essencial de RAM utilizada em processadores gráficos, fundamental para o desempenho em videogames.