520 likes | 573 Views
Resumindo. Na arquitetura x86 (32 e 64 bits), são usadas a segmentação e a paginação. O espaço de endereçamento de uma aplicação é dividido em segmentos, onde é determinado um endereço lógico , que consiste no par [segmento:deslocamento]. Resumindo.
E N D
Resumindo • Na arquitetura x86 (32 e 64 bits), são usadas a segmentação e a paginação. O espaço de endereçamento de uma aplicação é dividido em segmentos, onde é determinado um endereço lógico, que consiste no par [segmento:deslocamento].
Resumindo • O dispositivo de segmentação converte esse endereço para um espaço de endereçamento linear (virtual). • Finalmente, o dispositivo de paginação converte o endereço virtual para físico, localizando a moldura de página que contém os dados solicitados
MMU -Memory Management Unit • O endereço virtual é encaminhado para a unidade de gerenciamento de memória (MMU -Memory Management Unit). • MMU - dispositivo do processador, cuja função é transformar o endereço virtual em físico e solicitar este último endereço ao controlador de memória.
Tabela de Páginas • A conversão de endereços virtuais em físicos baseia-se em tabelas de páginas, que são estruturas de dados mantidas pelo Sistema Operacional.
Tabela de Páginas • Descrevem cada página da aplicação (num sistema em execução, existe pelo menos uma tabela de páginas por processo). • Cada tabela é indexada pelo endereço virtual e contém o endereço físico ou a indicação de que a página está em um dispositivo de armazenamento secundário.
Tabela de Páginas • Como o acesso à tabela de páginas é muito lento, pois está em memória, a MMU possui uma memória(cache) associativa chamada buffer de tradução de endereços (TLB - TranslationLookaside Buffer).
TLB - TranslationLookaside Buffer • TLB - Consiste em uma pequena tabela contendo os últimos endereços virtuais solicitados e seus correspondentes endereços físicos.
Linux em 32 Bits Na arquitetura x86 de 32 bits, o Linux pode endereçar até 4 GB de memória virtual. Este espaço é dividido em dois: o espaço do núcleo e o espaço do usuário. • Kernel space - É único e protegido das aplicações comuns, e armazena, uma estrutura que descreve toda a memória física; este espaço é limitado a 1 GB.
Linux em 32 Bits • User space - Cada aplicação recebe um espaço de endereçamento de até 3 GB. • Caso a memória física seja menor do que a necessária, o Linux pode alocar espaço em meios de armazenamento diversos (disco rígido, dispositivo de rede e outros).
Linux em 32 Bits • Este espaço é tradicionalmente conhecido como espaço de troca (swap space), embora o mecanismo adotado seja a paginação.
Windows em 32 Bits • Na arquitetura x86 de 32 bits, o Windows pode endereçar até 4 GB de memória virtual, dividido em duas partes. • Por padrão, o Windows reserva 2 GB para o núcleo e para as aplicações até 2 GB. Entretanto, é possível alterar essa configuração, podendo usar até 3 GB.
Windows em 32 Bits • Diferentemente do Linux, o Windows usa apenas arquivos para paginação (paging files). Pode usar até 16 desses arquivos, e cada um pode ocupar até 4095 MB de espaço em disco.
Atenção! • Páginas acessadas com menos frequência na RAM vão para disco (para o Pagefile.sys ), dando lugar à uma outra página prioritária no momento.
Atenção! • Quando a aplicação finalmente acessar o dado que está naquela página agora em disco, o sistema aloca espaço na RAM para trazer de volta a página. Isso pode resultar em outras páginas que estavam em RAM a serem paginadas para o disco.
Resumindo... • No Linux a memória virtual é dimensionada quanto ao seu tamanho na instalação e não poderá mais ser mudada. • Somente poderá ser mudado se o disco rígido for reparticionado novamente para utilizar uma partição maior de swap. Assim deixando a swap maior você terá que diminuir a raiz.
Resumindo... • A memória virtual também é chamado de arquivo de paginação. Recomenda-se que se use 2x a 3x de memória virtual do que você tiver de memória RAM, mas não siga isso a risca, pois, se você tiver um computador com memória de 4 GB.
Resumindo... • No Windows o usuário tem livre arbítrio ou Windows escolher qual é a melhor opção de quantidade de memória RAM,mas geralmente o Windows por si só pega pouca memória RAM. • O usuário pode ainda escolher de quanto quer usar de seu disco rígido para memória virtual, ou seja.
Resumindo... • A memória virtual deixou os programadores despreocupados com quanto de memória seu programa irá precisar, pois a memória virtual é muito maior do que os pentes de memória RAM, podendo o programador se preocupar mais com a tarefa de programação.
Memória Virtual Por que que a memória RAM é mais cara? • Não seria mais fácil simplesmente utilizar o HD para armazenar os dados?
Memória Virtual • Porque a memória virtual é extremamente mais devagar do que a memória RAM. Dessa forma se computador dispor de pouca memória RAM e precisar usar a memória virtual para armazenar dados o desempenho será comprometido
Espaço de Kernel e o Espaço do Usuário Compactar a área do Kernel pode causar problemas, como restringir o número de usuários que podem se conectar simultaneamente ou o número de processos que podem ser executados. Um espaço do usuário menor significa que o programador do aplicativo tem menos espaço para trabalhar.
Tamanho Memória Virtual • Ajuste tamanho fixo: Utilize o mesmo valor em "Tamanho inicial" "Tamanho final" . Isso evita que o arquivo fique fragmentado e o sistema consegue acessá-lo de forma mais eficiente.
Cuidado! • Muito cuidado ao alterar estes valores, principalmente caso o tamanho da memória RAM sofra alterações. Pode gerar despejo da memória.
Tamanho Memória Virtual Por que não deixar em tamanho gerenciado pelo sistema? • Não é interessante deixar o sistema gerenciar porque o mesmo criaria um arquivo de memória virtual que não teria um valor fixo. Logo ele ficaria muito fragmentado com o uso e deixaria o sistema ainda mais lento.
Orientações • Por padrão, o Windows armazena o arquivo de paginação na partição de inicialização. O tamanho padrão do arquivo de paginação é 1,5 vezes a RAM total. Fonte: http://support.microsoft.com/?scid=kb%3Bpt-br%3B314482&x=11&y=11
Orientações • Para melhorar o desempenho, é uma prática recomendada colocar o arquivo de paginação em uma partição e unidade de disco rígido diferentes. Dessa forma, o Windows pode tratar várias solicitações E/S mais rapidamente. Fonte: http://support.microsoft.com/?scid=kb%3Bpt-br%3B314482&x=11&y=11
Cuidado! • Se você remover o arquivo de paginação da partição de inicialização, o Windows não poderá criar um arquivo de despejo (Memory.dmp). • Isso poderá levar a um tempo de inatividade prolongado se for necessário depurar para solucionar o problema da mensagem de erro de parada. Fonte: http://support.microsoft.com/kb/254649
Cadê o DUMP? • Imagine que uma vez por mês seu servidor reinicia inesperadamente (a famosa Tela Azul). E você precisa resolver este problema o mais rápido possível. A peça chave para a resposta desse problema está no arquivo de DUMP (MEMORY.DMP). Até aqui, tudo bem. • Mas e se o arquivo MEMORY.DMP não foi criado? Como vamos achar o “culpado” pela Tela Azul? Fonte:http://soplat.net/2010/05/12/cade-o-dump-do-windows-2003xp/
Painel de Controle Sistemas e Segurança Sistema Configurações Avançadas do Sistema
Gerenciamento de Memória • Endereço de memória é um identificador único para um local de memória no qual um processador ou algum outro dispositivo pode armazenar pedaços de dados.
Gerenciamento de Memória • Em computadores modernos com endereçamento por byte, cada endereço representa um byte distinto de armazenamento.
Gerenciamento de Memória • Dados maiores que um byte podem residir em múltiplos bytes, ocupando uma seqüência de bytes consecutivos. • Alguns microprocessadores foram desenvolvidos para trabalhar com endereçamento por palavra, tornando a unidade de armazenamento maior que um byte
Gerenciamento de Memória • Tanto memória virtual quanto memória física utilizam endereçamento de memória.
Gerenciamento de Memória • Para facilitar a cópia de memória virtual em memória real, os sistemas operacionais dividem a memória virtual em páginas, cada uma contendo um número fixo de endereços.
Gerenciamento de Memória • Cada página é armazenada em disco até que seja necessária, sendo então copiada pelo sistema operacional do disco para a memória, transformando o endereço virtual em endereço real.
Gerenciamento de Memória • Tal transformação é invisível ao aplicativo, e permite que aplicativos operem independente de sua localização na memória física, fornecendo aos sistemas operacionais liberdade para alocar e realocar memória conforme necessário para manter o computador executando eficientemente.