Você está na página 1de 33

Anlise e Desenvolvimento de Sistemas

Cincia da Computao
Redes de Computadores

Sistemas Operacionais

Professor: Andr Sobral


e-mail: asobral@unicarioca.edu.br
Sistemas Operacionais

Ger. Memria Virtual


Motivadores:
Custo com a desfragmentao na Alocao
Particionada Dinmica.
Processo necessita de um espao de
endereamento contguo.
O cdigo do programa no utilizado na ntegra
o tempo todo.
Grande capacidade de armazenamento da
Memria Secundria (discos).
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual uma tcnica de gerncia de
memria, em que a memria principal e secundria
so combinadas dando a impresso de uma memria
muito maior.
Desta forma os programas deixam de estar limitados
ao tamanho da memria fsica disponvel.
No momento da execuo de uma instruo, o
endereo virtual referenciado traduzido para um
endereo fsico, pois o processador manipula apenas
posies da memria principal.
Sistemas Operacionais

Ger. Memria Virtual


Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
O processador apenas executa instrues e
referencia dados residentes no espao de
endereamento real, portanto, deve existir um
mecanismo que transforme os endereos
virtuais em endereos reais.
Esse mecanismo, conhecido por mapeamento,
permite traduzir um endereo localizado no
espao virtual para um associado no espao
real.
Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
Como consequncia do mapeamento, um
programa no mais precisa estar
necessariamente em endereos contguos na
memria principal para ser executado.
O dispositivo de hardware responsvel por esta
traduo conhecido como Unidade de
Gerncia de Memria (Memory Management
Unit - MMU), sendo acionado sempre que se faz
referncia a um endereo virtual.
Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
A tabela de mapeamento uma estrutura de
dados existente para cada processo.
Quando um determinado processo est sendo
executado, o sistema utiliza a tabela de
mapeamento do processo em execuo para
realizar a traduo de seus endereos virtuais.
Se um outro processo vai ser executado, o
sistema deve passar a referenciar a tabela de
mapeamento do novo processo.
Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
Caso o mapeamento fosse realizado para cada
clula na memria principal, o espao ocupado
pelas tabelas seria muito grande, o que
inviabilizaria a implementao do mecanismo de
memria virtual.
Em funo disso, as tabelas mapeiam blocos de
dados, cujo tamanho determina o nmero de
entradas existentes nas tabelas.
Quanto maior o bloco, menos entradas existem
nas tabelas.
Sistemas Operacionais

Ger. Memria Virtual


Mapeamento:
Os blocos podem ser criados de duas maneira,
sendo definidos como:
Pginas: os blocos so todos de tamanho fixo,
definidos na inicializao do sistema e so
todos do mesmo tamanho.
Segmentos: os blocos tem tamanhos variveis,
definidos dinamicamente e podem ter tamanhos
diferentes. Apenas os pares virtual/real devem
ter o mesmo tamanho.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
As pginas no espao virtual so denominadas
pginas virtuais, enquanto as pginas no espao
real so chamadas de pginas reais, frames ou
quadros.
A memria virtual por paginao a tcnica de
gerncia de memria em que o espao de
endereamento virtual e o espao de
endereamento real so divididos em blocos de
mesmo tamanho chamados pginas.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Todo o mapeamento de endereo virtual em real
realizado atravs de tabelas de pginas.
Cada processo possui sua prpria tabela de
pginas, e cada pgina virtual do processo possui
uma entrada na tabela (entrada na tabela de
pginas - ETP), com informaes de mapeamento
que permitem ao sistema localizar a pgina real
correspondente.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Alm da informao sobre a localizao da pgina
virtual, a ETP possui outras informaes, como o
bit de validade (valid bit), que indica se uma pgina
est ou no na memria principal.
Se o bit tem o valor 0, isto indica que a pgina
virtual no est na memria principal, mas se
igual a 1, a pgina est localizada na memria.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Sempre que o processo referencia um endereo
virtual, a unidade de gerncia de memria verifica,
atravs do bit de validade, se a pgina que contm
o endereo referenciado est ou no na memria
principal.
Caso a pgina no esteja na memria, dizemos
que ocorreu um page fault.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Neste caso, o sistema transfere a pgina da
memria secundria para a memria principal,
realizando uma operao de E/S conhecida como
page in, ou paginao.
O nmero de page faults gerados por cada
processo em um determinado intervalo de tempo
definido como taxa de paginao do processo.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Quando um processo referencia um endereo e
ocorre um page fault, o processo em questo
passa do estado de execuo para o estado de
espera, at que a pgina seja transferida do disco
para a memria principal.
Aps a transferncia da pgina para a memria
principal, o processo recolocado na fila de
processos no estado de pronto, e quando for
reescalonado poder continuar sua execuo.
Sistemas Operacionais

Ger. Memria Virtual


Memria Virtual por Paginao:
Quando um programa executado, as pginas
virtuais so transferidas da memria secundria
para a memria principal e colocadas nos frames.
Sempre que um programa fizer referncia a um
endereo virtual, o mecanismo de mapeamento
localizar na ETP da tabela do processo o
endereo fsico do frame.
Sistemas Operacionais

Ger. Memria Virtual


Poltica de busca de Pginas:
Determina quando uma pgina deve ser carregada
para a memria.
Existem duas estratgias para este propsito:
Paginao por demanda: as pginas do processo
so transferidas da memria secundria para a
principal apenas quando so referenciadas.
Leva para a memria principal somente as pginas
realmente necessrias
Cada pgina referenciada gera um page fault e
sucessivas operaes de leitura no disco.
Sistemas Operacionais

Ger. Memria Virtual


Poltica de busca de Pginas:
Existem duas estratgias para este propsito:
Paginao antecipada: o sistema carrega, alm da
pgina referenciada, outras pginas que podem ou
no ser necessrias.
Existe uma grande economia de tempo em levar um
conjunto de pginas da memria secundria.
Por outro lado, caso o processo no precise dessas
pginas, o sistema ter perdido tempo e ocupado
memria principal desnecessariamente.
Sistemas Operacionais

Ger. Memria Virtual


Poltica de substituio de Pginas:
Em algumas situaes, quando um processo atinge o
seu limite de alocao de frames e necessita alocar
novas pginas na memria principal, o Sistema
Operacional deve selecionar, dentre as diversas
pginas alocadas, qual dever ser liberada.
Este mecanismo chamado de poltica de substituio
de pginas.
Uma pgina real, quando liberada por um processo,
est livre para ser utilizada por qualquer outro
processo.
Sistemas Operacionais

Ger. Memria Virtual


Poltica de substituio de Pginas:
Sistemas Operacionais

Ger. Memria Virtual


Poltica de substituio de Pginas:
Caso os processos tenham um nmero insuficiente de
pginas para a execuo do programa, provvel que
diversos frames referenciados ao longo do seu
processamento no estejam na memria principal.
A ocorrncia de um nmero elevado de page faults
gera inmeras operaes de E/S.
Neste caso, ocorre um problema conhecido como
thrashing, provocando srias consequncias ao
desempenho do sistema.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
LFU (Least Frequently Used Menos Frequentemente
Usado):
O algoritmo LFU seleciona a pgina menos
referenciada, ou seja, o frame menos utilizado.
Para isso, mantido um contador com o nmero de
referncias para cada pgina na memria principal.
A pgina que possuir o contador com o menor
nmero de referncias ser escolhida, ou seja, o
algoritmo evita selecionar pginas que so bastante
utilizadas.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
LFU (Least Frequently Used Menos Frequentemente
Usado):
As pginas que esto h pouco tempo na memria
principal podem ser justamente aquelas
selecionadas, pois seus contadores estaro com o
menor nmero de referncias.
possvel tambm que uma pgina muito utilizada
no passado no seja mais referenciada no futuro.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
LRU (Least Recently Used Menos Recentemente
Usado)
O algoritmo LRU seleciona a pgina na memria
principal que est h mais tempo sem ser
referenciada.
Se considerarmos o princpio da localidade,
provvel que uma pgina que no foi utilizada
recentemente no seja referenciada novamente em
um futuro prximo.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
LRU (Least Recently Used Menos Recentemente
Usado)
Para implementar esse algoritmo, necessrio que
cada pgina tenha associado o momento do ltimo
acesso, que deve ser atualizado a cada referncia a
um frame.
Quando for necessrio substituir uma pgina, o
sistema far uma busca por um frame que esteja h
mais tempo sem ser referenciado.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
NRU (Not Recently Used No Usado Recentemente)
O algoritmo NRU bastante semelhante ao LRU,
porm com menor sofisticao.
Para a implementao deste algoritmo necessrio
um bit adicional, conhecido como bit de referncia
(BR).
O bit indica se a pgina foi utilizada recentemente, e
est presente em cada entrada da tabela de pginas.
Sistemas Operacionais

Ger. Memria Virtual


Algoritmos de Substituio de Pginas:
NRU (Not Recently Used No Usado Recentemente)
Quando uma pgina carregada para a memria
principal, o bit de referncia alterado pelo
hardware, indicando que a pgina foi referenciada
(BR = 1).
Periodicamente, o sistema altera o valor do bit de
referncia (BR = 0), e medida que as pginas so
utilizadas, o bit associado a cada frame retorna para
1.
Sistemas Operacionais

Ger. Memria Virtual


Exerccio de Fixao:
Um sistema possui 4 frames. A tabela abaixo apresenta
para cada pgina o momento de carga, o momento do
ltimo acesso, o bit de referncia e o bit de modificao:

a) Qual pgina ser substituda utilizando NRU? ___


b) Qual pgina ser substituda utilizando FIFO?___
c) Qual pgina ser substituda utilizando LRU? ___
Sistemas Operacionais

Ger. Memria Virtual


Exerccio de Fixao:
Considere um processo com limite de pginas reais igual
a 4 e um sistema que implemente a poltica de substituio
de pginas LRU. Quantos page faults ocorrero
considerando que as pginas virtuais so referenciadas na
seguinte ordem: 07172372103.
Sistemas Operacionais

Prxima Aula

Aplicao da AV2.