Slide 1 - Ada e Babbage

Propaganda
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
Resumindo
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
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 - Translation Lookaside Buffer).
TLB - Translation Lookaside Buffer
• TLB - Consiste em uma pequena tabela
contendo os últimos endereços virtuais
solicitados e seus correspondentes endereços
físicos.
TLB - Translation Lookaside Buffer
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
Quem gerencia melhor a memória,
Windows ou Linux
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.
Gerenciamento de Memória
• Freqüentemente, ao citar tamanho de
palavra em computadores modernos, é citado
também o tamanho de endereços de memória
virtual em tal computador.
Gerenciamento de Memória
• Por exemplo, um computador de 32 bits
geralmente trata os endereços de memória
como valores inteiros de 32 bits, tornando o
espaço de endereçamento igual a 232 =
4.294.967.296 bytes de memória, ou 4 GB.
Download