Você está na página 1de 41

Memria Virtual

Reviso Alice M. Tokarnia


DCA/FEEC/UNICAMP Maio/2012

Motivao Histrica
Programas grandes que ultrapassavam a capacidade da memria fsica...
Projeto de software inclua
dividir o programa em partes (segmentos, overlays) identificar partes mutuamente exclusivas

Durante a execuo
comandos do programa traziam as partes do disco para memria com antes de serem referenciadas
somente partes em memria poderiam ser referenciadas

Atualmente
Processo em execuo: utiliza memria para armazenar cdigo e variveis Computador executa vrios processos
cada processo tem seu espao de memria.
Em geral muito menor que o espao enderevel

necessrio compartilhar partes da memria fsica entre processos.

Diferenciando...
Espao de memria enderevel por um processador (Endereo Virtual)

Memria fsica instalada (Endereo Fsico)

Memria virtual
Particionamento da memria fsica em blocos
Mapeament_1: blocos (pginas ou segmentos) processos Proteo
caracterstica importante nos sistemas atuais

Compartilhamento Possvel comear a execuo com alguns dos blocos


Reduo do tempo para iniciar a execuo...

Mapeamento_2: endereo fsico endereo virtual

Mecanismo de Memria Virtual


Gerenciamento automtico de dois nveis da hierarquia (memria principal e secundria)
Atualmente a memria fsica e o disco magntico

Programas relocveis: podem executar em qualquer posio de memria


Anteriormente, uso de um registrador de relocao

exemplo de mapeamento Programa com 4 pginas

Diferena Quantitativa

Comparao de Terminologia:
cache + memria memria principal + secundria
blocos pginas ou segmentos ausncia falta de pgina ou falta de endereo

Substuio
Cache: controlada por hardware Memria Virtual: controlada pelo sistema operacional
Devido a maior penalidade associada falta de pgina

Sistema de Arquivo
Atualmente ocupa maior parte dos discos Memria secundria

Blocos X Segmentos
Blocos
Tamanho fixo, tpico 4096 ou 8192 bytes

Segmentos
tamanho varivel, 1-216 ou 232

Comparao

***

Estratgia Hbrida Segmentos de pginas


Motivao
Problema de substituio

Segmentos de pginas (paged segments)


Sementos podem ter nmero inteiro de pginas
Geralmente alguns nmeros fixos

Mltiplos tamanhos de pginas


tamanho de uma pgina = 2k x tamanho da menor pgina

Memria Virtual em 5 pontos...


1. Tamanho do bloco na memria principal
1. Pgina, segmento ou estratgia hbrida

2. Localizao do bloco na memria principal 3. Identificao do bloco da memria principal 4. Estratgia de substituio de blocos da memria principal 5. Estratgia de escrita

2. Localizao do bloco (memria principal)


Organizao totalmente associativa
Localizao determinada pelo sistema operacional
Objetivo: reduo das ausncias

3. Identificao do bloco (memria principal)


Endereo repartido : # de pgina ou segmento | offset

Tabela indexada por # da pgina ou do segmento


Armazena endereo fsico correspondente a um endereo virtual campo indica se a pgina ou segmento se encontra na memria

Pginas: Tabela de pginas


endereo fsico na tabela substitui o nmero da pgina

Segmentos
Endereo fsico na tabela somado ao offset

Mapeamento via Tabela de Pginas

Tamanho das tabelas de pgina


Exemplo: 32 bits de endereo virtual
Pginas (4 KB) # de pgina (20 bits) + offset (12 bits) 220 linhas na tabela

Supondo 4 bytes por linha na tabela de pgina


Incluindo endereo fsico e outras informaes

Tamanho da tabela 4 MB (!!) Por processo!!

Tabelas de Pginas Invertidas


Indexado pelo # de pgina fsico
Em geral, temos menos pginas fsicas que virtuais

# de pgina virtual aplicado a uma funo hashing HP/Intel IA-64 permite tanto tabelas de pginas tradicionais como invertidas
Escolha do projetista do sistema operacional

Tempo para acesso a tabela de pgina


Tabelas de pgina armazenadas em memria
1 acesso a informao 2 acessos memria

Uso de buffer de traduo


TLB, translation lookaside buffer cache dedicado a tabela de pginas

TLB do Opteron
totalmente associativo

4. Estratgia de substituio
LRU Aproximao de LRU
bit de referncia na tabela de pgina

5. Estratgia de escrita
Escrita na volta
Tempo de acesso ao disco magntico leva milhes de ciclos de relgio

Tabela de pginas inclui bit de escrita (dirty bit)


Evita escritas desnecessrias

1. Seleo do tamanho da pgina


Pginas maiores
tabelas de pginas menores Transferncia de pginas mais eficiente
Menor tempo por Byte

Para um determinado tamanho de TLB, reduo no nmero de ausncias do TLB

Pginas menores
Reduz desperdcio de memria devido a fragmentao interna
1.5 x tamanho da pgina por processo
Para os 3 segmentos principais de um processo (text, heap, stack)

Exemplo de cache com endereos fsicos


Tamanho de pgina: 8KB Endereo virtual: 64 bits (50 | 13) Endereo fsico: 41 bits (28 | 13) TLB: mapeamento direto, 256 linhas (ou blocos) L1: mapeamento direto, 8 KB L2: mapeamento direto, 4 MB

Exemplo de cache com endereos fsicos

Proteo
Projeto do processador e do sistema operacional

Projeto do processador
Garantir que a parte do estado referente ao processador possa ser armazenada e restabelecida
Instrues especiais

Projeto do sistema operacional


Garantir que um processo no interfira com outro Um processo no pode alterar sua prpria tabela de pginas

Conceitos relacionados
Multiprogramao, Proteo e Memria Virtual
Processo
Programa em execuo, com toda informao necessria para continuar a execuo

Multiprogramao
vrios processos em execuo
Exemplo: compartilhamento de tempo (time sharing)

Mudana de contexto (context switch) Proteo


necessidade de mecanismos para impedir que um processo altere o estado de outro

Acesso Privilegiado vrias organizaes


Usurio e sistema (user & kernel) Crculos
somente usurios mais confiveis podem ter acesso a todos as informaes no sistema Aplicaes de segurana crtica

Barreiras e chaves (locks, keys, capabilities)


Programas precisam de chaves para acesso a informaes crticas
Mecanismos para passar chaves de um programa a outro, impedindo a falsificao Hardware adicional para permitir processamento das chaves

Intel 80x86
Poltica de compatibilidade da companhia transformou esta arquitetura num autntico painel de tcnicas de proteo

AMD 64-bit
Memory Management -1
Memria sem segmentao (flat)
no existem partes da memria inacessvel a um programa...

Pginas de 4 KB, 2 MB, 4MB Endereo virtual de 64 bits


Forma cannica de endereo: 16 bits superiores do endereo virtual so extenso de sinal

Endereo fsico de 52 bits Opteron: end. virtual :48 bits, end. fsico: 40 bits

AMD 64-bit
Memory Management -2
Tabela de pginas hierrquica
nmero de nveis depende do tamanho do endereo Opteron: 4 nveis para pginas de 4 KB, 3 nveis para pginas de 4 MB

Em cada tabela
Linhas de 64 bits
espao reservado para uso futuro (compatibilidade) (bits superiores) informao de acesso e proteo (bits inferiores) Validade (presena), R/W (read/write), U/S (user/supervisor), D (pgina modificada), A (acesso desde da ltima vez que bit foi zerado) Tamanho da pgina, no execute, page level cache disable, page level write through

Tabela de pginas hierrquica do Opteron

Comentrios
Cada nvel subdivide a memria em 512 blocos
Com pginas de 4 KB
A tabela final contem o nmero de pgina fsica procurado Restam 16 bits reservados para extenso de sinal

Informao de proteo apenas do primeiro nvel da tabela de pginas Somente o sistema operacional pode ter acesso s tabelas de pgina
Programas usurios no conseguem acesso... Compartilhamento de pginas entre programas significa que o endereo fsico aparece na tabela de pginas de mais de um programa

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 1: Espao de endereamento pequeno
Limita o tamanho de programas e o espao para gerenciamento de memria Arquitetura IBM 360 projetado 6 anos antes do PDP11 ainda est em uso... (25 anos!!)
IBM 360 tem endereo de 24-31 bits, VAX tem endereo de 32 bits PDP-11 tem endereo de 16 bits

Bell & Strecker [1976]

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 2: Ignorar o impacto do sistema operacional na hierrquia de memria

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 3: Deixar a mudana no tamanho da pgina para os projetistas do sistema operacional
Arquitetura Alpha
Vrios tamanhos de pgina disponveis para escolha do sistema operacional
Projetistas sempre escolhiam as menores, quando deveriam escolher as maiores Consequncia: nmero alto de ausncias (no TLB), baixa performance!

Armadilhas e Enganos Projeto da Hierarquia de Memria


Engano 1: Previso da performance do cache de um programa com base no rastro de outro...

SPEC2000

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 4: Simulao de rastro insuficiente para prever a performance de um cache
Situaes
Rastro pequenos em caches grandes Localidade muda de acordo com a regies do programa Localidade muda de acordo com a entrada

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 5: Supervalorizar a largura de banda das memrias DRAM
Como os processadores fazem acessos ao cache L2 a latncia tambm importante

Armadilhas e Enganos Projeto da Hierarquia de Memria


Armadilha 6: implementar uma mquina virtual para arquiteturas que no foram projetadas para virtualizao
Problemas de classes de instrues
Instrues relacionadas a proteo de memria Leitura de registradores de controle no modo usurio... Sistema operacional executando em mquina virtual