Vous êtes sur la page 1sur 26

Sistemas Operacionais

Gerncia de Memria
Memria virtual
Edson Moreno
edson.moreno@pucrs.br
http://www.inf.pucrs.br/~emoreno
Slides baseados nas apresentaes dos prof. Tiago Ferreto e Alexandra Aguiar
Problema
Memria principal pode no comportar todos os processos ativos
Soluo
Emprego de memria virtual
Memria virtual
Esquema de armazenamento no qual a memria secundria
endereado como parte da memria principal
Introduo
Gerncia de Memria Virtual
Mapeamento
Gerncia de Memria Virtual
Mapeamento
Processador
Apenas executa/opera no espao de endereamento virtual
Deve existir mecanismo que transforme os endereos virtuais em reais.
Mapeamento
Permite traduo um endereo do espao virtual para espao real.
Sistemas modernos
Tarefa de traduo de endereos virtuais realizada por
Hardware + sistema operacional
No deve comprometer desempenho
Deve ser transparente a usurios e suas aplicaes.
Gerncia de Memria Virtual
Mapeamento
Traduo
Unidade de gerncia de memria (Memory Management Unit - MMU) em HW
Acionado sempre que se faz referncia a um endereo virtual
Depois de traduzido
Endereo real pode ser utilizado para o acesso memria principal.
Cada processo tem o seu espao de endereamento
Responsabilidade do mecanismo de traduo
Manter tabelas de mapeamento exclusivas para cada processo
Relacionar os endereos virtuais do processo s posies na memria real
Gerncia de Memria Virtual
Mapeamento
Gerncia de Memria Virtual
Mapeamento
A tabela de mapeamento
Estrutura de dados existente para cada processo.
Quando um determinado processo est sendo executado
Traduo dos endereos 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 atravs de um registrador
Indica a posio inicial da tabela corrente
Da mudana de contexto
Registrador atualizado com o endereo da nova tabela
Gerncia de Memria Virtual
Mapeamento
Tabelas mapeiam blocos de dados
Tamanho determina o nmero 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
Tcnicas empregadas pelos sistemas operacionais
Paginao
Segmentao
Segmentao com paginao
A memria virtual por paginao
Blocos de mesmo tamanho nos espaos de endereamento
Virtual (memria secundria)
Pginas virtuais
Real (memria principal)
Pginas reais / quadros
Tabela de pgina
Individual a cada processo possui
Cada pgina virtual do processo
Presente na tabela (entrada na tabela de pginas - ETP)
Contm informaes de mapeamento
Permitem ao sistema localizar a pgina real correspondente
Gerncia de Memria Virtual
Memria Virtual por Paginao
Gerncia de Memria Virtual
Memria Virtual por Paginao
Alm da informao sobre a localizao da pgina virtual
Bit de validade (valid bit)
Indica se uma pgina est ou no na memria principal.
Zero indica pgina virtual no presente na memria principal
Um indica a pgina est localizada na memria.
Bit verificado sempre quando de uma requisio
Ausncia de um pgina na MP acarreta uma falha (page fault)
Sistema transfere a pgina da memria secundria para a principal
Realizando uma operao de E/S conhecida como paginao.
Gerncia de Memria Virtual
Memria Virtual por Paginao
Nmero de page faults gerado por um processo depende de:
Como o programa foi desenvolvido
Qual a poltica de gerncia de memria implementada
O overhead (sobrecarga) gerado pelo mecanismo de paginao
Inerente gerncia de memria virtual
Excesso de operaes de E/S pode comprometer o desempenho
Gerncia de Memria Virtual
Memria Virtual por Paginao
Quando ocorre um page fault
Processo em questo passa do estado de execuo para espera
Aguarda at que a pgina seja transferida para a memria principal.
Na troca de contexto
Tabela de mapeamento salva
Informaes do novo processo escalonado so restauradas.
Aps a transferncia da pgina para a memria principal
Processo recolocado na fIla de processos no estado de pronto
Quando reescalonado poder continuar sua execuo.
Gerncia de Memria Virtual
Memria Virtual por Paginao
Gerncia de Memria Virtual
Memria Virtual por Paginao
Gerncia de Memria Virtual
Polticas de Busca de Pginas
MMU
Permite a execuo de um programa sem que seu cdigo esteja completamente
residente na memria principal
Poltica de busca determina quando uma pgina deve ser carregada.
Estratgias para este propsito
Paginao por demanda
Paginao antecipada.
Paginao por demanda
Pginas transferidas da memria secundria para a principal quando referenciadas.
possvel que partes no executadas do programa nunca sejam carregadas
Paginao antecipada
Alm da pgina referenciada, carrega pginas que podem ou no ser necessrias
Permite economia de tempo, mas pode causar perda de tempo e desperdiar
memria
Gerncia de Memria Virtual
Polticas de Alocao de Pginas
A poltica de alocao de pginas
Determina quantos frames cada processo pode manter na memria principal.
Alternativas de alocao
Fixa
Processo tem um nmero mximo de frames que pode ser utilizado
Caso o nmero de pginas reais seja insuficiente
Pgina do processo deve ser descartada
Varivel
Nmero mximo de pginas pode variar durante sua execuo
Emprega sua taxa de paginao e da ocupao da memria principal
Gerncia de Memria Virtual
Translate Lookaside Buffer (TLB)
Gerncia de memria virtual
Mapeamento implica em pelo menos dois acessos memria principal
tabela de pginas
prpria pgina.
Maioria das aplicaes
Referencia um nmero reduzido de frames na memria principal
Princpio da localidade
Temporal e espacial
Uma pequena frao da tabela de mapeamento realmente necessria.
Gerncia de Memria Virtual
Translate Lookaside Buffer (TLB)
Translation Lookaside Buffer (TLB)
Permite mapear endereos virtuais em endereos fsicos
Pode no requer acesso tabela de pginas
Tradues prvias podem estar armazenadas na TLB
Funciona como uma memria cache
Foco est na resposta a endereos virtuais previamente buscados e traduzidos
Mantendo apenas as tradues dos endereos virtuais das pginas mais
recentemente referenciadas
Utiliza o esquema de mapeamento associativo
Gerncia de Memria Virtual
Translate Lookaside Buffer (TLB)
Traduo de um endereo virtual
Verifica primeiro o TLB
Caso o endereo virtual (tag) esteja na cache
Endereo fsico utilizado
Eliminando o acesso tabela de mapeamento (TLB hit).
Caso o endereo no esteja na cache
Tabela de mapeamento deve ser consultada (TLB miss).
Se a pgina estiver na memria principal
Traduo do endereo virtual colocada no TLB
Endereo traduzido.
Caso contrrio
Ocorre um page fault
A pgina carregada para a memria
A tabela de mapeamento atualizada
Informao carregada para a TLB.
MEMRIA
CACHE
TLB HIT
TLB MISS
CACHE HIT
Envia dado
para a CPU
CACHE MISS
MEMRIA
PRINCIPAL
PAGE
HIT
Disco
PAGE
FAULT
TABELA
DE
PGINAS
TLB
ENDEREO LGICO
CPU
HIT
MISS
Gerncia de Memria Virtual
Translate Lookaside Buffer (TLB)
Gerncia de Memria Virtual
Swapping em Memria Virtual
A tcnica de swapping
Pode ser aplicada em sistemas com memria virtual
Permite aumentar o nmero de processos que compartilham a memria principal
Aumenta o grau de multiprogramao do sistema.
Empregando quando
Existem novos processos para serem executados
No h memria principal livre suficiente para alocao
Sistema utiliza o swapping
Selecionando um ou mais processos para sarem da memria
Oferecer espao para novos processos.
Depois de escolhidos
Sistema retira os processos da memria principal para a secundria (swap out)
Pginas ou segmentos gravados em um arquivo de swap (swap file)
Gerncia de Memria Virtual
Swapping em Memria Virtual
Gerncia de Memria Virtual
Swapping em Memria Virtual
Polticas 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 esto no estado de espera.
Seleo pode ser refinada em funo do tipo de espera de cada processo.
Com base na prioridade
possvel que no existam processos suficientes no estado de espera
para atender as necessidades de memria do sistema.
Escolhe os processos no estado de pronto com menor prioridade
Gerncia de Memria Virtual
Swapping em Memria Virtual
O arquivo de swap
Compartilhado por todos os processos que esto sendo executados no
ambiente.
Quando um processo criado
Sistema reserva um espao no arquivo de swap para o processo.
Quando um processo eliminado
Sistema libera a rea alocada.
Gerncia de Memria Virtual
Thrashing
Thrashing
Excessiva transferncia blocos entre a memria principal e a secundria.
Na memria virtual por paginao
Thrashing ocorre em dois nveis
No prprio processo
Excessiva paginao ocorre devido ao elevado nmero de page faults
Processo passa mais tempo esperando por pginas do que executado
No sistema
Processos competindo por memria principal que espao disponvel
Soluo
o Reduzir o nmero de pginas de cada processo na memria
Desempenho da mquina
Comea a diminuir a partir de um determinado nmero de
processos ativos
Caracterstica dinmica que depende:
Da arquitetura da mquina
Do tamanho da MP
Do nmero de processos ativos
Do tipo de processos que esto ativos (io-bound, cpu-bound)
Taxa de utilizao do processador
cai exponencialmente quando
em trashing
Gerncia de Memria Virtual
Thrashing

Vous aimerez peut-être aussi