O TLB muda sempre que um programa faz uma alternância de contexto?

1

Se o TLB for liberado toda vez que um programa fizer uma alternância de contexto, quando esse programa for executado novamente, onde o TLB irá recarregar sua tabela? Além disso, se a tabela for esvaziada, como os outros programas podem ser impedidos de gravar na memória que pertence a esse programa?

    
por tony_sid 05.03.2011 / 02:56

2 respostas

1

Ele começa vazio e é recarregado conforme os acessos ocorrem.

O TLB é uma otimização que evita a leitura de informações mais lentas da tabela de páginas para localizar a memória do aplicativo; em particular, o controle de acesso à memória é feito das tabelas de páginas, não do TLB.

E o motivo pelo qual você desmarca é duplo: porque se você não o fez, os acessos do próximo processo podem ir para a memória do seu processo (exatamente o oposto de sua presunção!), e porque poderia ser usado para bisbilhotar a memória e / ou atividade do seu processo.

    
por 05.03.2011 / 03:16
0

O TLB é recarregado a partir da tabela de páginas. A tabela de páginas sempre tem o mapeamento atualizado.

Como um cache de processador, o TLB é apenas uma cópia do que está na tabela de páginas, portanto, não há perda de informações da limpeza. Além disso, mesmo que o TLB seja liberado, a memória de um programa não é alocada para outros programas, portanto eles não podem gravar na memória desse programa.

Veja meu documento de pesquisa sobre TLBs para entender mais detalhadamente o tópico.

    
por 20.07.2017 / 11:56

Tags