Gerência de Memória Virtual Mapeamento - inf.pucrs.br · Swapping em Memória Virtual Políticas...
-
Upload
doankhuong -
Category
Documents
-
view
228 -
download
0
Transcript of Gerência de Memória Virtual Mapeamento - inf.pucrs.br · Swapping em Memória Virtual Políticas...
Sistemas Operacionais
Gerência de MemóriaMemória virtual
Edson [email protected]
http://www.inf.pucrs.br/~emoreno
Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar
Problema
Memória principal pode não comportar todos os processos ativos
Solução
Emprego de memória virtual
Memória virtual
Esquema de armazenamento no qual a memória secundária é
endereçado como parte da memória principal
Introdução
Gerência de Memória VirtualMapeamento
Processador
Apenas executa/opera no espaço de endereçamento virtual
Deve existir mecanismo que transforme os endereços virtuais em reais.
Mapeamento
Permite tradução um endereço do espaço virtual para espaço real.
Sistemas modernos
Tarefa de tradução de endereços virtuais é realizada por
Hardware + sistema operacional
Não deve comprometer desempenho
Deve ser transparente a usuários e suas aplicações.
Gerência de Memória VirtualMapeamento
Tradução Unidade de gerência de memória (Memory Management Unit - MMU) em HW
Acionado sempre que se faz referência a um endereço virtual
Depois de traduzido Endereço real pode ser utilizado para o acesso à memória principal.
Cada processo tem o seu espaço de endereçamento
Responsabilidade do mecanismo de tradução Manter tabelas de mapeamento exclusivas para cada processo
Relacionar os endereços virtuais do processo às posições na memória real
Gerência de Memória VirtualMapeamento
A tabela de mapeamento
Estrutura de dados existente para cada processo.
Quando um determinado processo está sendo executado
Tradução dos endereços baseado na tabela de mapeamento do processo
Se um outro processo vai ser executado
Sistema deve passar a referenciar a tabela do novo processo.
A troca de tabelas de mapeamento é realizada através de um registrador
Indica a posição inicial da tabela corrente
Da mudança de contexto
Registrador é atualizado com o endereço da nova tabela
Gerência de Memória VirtualMapeamento
Tabelas mapeiam blocos de dados
Tamanho determina o número de entradas existentes nas tabelas de
mapeamento.
Quanto maior o bloco
Menos entradas existem nas tabelas de mapeamento
Menor o tamanho das tabelas de mapeamento
Técnicas empregadas pelos sistemas operacionais
Paginação
Segmentação
Segmentação com paginação
A memória virtual por paginação
Blocos de mesmo tamanho nos espaços de endereçamento
Virtual (memória secundária)
Páginas virtuais
Real (memória principal)
Páginas reais / quadros
Tabela de página
Individual a cada processo possui
Cada página virtual do processo
Presente na tabela (entrada na tabela de páginas - ETP)
Contém informações de mapeamento
Permitem ao sistema localizar a página real correspondente
Gerência de Memória VirtualMemória Virtual por Paginação
Além da informação sobre a localização da página virtual
Bit de validade (valid bit)
Indica se uma página está ou não na memória principal.
Zero indica página virtual não presente na memória principal
Um indica a página está localizada na memória.
Bit verificado sempre quando de uma requisição
Ausência de um página na MP acarreta uma falha (page fault)
Sistema transfere a página da memória secundária para a principal
Realizando uma operação de E/S conhecida como paginação.
Gerência de Memória VirtualMemória Virtual por Paginação
Número de page faults gerado por um processo depende de:
Como o programa foi desenvolvido
Qual a política de gerência de memória implementada
O overhead (sobrecarga) gerado pelo mecanismo de paginação
Inerente à gerência de memória virtual
Excesso de operações de E/S pode comprometer o desempenho
Gerência de Memória VirtualMemória Virtual por Paginação
Quando ocorre um page fault
Processo em questão passa do estado de execução para espera
Aguarda até que a página seja transferida para a memória principal.
Na troca de contexto
Tabela de mapeamento é salva
Informações do novo processo escalonado são restauradas.
Após a transferência da página para a memória principal
Processo é recolocado na fIla de processos no estado de pronto
Quando reescalonado poderá continuar sua execução.
Gerência de Memória VirtualMemória Virtual por Paginação
Gerência de Memória VirtualPolíticas de Busca de Páginas
MMU Permite a execução de um programa sem que seu código esteja completamente
residente na memória principal
Política de busca determina quando uma página deve ser carregada.
Estratégias para este propósito
Paginação por demanda
Paginação antecipada.
Paginação por demanda
Páginas transferidas da memória secundária para a principal quando referenciadas.
É possível que partes não executadas do programa nunca sejam carregadas
Paginação antecipada
Além da página referenciada, carrega páginas que podem ou não ser necessárias
Permite economia de tempo, mas pode causar perda de tempo e desperdiçar
memória
Gerência de Memória VirtualPolíticas de Alocação de Páginas
A política de alocação de páginas
Determina quantos frames cada processo pode manter na memória principal.
Alternativas de alocação
Fixa
Processo tem um número máximo de frames que pode ser utilizado
Caso o número de páginas reais seja insuficiente
Página do processo deve ser descartada
Variável
Número máximo de páginas pode variar durante sua execução
Emprega sua taxa de paginação e da ocupação da memória principal
Gerência de Memória VirtualTranslate Lookaside Buffer (TLB)
Gerência de memória virtual
Mapeamento implica em pelo menos dois acessos à memória principal
à tabela de páginas
à própria página.
Maioria das aplicações
Referencia um número reduzido de frames na memória principal
Princípio da localidade
Temporal e espacial
Uma pequena fração da tabela de mapeamento é realmente necessária.
Gerência de Memória VirtualTranslate Lookaside Buffer (TLB)
Translation Lookaside Buffer (TLB)
Permite mapear endereços virtuais em endereços físicos
Pode não requer acesso à tabela de páginas
Traduções prévias podem estar armazenadas na TLB
Funciona como uma memória cache
Foco está na resposta a endereços virtuais previamente buscados e traduzidos
Mantendo apenas as traduções dos endereços virtuais das páginas mais
recentemente referenciadas
Utiliza o esquema de mapeamento associativo
Gerência de Memória VirtualTranslate Lookaside Buffer (TLB)
Tradução de um endereço virtual Verifica primeiro o TLB
Caso o endereço virtual (tag) esteja na cache
Endereço físico é utilizado
Eliminando o acesso à tabela de mapeamento (TLB hit).
Caso o endereço não esteja na cache
Tabela de mapeamento deve ser consultada (TLB miss).
Se a página estiver na memória principal
Tradução do endereço virtual é colocada no TLB
Endereço é traduzido.
Caso contrário
Ocorre um page fault
A página é carregada para a memória
A tabela de mapeamento é atualizada
Informação é carregada para a TLB.
MEMÓRIA
CACHE
TLB HIT
TLB MISS
CACHE HIT
Envia dado
para a CPU
CACHE MISS
MEMÓRIA
PRINCIPAL
PAGE
HIT
Disco
PAGE
FAULT
TABELA
DE
PÁGINAS TLB
ENDEREÇO LÓGICO
CPU
HITMISS
Gerência de Memória VirtualTranslate Lookaside Buffer (TLB)
Gerência de Memória VirtualSwapping em Memória Virtual
A técnica de swapping
Pode ser aplicada em sistemas com memória virtual
Permite aumentar o número de processos que compartilham a memória principal
Aumenta o grau de multiprogramação do sistema.
Empregando quando
Existem novos processos para serem executados
Não há memória principal livre suficiente para alocação
Sistema utiliza o swapping
Selecionando um ou mais processos para saírem da memória
Oferecer espaço para novos processos.
Depois de escolhidos
Sistema retira os processos da memória principal para a secundária (swap out)
Páginas ou segmentos gravados em um arquivo de swap (swap file)
Gerência de Memória VirtualSwapping em Memória Virtual
Políticas que podem ser aplicadas na escolha dos processos
Principalmente escolhe considerando o estado do processo e sua prioridade.
Com base no estado dos processos
Seleciona, inicialmente, os processos que estão no estado de espera.
Seleção pode ser refinada em função do tipo de espera de cada processo.
Com base na prioridade
É possível que não existam processos suficientes no estado de espera
para atender as necessidades de memória do sistema.
Escolhe os processos no estado de pronto com menor prioridade
Gerência de Memória VirtualSwapping em Memória Virtual
O arquivo de swap
Compartilhado por todos os processos que estão sendo executados no
ambiente.
Quando um processo é criado
Sistema reserva um espaço no arquivo de swap para o processo.
Quando um processo é eliminado
Sistema libera a área alocada.
Gerência de Memória VirtualThrashing
Thrashing
Excessiva transferência blocos entre a memória principal e a secundária.
Na memória virtual por paginação
Thrashing ocorre em dois níveis
No próprio processo
Excessiva paginação ocorre devido ao elevado número de page faults
Processo passa mais tempo esperando por páginas do que executado
No sistema
Processos competindo por memória principal que espaço disponível
Solução
o Reduzir o número de páginas de cada processo na memória
Desempenho da máquina
Começa a diminuir a partir de um determinado número de
processos ativos
Característica dinâmica que depende:
Da arquitetura da máquina
Do tamanho da MP
Do número de processos ativos
Do tipo de processos que estão ativos (io-bound, cpu-bound)
Taxa de utilização do processador
cai exponencialmente quando
em trashing
Gerência de Memória VirtualThrashing