CCoW: Otimizando Copy-on-Write Considerando a Localidade Espacial em Cargas de Trabalho Parte 4

Apr 03, 2024

3.3. Rastreando o acesso a páginas pré-copiadas

Supõe-se que o CCoW amortize a sobrecarga para sobrecarga frequente de manipulação de falhas de página. No entanto, copiar páginas antecipadamente leva a outro problema: rastrear acessos à página após a cópia.

Existe uma forte conexão entre processamento de erros e memória. Para a maioria das pessoas, os erros são frequentemente vistos como algo ruim, mas podem ser oportunidades para aprendermos e crescermos. Ao lidar corretamente com os erros, podemos melhorar nossa memória e nos ajudar a compreender e responder melhor a situações semelhantes.

Uma maneira de lidar com os erros é refletir e analisar. Quando cometemos um erro, devemos reservar um tempo para refletir sobre como o erro ocorreu e o que podemos fazer para evitar que um erro semelhante aconteça novamente. Através da reflexão, podemos identificar as causas profundas dos problemas e desenvolver contramedidas para resolvê-los. Este tipo de análise não trata apenas de erros, pode nos ajudar a tomar melhores decisões em outras situações da vida e nos ajudar a melhorar nossas competências e habilidades.

Outra forma de lidar com os erros é permitir-se aceitá-los e seguir em frente. Não devemos permitir que os erros nos atrasem ou nos frustrem. Em vez disso, devemos vê-los como oportunidades de crescimento, permitindo-nos aprender com os nossos erros e continuar a melhorar. Se pudermos aceitar os erros e lidar com eles com uma atitude positiva, poderemos construir uma mentalidade forte e uma autoconfiança, o que é muito importante para manter uma boa memória.

Finalmente, podemos fortalecer a nossa memória compartilhando os nossos erros. Quando contamos aos outros sobre os erros que cometemos, tendemos a nos lembrar desses eventos mais profundamente. Isso ocorre porque quando contamos aos outros, temos que deixar as coisas mais claras e relembrar cada detalhe do erro. Dessa forma podemos entender melhor esses erros e evitar que aconteçam novamente.

Em resumo, existe uma forte relação entre processamento de erros e memória. Ao lidar corretamente com os erros, podemos fortalecer nossa memória, melhorar nossas habilidades e habilidades e nos tornar pessoas melhores. Devemos encarar os erros como uma oportunidade, enfrentar ativamente as dificuldades e aprender e crescer com elas. Percebe-se que precisamos melhorar a memória, e a Cistanche deserticola pode melhorar significativamente a memória porque a Cistanche deserticola é um material medicinal tradicional chinês que tem muitos efeitos únicos, um dos quais é melhorar a memória. A eficácia da Cistanche deserticola vem dos múltiplos ingredientes ativos que contém, incluindo ácido tânico, polissacarídeos, glicosídeos flavonóides, etc.

10 ways to improve memory

Clique em Conhecer memória de curto prazo como melhorar

No esquema original de cópia na gravação, a primeira gravação em cada página é capturada pelo manipulador de falhas de página.

Somente a página defeituosa é copiada e o sistema pode rastrear com precisão cada acesso à página por meio do manipulador de falhas de página. Por outro lado, quando o sistema copia uma região inteira, todas as páginas da região são mapeadas para o processo com permissão por escrito.

Assim, gravações subsequentes nessas páginas copiadas podem ocorrer sem acionar o mecanismo de tratamento de falhas de página, de forma que o sistema não possa rastrear os acessos às páginas copiadas. Isso pode ser problemático quando o processo executa bifurcações repetidamente. Suponha que uma região tenha alta localidade espacial e uma época seja definida como o período entre duas bifurcações.

A alta localidade pode ser capturada contando as falhas de página que aconteceram na região. Então, suponha que o processo crie um novo processo com uma bifurcação. Quando uma nova época é iniciada com o fork, o primeiro acesso de gravação a uma das páginas da região iniciará o CCoW, copiando todas as páginas da região. Agora o processo tem todas as páginas com permissão de gravação e nenhuma outra falha de página será gerada na região até o final da época.

Quando uma nova época é reiniciada, considera-se que a região tem baixa cobertura na época, visto que a região possui apenas uma página copy-on-write. Assim, cada gravação na região é processada através do mecanismo original de cópia na gravação por página, comprometendo assim a oportunidade de otimização de desempenho mesmo que a região tenha uma localidade alta.

Observe que a região é considerada como tendo uma localidade alta novamente na próxima época, e o processo é repetido para alternar a situação. Para resolver esse problema, precisamos de um mecanismo para rastrear o acesso à página após a cópia.

Este estudo propõe aproveitar a parte suja na entrada da tabela de páginas (PTE). Em geral, as arquiteturas modernas mantêm diversas informações no PTE para cada página, e o dirty bit é um dos campos suportados pela maioria das arquiteturas.

Quando o MMU processa um acesso à memória de gravação, ele define automaticamente o bit sujo da página correspondente. Por outro lado, isso implica que quando o bit sujo de uma página é definido, a página foi atualizada com acessos de gravação.

Com base nesta ideia, modificamos o mecanismo de cálculo da cobertura. Inicialmente, todas as regiões são consideradas regiões normais. Durante a bifurcação, a cobertura para regiões normais é calculada com o número de cópias nas gravações usando a Equação (1).

ways to improve memory

Ao lidar com a falha de página para uma região de alta localidade, todas as páginas da região são copiadas com seu bit sujo limpo. Além disso, a região é marcada como uma região pré-copiada. Durante a bifurcação, a cobertura da região copiada é calculada com o número de páginas sujas na região da seguinte forma:

improve memory

A cobertura calculada para cada região é realizada através da bifurcação e usada como métrica para a localidade espacial da região. Quando ocorre uma falha de gravação de página em uma região, o sistema verifica a cobertura da região e pode pré-copiar páginas para regiões de alta localidade.

A Figura 2 ilustra uma situação em que a cobertura é calculada após pré-cópias. Suponha que ambas as regiões sejam copiadas (sombreadas em vermelho) e que as páginas 0, 2, 3, 4 e 11 tenham o bit sujo definido.

Para calcular a cobertura durante o processamento da bifurcação, o sistema usa o bit sujo em vez da contagem de cópias na gravação, uma vez que as regiões são copiadas na época atual. Assim, a região 0 tem uma cobertura de 66%.
Já a cobertura da região 1 é de 15%. Para tratar a falha de página da página 3, a região 0 é copiada novamente, enquanto a falha de página da página 9 é tratada com o mecanismo original. Dessa forma, podemos evitar que regiões de alta localidade saiam de foco.

boost memory

3.4. Capturando a localidade

Como o manipulador de falhas de página está no caminho crítico de desempenho no sistema operacional, devemos minimizar a sobrecarga para a implementação do esquema proposto.
Basicamente, CCoW requer um mecanismo para calcular a cobertura, e a maneira mais simples de implementar esse recurso é rastrear as páginas que acionam falhas de página com um bitmap, como descrevemos na Seção 3.2.

Ao lidar com uma falha de página, o sistema define o bit correspondente à página com falha. Durante a bifurcação, o sistema verifica o bitmap para contar o número de páginas defeituosas para cada região e calcula a cobertura. O bitmap é redefinido após o cálculo.

Esta abordagem é simples, mas impõe grandes restrições de espaço e tempo. O sistema deve manter uma entrada de bitmap de um bit para cada página de 4 KB e inspecionar todo o bitmap durante a bifurcação. Considerando o enorme consumo de memória de aplicativos com uso intensivo de memória, essas operações incorrerão em uma alta sobrecarga durante a bifurcação, compensando o benefício de desempenho do CCoW. Otimizamos essa implementação explorando as características da falha de página.

Se ocorrer uma falha de página em uma página, a página não incorrerá em falhas de página adicionais até que o processo crie um novo processo. Assim, cada página pode disparar no máximo uma falha de uma página, e para uma região com n páginas, as falhas de página só podem acontecer até n vezes. Isto implica que contar o número de falhas de página por região é suficiente para calcular a cobertura, em vez de manter o bitmap para páginas individuais.

Assim, substituímos o bitmap pelos contadores de falhas. Cada região está associada a um par de contadores como segue: um para contar as falhas de página na última época e outro para contar as falhas de página na época atual.

O primeiro é usado para determinar a localidade espacial das regiões, enquanto o último é usado para monitorar a localidade espacial da época atual. Durante a bifurcação, o contador de falhas atual é copiado para o contador de falhas anterior.

Se uma região for copiada nesta época, o número de páginas sujas na região será gravado no contador de falhas anterior. Os contadores são preenchidos durante a criação de uma nova área de memória virtual (VMA) e recuperados quando seu VMA correspondente é reduzido ou não mapeado. Essa otimização reduz a sobrecarga de espaço do CCoW de um bit por página para alguns bytes por região.

memory enhancement


For more information:1950477648nn@gmail.com

Você pode gostar também