Você está na página 1de 32

Captulo 10 Memria Virtual

Fundamentos Somente parte do processo precisa estar na memria principal para execuo Espao de endereamento lgico pode ser maior do que o espao fsico disponvel Pode ser implementada como paginao por demanda ou segmentao por demanda

Figura Diagrama mostrando que a memria virtual maior do que a memria fsica

Paginao sob demanda Uma pgina trazida para a memria quando necessria para a execuo do processo

Menos E/S Necessidade de menos memria fsica Resposta mais rpida Mais processos Podem ser invlidas aborta o processo Podem gerar a necessidade de traz-las para a memria

As referncias a pginas:

Figura Transferncia de uma memria paginada para espao de disco contguo

Conceitos bsicos Cada entrada da tabela de pginas conta com um bit que identifica se a pgina est na memria (valor 1) ou no (valor 0) Inicialmente o valor 0 para todas as entradas Na traduo de endereos, h uma falta de pgina quando o bit correspondente 0

Figura Tabela de pgina quando algumas pginas no esto na memria principal

Numa falta de pgina, o controle passa para o Sistema Operacional


Obtm um frame vazio Carrega a pgina neste frame Atualiza a tabela, bit = 1 Retoma a instruo que gerou a falta de pgina

Figura Etapas do tratamento de uma falta de pgina

Pode no haver frames livres

Substituio de pgina encontra uma pgina no usada na memria e a leva para o disco Qual pgina ? Se p == 0, no h faltas de pgina Se p == 1, cada referncia gera uma falta

Taxa de falta de pgina: 0 p 1.0


Tempo efetivo de acesso (EAT) leva em considerao (alm da taxa de falta de pg.):

Tempo de tratamento da falta de pgina pelo s.o., tempo para reescrever a pgina vtima na memria secundria (eventual), tempo para ler a pgina para a memria, retomada da execuo pelo s.o.

Substituio de pgina Que pgina ser substituda para dar lugar a uma vindo da memria secundria? Processo de substituio:

Localiza a pgina desejada no disco Encontra um frame livre:


Se existe, usa o disponvel; Caso contrrio, usa um algoritmo de substituio para escolher a pgina vtima

L a pgina para o frame e atualiza as tabelas de pginas e de frames Retoma a execuo do processo

Figura Necessidade de substituio de pgina

Figura Substituio de pgina

Algoritmos de substituio Busca uma baixa taxa de falta de pginas avaliado pela execuo sobre uma string de referncias memria e respectivo clculo do nmero de faltas de pgina Exemplo de string de referncias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Substituio de pgina FIFO Com 3 frames, h 9 faltas de pgina Com 4 frames, h 10 faltas de pgina

Anomalia de Belady

Figura Grfico de falta de pgina versus nmero de quadros

Figura Algoritmo de substituio de pgina FIFO

Algoritmo timo Substitui a pgina que no ser usada pelo maior perodo de tempo No pode ser implementado usado para avaliar algoritmos de substituio: o quanto eles se aproximam do algoritmo timo

Figura Algoritmo de substituio de pgina timo

Algoritmo de substituio LRU (least recently used) Implementao com contadores:

Cada entrada de pgina conta com um contador que atualizado com o valor de relgio da ltima referncia a esta pgina Substitui-se a pgina com o menor valor de data Associa-se um bit a cada pgina, inicialmente com valor 0 Quando a pgina referenciada, o bit setado Substitui-se uma com o bit em 0

Bit de referncia

Figura Algoritmo de substituio de pgina LRU

Segunda chance

Usa o bit de referncia Se uma pgina a ser substituda possui o bit em 1, ento:

Reseta o bit Mantm a pgina na memria Passa prxima pgina, na ordem do relgio, usando as mesmas regras Se todas tm o bit em 1, torna-se FIFO

Figura Algoritmo de substituio de pgina da segunda chance (ou do clock)

Alocao de frames Cada processo precisa de um nmero mnimo de quadros Alocao Fixa ou por Prioridade Fixa

Igual ou proporcional ao tamanho Alocao proporcional, no ao tamanho, mas prioridade Substitui pgina do prprio processo, ou de algum de menor prioridade

Por Prioridade

Alocao global versus local Global o processo usa qualquer frame livre ou qualquer frame como vtima Local - o processo usa um frame livre ou um frame como vtima do seu prprio conjunto de frames Thrashing O processo no executa fica transportando pginas para tratar faltas

O segredo da paginao o modelo de localidade Durante a execuo, um processo migra de uma localidade para outra Por que ocorre o thrashing?

Tamanho da localidade > tamanho total de memria disponvel

O modelo de conjunto de trabalho janela do conjunto de trabalho tempo no qual sero anotados os acessos a pginas pelo processo. Exemplo: durante 10.000 instrues WS Pi (conjunto de trabalho do processo Pi) = o conjunto das pginas acessadas no mais recente (varia com o tempo)

pequeno, no vai atingir toda a localidade grande, vai pegar vrias localidades = , o processo inteiro

Demanda total de frames: D = WS Pi

Ocorre thrashing quando D > m (total de frames disponveis) Poltica: se D > m, suspende um processo

Figura Modelo de conjunto de trabalho

Pode-se usar um temporizador e bits de referncia para manter o conjunto de trabalho. Pginas com bits em 1 pertencem ao conjunto

Freqncia de falta de pgina estabelecida um taxa de falta de pginas aceitvel


Se a taxa baixa, o processo perde frames Se a taxa alta, o processo ganha frames

Figura Freqncia de falta de pginas

Consideraes adicionais Pr-paginao levar para a memria, de uma vez, todas as pginas que sero necessrias Tamanho da pgina envolve os seguintes aspectos:

fragmentao Tamanho da tabela de pginas Tempo de E/S localidade

Idealmente, o conjunto de trabalho de cada processo deve caber na TLB

Caso contrrio, vai ocorrer um alto ndice de falta de pgina

Certas pginas precisam ser grampeadas na memria

Exemplo: pginas que esto recebendo dados provenientes da leitura de um arquivo

Segmentao por demanda semelhante paginao por demanda usando segmentos no lugar de pginas

Figura O motivo pelo qual os quadros usados para I/O devem estar na memria

Fonte bibliogrfica

Sistemas Operacionais Conceitos e Aplicaes, de Abraham Silberschatz, Peter Galvin e Greg Gagne, 3 tiragem, Editora Campus

Você também pode gostar