Memória virtual

Propaganda
Memória física
Memória RAM(RandomAccess Memory), ou memória de acesso aleatório, é um tipo de
memória que permite a leitura e a escrita, utilizada como memória primária em sistemas
eletrônicos digital.
A memória principal de um computador baseado na Arquitetura de Von-Neumann é constituída
por RAM. É nesta memória que são carregados os programas em execução e os respectivos
dados do utilizador. Uma vez que se trata de memória volátil, os seus dados são perdidos
quando o computador é desligado. Para evitar perdas de dados, é necessário salvar a
informação para suporte não volátil
(por ex. disco rígido), ou memória secundária.
O nome da Memória RAM não é verdadeiramente apropriado, já que outros
tipos de memória (ROM, etc...) também permitem o acesso aleatório
a seu conteúdo. O nome mais apropriado seria Memória de Leitura e
Escrita.
A capacidade de uma memória é medida em Bytes, kilobytes (1 KB = 1024 ou 210 Bytes),
megabytes (1 MB = 1024 KB ou 220 Bytes) ou gigabytes
(1 GB = 1024 MB ou 230 Bytes).
Memória Virtual
O conceito de realocação de memória possibilitou o desenvolvimento de um mecanismo mais
sofisticado de utilização de memória denominado memória virtual. O conceito de memória virtual
está baseado em desvincular o endereçamento feito pelo programa dos endereços físicos da
memória principal. Assim, os programas e suas estruturas de dados deixam de estar limitados
ao tamanho da memória física disponível. Segundo Deitel, “o termo memória virtual é
normalmente associado com a habilidade de um sistema endereçar muito mais memória do que
a fisicamente disponível”. Este conceito surgiu em 1960 no computador Atlas, construído pela
Universidade de Manchester (Inglaterra), embora sua utilização mais ampla tenha acontecido
recentemente. A Figura 9 mostra a representação da memória virtual e real.
Figura 9 – Representação da memória virtual e real.
Conforme pode ser visto na Figura 9, a memória virtual de um sistema é, de fato, o(s) arquivo(s)
de troca ou swap file(s) gravado(s) no disco rígido. Portanto a memória total de um sistema, que
possui memória virtual, é a soma de sua memória física, de tamanho
fixo, com a memória virtual. O tamanho da memória virtual, chamado de arquivo de paginação
no Windows XP, é definido, basicamente, pelo menor valor dentre os seguintes:
• capacidade de endereçamento do processador;
• capacidade de administração de endereços do SO;
• capacidade de armazenamento dos dispositivos de armazenamento secundário (unidades
de disco).
Um programa no ambiente de memória virtual não faz referência a endereços físicos de
memória (endereço reais), mas apenas a endereço virtuais. No momento da execução de uma
instrução, o endereço virtual é traduzido para um endereço físico, pois o processador acessa
apenas posições da memória principal.
O mecanismo de tradução do endereço virtual para endereço físico é denominado mapeamento.
Este mecanismo, nos sistemas atuais, é feito pelo hardware, com o auxílio do SO, e ele traduz
um endereço localizado no espaço de endereçamento virtual para um endereço físico de
memória, pois o programa executado em seu contexto precisa estar no espaço de
endereçamento real para poder ser referenciado ou executado. Portanto um programa não
precisa estar necessariamente contíguo na memória real para ser executado. O mecanismo de
tradução se encarrega de manter tabelas de mapeamento exclusivas para cada processo,
relacionando os endereços virtuais do processo às suas posições na memória física.
A memória virtual pode ser implementada basicamente por meio dos mecanismos de paginação
e segmentação. Atualmente, paginação é o mecanismo mais popular de implementação de
memória virtual. A segmentação é uma alternativa menos utilizada, embora mais adequada do
ponto de vista de programação. Alguns sistemas usam ambas as técnicas.
Paginação
A paginação é a técnica de gerenciamento de memória que faz uso da memória virtual, ou seja,
o espaço de endereçamento é maior do que o tamanho da memória fisicamente presente no
sistema. Nesta técnica, o espaço de endereçamento total do sistema, denominado de espaço
de endereçamento virtual, é dividido em pequenos blocos de igual tamanho chamados páginas
virtuais ou simplesmente páginas. Cada página possui um número que a identifica. Da mesma
forma, a memória física é dividida em blocos iguais, do mesmo tamanho das páginas virtuais,
denominados de molduras de páginas. Cada moldura de página também é identificada por um
número, e corresponde uma certa região da memória física. Tanto as páginas virtuais como as
molduras de páginas começam a ser identificadas a partir do número zero.
Segmentação
Segmentação é a técnica de gerenciamento de memória onde os programas são divididos
logicamente em sub-rotinas e estruturas de dados e colocados em blocos de informações na
memória. Os blocos têm tamanhos variáveis e são chamados segmentos, cada um com seu
próprio espaço de endereçamento

A grande diferença entre a paginação e a segmentação é que, enquanto primeira divide o
programa em partes de tamanho fixo, sem qualquer ligação com a estrutura do
programa, a segmentação permite uma relação entre a lógica do programa e sua divisão
na memória.
Mecanismos para alocação de memória
{Simples}
 Contínua
Alocação
{ Particionada }
{ Estática }
{ Dinâmica }
 Não continua
Paginação
Segmentação
Segmentação com paginação
Até estudarmos memória virtual supor que para um programa ser executado ele
carregado completamente em memória.
Alocação contígua simples
• Sistema mais simples
• Memória principal é dividida em duas partições:
o Sistema operacional (parte baixa de memória)
o Processo de usuário (restante da memória)
• Usuário tem controle total da memória podendo inclusive acessar a área do
sistema operacional. Ex.: DOS
• Evolução: inserir proteção através de mecanismos de hardware +
software
o Registradores de base e de limite
o Memory Management Unit (MMU)
Alocação continua particionada
• Existência de múltiplas partições
• Imposta pela multiprogramação
• Filosofia:
o Dividir a memória em blocos (partições)
o Cada partição pode receber um processo (programa)
o Grau de multiprogramação é fornecido pelo número de partições
necessita
• Importante: não considerando a exstência de swapping
• Duas formas básicas:
o Alocação contígua com partições fixas (estática)
o Alocação contígua com partições variáveis (dinâmica)
• O sistema operacional é responsável pelo controle das partições
mantendo informações como:
o Partições alocadas
o Partições livres
Alocação contígua particionada fixa
• Memória disponível é dividida em partições de tamanho fixo que
podem ser do mesmo tamanho ou não
• Questões:
o Processos podem ser carregados em qualquer partição?
_ Depende se o código é absoluto ou relocável
o Número de processos que podem estar em execução ao mesmo tempo?
_ Sem swapping – igual ao número de partições (máximo)
_ Com swapping – maior que o número de partições
o Se o programa é maior que o tamanho da partição?
_ Não executa a menos que se empregue um esquema de
overlay.
SOBRE O WINDOWS 98

ELE NÃO GERENCIA COM SUA CAPACIDADE MÁXIMA MAIS QUE 128MB DE RAM.

Se sabemos o quanto temos de ocupação em disco e limitamos o tamanho desta área
destinada à memória virtual, conseguimos um bom ganho no desempenho e uma área
do HD com 2 ou 3 vezes a quantidade de memória que o micro possui.

Se o seu micro possui 32Mb de memória, especifique 96, se 64 use 128 e assim por
diante. Use o raciocínio inverso para micros com grande quantidade de memória, uma
vez que não há necessidade de grandes áreas de disco para esta função. Se observar
problemas durante a execução de algum programa, altere estes valores, de forma a
otimizar seu micro para as suas necessidades.
Download