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.

Upload: denilson-beretta-lobo

Post on 07-Apr-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

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.