resumindo na arquitetura x86 (32 e 64 bits), são usadas a segmentação e a paginação. o espaço...

52
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].

Upload: internet

Post on 18-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 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,

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].

Page 2: 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,

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

Page 3: 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,

Resumindo

Page 4: 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,

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.

Page 5: 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,

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.

Page 6: 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,

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.

Page 7: 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,

Tabela de Páginas

Page 8: 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,

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).

Page 9: 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,

TLB - Translation Lookaside Buffer• TLB - Consiste em uma pequena tabela

contendo os últimos endereços virtuais solicitados e seus correspondentes endereços físicos.

Page 10: 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,

TLB - Translation Lookaside Buffer

Page 11: 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,

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.

Page 12: 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,

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).

Page 13: 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,

Linux em 32 Bits

Este espaço é tradicionalmente conhecido como espaço de troca (swap space), embora o mecanismo adotado seja a paginação.

Page 14: 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,

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.

Page 15: 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,

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.

Page 16: 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,

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.

Page 17: 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,

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.

Page 18: 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,

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.

Page 19: 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,
Page 20: 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,

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.

Page 21: 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,

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.

Page 22: 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,

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.

Page 23: 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,

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?

Page 24: 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,

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

Page 25: 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,

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.

Page 26: 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,

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.

Page 27: 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,

Cuidado!

• Muito cuidado ao alterar estes valores, principalmente caso o tamanho da memória RAM sofra alterações. Pode gerar despejo da memória.

Page 28: 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,

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.

Page 29: 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,

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

Page 30: 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,

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

Page 31: 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,

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

Page 32: 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,

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/

Page 33: 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,

Painel de Controle Sistemas e Segurança Sistema Configurações Avançadas do Sistema

Page 34: 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,
Page 35: 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,
Page 36: 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,
Page 37: 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,
Page 38: 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,
Page 39: 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,
Page 40: 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,
Page 41: 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,
Page 42: 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,
Page 43: 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,

Quem gerencia melhor a memória, Windows ou Linux

Page 44: 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,

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.

Page 45: 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,

Gerenciamento de Memória

Em computadores modernos com endereçamento por byte, cada endereço representa um byte distinto de armazenamento.

Page 46: 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,

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

Page 47: 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,

Gerenciamento de Memória

Tanto memória virtual quanto memória física utilizam endereçamento de memória.

Page 48: 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,

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.

Page 49: 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,

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.

Page 50: 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,

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.

Page 51: 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,

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.

Page 52: 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,

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.