Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os...

63
Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador faz quando a memória RAM acaba? Muito simples: utiliza a memória virtual.

Transcript of Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os...

Page 1: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória Virtual

O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela.

E o que o processador faz quando a memória RAM acaba? Muito simples: utiliza a memória

virtual.

Page 2: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória Virtual

• A memória virtual é uma espécie de arquivo

que é criado no computador e o processador

utiliza para armazenar dados que ele costuma

deixar na memória RAM. É como se ele

simulasse a memória RAM dentro do seu HD,

por isso que se chama memória virtual.

Page 3: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória VirtualMemória Virtual é um espaço variável e reservado no

disco onde o Sistema Operacional continua armazenando os dados que não couberam na memória RAM.

Na memória RAM ficam os dados temporários usados enquanto o computador está ligado, se ela enche, os dados vão sendo gravados no HD.

O desempenho de processamento é menor, pois o HD é muito mais lento que a memória.

Page 4: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória Virtual

• O sistema operacional é capaz de executar aplicações mesmo que a soma de todos os programas em execução simultânea supere a da memória RAM instalada no computador.

Page 5: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

SO - Memória

• O SO move ao disco rígido o conteúdo da memória RAM, liberando espaço para novas aplicações,se esses dados movidos ao HD voltem a ser necessários.

• O SO automaticamente realiza a operação inversa, carregando-os na memória RAM, razão pela quais muitos chamam este tipo de procedimento de troca de memória.

Page 6: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Funções – Memória Virtual

Relocação (ou recolocação), para assegurar que cada processo tenha o seu próprio espaço de endereçamento.

Proteção, para impedir que um processo utilize um endereço de memória que não lhe pertença.

Paginação (paging) ou troca (swapping), que possibilita a uma aplicação utilizar mais memória do que a fisicamente existente (essa é a função mais conhecida).

Page 7: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória Virtual

Page 8: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Memória Virtual

No Windows recebe o nome de: PAGE FILE

No Linux recebe o nome de: SWAP

Page 9: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Conceito- Swap

O SO escolhe um programa residente que é levado da memória para o disco (swap-out ) retornando posteriormente para a memória (swap-in).

Page 10: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Conceito - Paginação

Permite que o programa possa ser espalhado por áreas não contíguas de memória.

Page 11: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Conceito - Segmentação

Técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com seu próprio espaço de endereçamento.

Page 12: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Swap

• Acontece toda vez em que um processo esgota seu um certo tempo e surge outro processo na fila com uma prioridade maior que a dele.

• O tempo no entanto deve ser relativamente grande, pois a comunicação memória e disco rígido consome certo tempo,

Page 13: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Swap

Page 14: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Swap

• O disco rígido é mais lento que o armazenamento em memória principal, e o processo consiste de trazer um processo ao disco e levar outro a memória, essa troca de não deve ser realizado em espaço de tempo muito curto.

Page 15: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Swap

• Em sistemas UNIX particularmente o processo de swap é desabilitado por padrão e só usado quando a memória está realmente comprometida, isto se deve ao tempo de troca que é alto.

Page 16: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Paginação

• Na paginação a memória física é dividida em blocos de bytes contíguos denominados molduras de páginas (Page frames), geralmente com tamanho de 4 KiB (arquiteturas x86 e x86-64).

Page 17: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Paginação

Page 18: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Paginação

• O espaço de memória de um processo (contendo as instruções e dados do programa) é dividido em páginas que são fisicamente armazenadas nas molduras e possuem o mesmo tamanho destas.

Page 19: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Paginação

Page 20: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Novidade!

O kibibyte é um múltiplo do byte. 1 kibibyte 1024bytes.

O símbolo da unidade para o kibibyte é KiB.

A unidade foi criada pelo Comissão Eletrotécnica Internacional (IEC), em 1999.

Page 21: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

kibibyte

Foi aceite para ser usado por todos os principais padrões organizações. Ele foi projetado para substituir o kilobyte usada em alguns contextos de ciência da computação, que conflita com a definição do prefixo quilo.

Page 22: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Segmentação

Na segmentação existem vários espaços de endereçamento para cada aplicação (os segmentos). Neste caso, o endereçamento consiste em um par ordenado [segmento:deslocamento], onde o deslocamento é a posição do byte dentro do segmento.

Page 23: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Segmentação

Page 24: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Segmentação

Page 25: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Diferenças

• A principal diferença entre a paginação e a segmentação é a alocação da memória de maneira não fixa, a alocação depende da lógica do programa.

Page 26: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 27: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 28: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Resumindo

Page 29: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 30: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 31: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 32: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Tabela de Páginas

Page 33: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 34: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 35: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

TLB - Translation Lookaside Buffer

Page 36: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 37: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 38: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 39: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 40: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 41: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 42: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 43: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 44: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 45: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 46: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 47: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 48: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 49: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 50: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

• Só mais uma coisa: utilize o mesmo valor em "Tamanho inicial" 400 e "Tamanho final" 400, por exemplo. Isso evita que o arquivo fique fragmentado e o sistema consegue acessá-lo de forma mais eficiente...

Page 51: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

• Mas muito cuidado ao alterar estes valores, se tu alterar pra valor e depois aumentar a RAM altera esse valor antes, já vi começar a dar erro de tela azul por causa disso...

Page 52: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

• Pq não deixar em tamanho gerenciado pelo sistema??

• Não acho 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 53: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

• Por padrão, o Windows armazena o arquivo de paginação na partição de inicialização (a partição contém o sistema operacional e seus arquivos de suporte). O tamanho padrão do arquivo de paginação é 1,5 vezes a RAM total.

• http://support.microsoft.com/?scid=kb%3Bpt-br%3B314482&x=11&y=11

Page 54: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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

Page 55: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 56: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Gerenciamento de Memória

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

Page 57: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 58: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

Gerenciamento de Memória

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

Page 59: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 60: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 61: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 62: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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 63: Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.

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.