Você está na página 1de 72

Sistemas operacionais

modernos
Terceira edio

ANDREW S. TANENBAUM

Captulo 3
Gerenciamento de
memria
Introduo
Programas tendem a se expandir a fim de ocupar toda a memria
disponvel

Programador deseja memria infinitamente grande, rpida e no


voltil

Por questes de preo, opta-se por utilizar uma hierarquia de memria

Gerenciador de memria deve gerenci-la de modo eficiente


Sem abstrao de memria
Cada programa simplesmente considera a memria fsica.
3 modelos de organizao:
( a ) Antigos computadores de grande porte
( b ) Sistemas embarcados
( c ) primeiros computadores pessoais com MS-DOS
Mltiplos programas sem abstrao de memria
possvel atravs de swapping (1 por vez)
Hardware especial pode permitir mais de um
Problemas de referncias absolutas incorretas
Soluo realocao esttica = carregamento lento
A histria se repete em sistemas embarcados e cartes inteligentes
Abstrao de memria: espao de endereamento

Desvantagens da exposio da memria fsica:

Danos intencionais ou acidentais

Difcil executar mltiplos programas simultaneamente

Soluo

Espao de endereamento, ou seja, conjunto de endereos que


um processo pode usar para enderear a memria
Registrador-base e limite

Utilizados em verses simples da


realocao dinmica

Limitam o endereamento de um processo

Desvantagem
Necessidade de executar uma adio e
uma comparao e, cada referncia a
memria.
Troca de memria

Quantidade de RAM p/ todos os processos > memria pode comportar

Soluo:
Swapping
Memria virtual

Alocao e desalocao de processos criam buracos na memria


Podem ser combinados com a compactao de memria
No usada em virtude do tempo de processamento gasto
Tamanho do espao de locao
Se processo possui tamanho fixo = alocao exata
Se processo possui tamanho varivel = alocao extra uma boa
idia.
Troca de memria
Troca de memria
Gerenciando a Memria Livre

Mapa de bits
Tamanho da unidade de locao inversamente proporcional ao
tamanho do mapa de bits
Unidade grande = muita memria desperdiada
Simples
Problema para encontrar sequncia de bits livres (busca muito
lenta)
Gerenciando a Memria Livre
Lista encadeada
Lista com posies de memria livre
Algoritmos de busca usados:
First fit (primeiro encaixe)
Next fit (prximo encaixe)
Best fit (melhor encaixe)
Mais lento
Desperdia mais memria
Worst fit (pior encaixe)
Pesquisas mostram no ser uma boa idia
Todos os 4 poderiam ser + rpidos se houvessem listas separadas
Quick fit (encaixe mais rpido)
Mantm listas separadas p/ alguns tamanhos de memria
mais solicitados.
Gerenciamento de memria com mapa de
bits
Gerenciamento de memria com listas
encadeadas
Exerccios
1. Quais so as principais dificuldades
encontradas para gerenciar uma memria
sem abstrao?
2. Defina espao de endereamento
3. Diferencie os algoritmos first fit e next fit.
4. Quais as dificuldades de se trabalhar com
listas de unidades de memria livres e
ocupadas separadas?
Memria virtual - paginao

Tamanho dos softwares aumenta mais rpido que o tamanho


das memrias

1960 Diviso manual e sujeita a erros, de programas em


mdulos chamados sobreposies

Espao de endereamento dividido em blocos (pginas)

MMU Mapeia endereos virtuais em endereos fsicos

Transferncias de pginas completas


Memria virtual - paginao
Memria virtual - paginao

Bit presente/ausente
X na figura
Falta de pgina
Memria Virtual Tabela de pginas
Estrutura de uma entrada de uma
tabela de pginas
Acelerando a paginao

Problemas na implementao da paginao:

O mapeamento do endereo virtual para o


endereo fsico deve ser rpido.
Se o espao virtual for grande, a tabela de pginas
ser grande.
Buffers para Traduo de Endereos - TLB

Mapeia endereos fsicos sem


passar pela tabela de pginas

Apenas endereos mais usados

Page miss (ausncia de pgina)

Page hit (presena de pgina)


Gerenciamento da TLB por software
TLB feita pelo SO e no por hardware

TLB grande = eficincia da TLB por software aceitvel, com


MMU simples com > rea no CPU p/ outros recursos

Estratgias p/ melhorar o desempenho


SO usa intuio para descobrir pginas usadas e antecipar
carregamento.

Ausncia na TLB
Soft miss (ausncia leve)
Hard miss (ausncia completa)
Tabelas de pginas multinvel
Pode possuir 3, 4 ou mais nveis
Mais nveis = maior flexibilidade
Duvidoso se complexidade de
hardware > que 3 nveis seja
vantajosa.
Tabelas de pginas invertidas
Exerccios
1. O que falta de pgina?

2. Qual a funo da TLB?

3. Diferencie soft miss e hard miss.

4. Como funciona a tabela de pginas multinvel?


Algoritmos de Substituio de Pginas

A falta de pgina fora uma escolha


qual pgina deve ser removida?
alocao de espao para a pgina a ser trazida para a
memria

A pgina modificada deve primeiro ser salva


se no tiver sido modificada apenas sobreposta

Melhor no escolher uma pgina que est sendo


muito usada
provavelmente precisar ser trazida de volta logo

slide 26 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de substituio de pginas

Algoritmo timo de substituio de pgina.


Algoritmo de substituio de pgina no usado recentemente.
Algoritmo de substituio de pgina primeiro a entrar, primeiro
a sair.
Algoritmo de substituio de pgina segunda chance.
Algoritmo de substituio de pgina de relgio.
Algoritmo de substituio de pgina usado menos
recentemente.
Algoritmo de substituio de pgina de conjunto de trabalho.
Algoritmo de substituio de pgina WSClock.
Algoritmo de Substituio de Pginas timo

Se uma pgina ser usada aps 10000


instrues, e outra aps 5000, a primeira deve
ser substituda numa falta de pgina;
Problema: no h como o SO saber quando
uma pgina ser novamente acessada;
E se a prxima instruo for para acessar a
primeira pgina citada acima?
Algoritmo impossvel de ser implementado;

slide 28 2009 Pearson Prentice Hall. Todos os direitos reservados.


O Algoritmo de Substituio de Pgina
No Usada Recentemente (NUR)
Cada pgina tem os bits Referenciada (R) e
Modificada (M)
Bits so colocados em 1 quando a pgina referenciada
e modificada
As pginas so classificadas, pelo SO
Classe 0: no referenciada, no modificada
Classe 1: no referenciada, modificada
Classe 2: referenciada, no modificada
Classe 3: referenciada, modificada
NUR remove pgina aleatoriamente
da classe de ordem mais baixa que no esteja vazia

slide 29 2009 Pearson Prentice Hall. Todos os direitos reservados.


O Algoritmo de Substituio de Pgina
No Usada Recentemente (NUR)
melhor remover uma pgina modificada,
mas que no foi referenciada;
Algoritmo fcil de entender e implementar;
Desempenho no timo, mas adequado;

slide 30 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de Substituio de Pgina
Primeira a Entrar, Primeira a Sair
Mantm uma lista encadeada de todas as pginas
pgina mais antiga na cabea da lista
pgina que chegou por ltimo na memria no final da lista
Na ocorrncia de falta de pgina
pgina na cabea da lista removida
nova pgina adicionada no final da lista
Desvantagem
pgina h mais tempo na memria pode ser usada com
muita freqncia
Raramente usado em sua configurao pura

slide 31 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de Substituio de Pgina
Segunda Chance (SC)
Modificao de FIFO;
Desta vez, se o bit R for 1, a pgina ser poupada, o
bit R colocado em 0 e a pgina vai para o final da
fila;
Se no, a pgina ser removida;
D-se chance s pginas que esto sendo utilizadas,
mesmo sendo antigas;
Se todas as pginas forem referenciadas, o algoritmo
degenera-se para FIFO;

slide 32 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de Substituio de Pgina
Segunda Chance (SC)

Operao do algoritmo segunda chance


a) lista de pginas em ordem FIFO
b) estado da lista em situao de falta de pgina no instante 20, com o
bit R da pgina A em 1 (nmeros representam instantes de
carregamento das pginas na memria)
slide 33 2009 Pearson Prentice Hall. Todos os direitos reservados.
Algoritmo de Substituio
de Pgina Relgio
Difere-se do Segunda Chance apenas na
implementao;
O SC desnecessariamente ineficaz, j que
coloca constantemente no final da fila de
pginas;
O Relgio cria simplesmente uma lista circular;
Um ponteiro aponta para a cabea da lista;

slide 34 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de Substituio
de Pgina Relgio

slide 35 2009 Pearson Prentice Hall. Todos os direitos reservados.


Menos Recentemente Usada (MRU)

Aproximao do desempenho terico do algoritmo


timo;
Assume que pginas usadas recentemente logo
sero usadas novamente
retira da memria pgina que h mais tempo no usada
Implementao por SW muito onerosa, pois tem-se
que atualizar uma lista encadeada;

slide 36 2009 Pearson Prentice Hall. Todos os direitos reservados.


Menos Recentemente Usada (MRU)

Uma lista encadeada de pginas deve ser mantida


pgina mais recentemente usada no incio da lista, menos usada
no final da lista
atualizao da lista cada referncia memria
Implementao por HW:
Uso do algoritmo NFU (No usada frequentemente)
Contador de 64 bits, que incrementado a cada instruo
Mantem-se contador em cada entrada da tabela de pgina
escolhe pgina com contador de menor valor

slide 37 2009 Pearson Prentice Hall. Todos os direitos reservados.


Menos Recentemente Usada (MRU)

Outra maneira em HW:


Para uma mquina com n molduras, gera-se
matriz de n x n, inicialmente com todos os valores
0;
Sempre que a moldura k for referenciada, o HW
marcar os bits da linha k com 1, e todos os bits
da coluna k com 0;
Retira-se a pgina com menor valor binrio

slide 38 2009 Pearson Prentice Hall. Todos os direitos reservados.


Menos Recentemente Usada (MRU)

MRU usando uma matriz pginas referenciadas na


ordem 0,1,2,3,2,1,0,3,2,3
slide 39 2009 Pearson Prentice Hall. Todos os direitos reservados.
Simulao do MRU em Software

Embora implementaes anteriores sejam


realizveis, no h mquinas com o HW
descrito;
Usa-se o algoritmo do envelhecimento:
Coloca-se o bit R no bit mais esquerda do
contador, a cada tic;
Desloca-se direita todos os bits

slide 40 2009 Pearson Prentice Hall. Todos os direitos reservados.


Simulao do MRU em Software

slide 41 2009 Pearson Prentice Hall. Todos os direitos reservados.


Algoritmo de substituio de pgina do
conjunto de trabalho
Precisa determinar a cada instante quais pginas pertencem
ao conjunto de trabalho
A idia principal encontrar uma pgina que no esteja
presente no conjunto de trabalho e remov-la da memria.
Algoritmo de substituio de pgina do
conjunto de trabalho
Algoritmo de substituio de pgina
WSClock
Amplamente utilizado
Mistura do algoritmo do relgio com o do conjunto de
trabalho

(Continua)
Algoritmo de substituio de pgina
(Continuao)
WSClock
Resumo dos algoritmos de substituio de
pgina
Exerccios
1. Porque o algoritmo timo de substituio de pgina no pode ser
implementado na prtica?
2. Diferencie o algoritmo de substituio de pgina no usado
recentemente e o algoritmo de substituio de pgina menos
usado recentemente.
3. Qual o principal problema encontrado no algoritmo de
substituio de pgina primeiro a entrar, primeiro a sair?
4. Como funciona o algoritmo de substituio de pgina segunda
chance?
5. Explique o funcionamento do algoritmo de substituio de pgina
de conjunto de trabalho.

slide 47 2009 Pearson Prentice Hall. Todos os direitos reservados.


Poltica de alocao local versus global
Os algoritmos de substituio de pgina devem remover somente pginas
do processo ou qualquer uma disponvel?
Local (somente do processo)
Ultrapaginao; ou
Desperdcio de memria

Global (toda a memria)


Deve decidir continuamente quantas molduras alocar para cada processo
Mesmo tanto para todos
Injusto com processo de tamanhos diferentes
Proporcional ao tamanho
Boa idia
Deve estabelecer tamanho mnimo
Utilizar algoritmo PFF (Frequncia de faltas de pginas) para controlar o
tamanho do conjunto de locao.
Poltica de alocao local versus global
Poltica de alocao local versus global
PFF tentar manter a frequncia de paginao para cada processo
em limites aceitveis.
Os algoritmos de substituio algumas vezes independe da poltica de
alocao.
FIFO, MRU, LRU
Outros porm so puramente baseados na alocao local
WSClock, Conjunto de trabalho

slide 50 2009 Pearson Prentice Hall. Todos os direitos reservados.


Controle de Carga
Mesmo com um bom projeto, o sistema ainda pode
sofrer ultrapaginao (thrashing)

Quando o algoritmo PFF indica


alguns processos precisam de mais memria
mas nenhum processo precisa de menos

Soluo:
Reduzir o nmero de processos que competem pela memria
levar alguns deles para disco e liberar a memria a eles alocada
reconsiderar grau de multiprogramao

slide 51 2009 Pearson Prentice Hall. Todos os direitos reservados.


Tamanho de Pgina

Tamanho de pgina pequeno:


Vantagens
menos fragmentao interna
menos programa no usado na memria

Desvantagens
programas precisam de mais pginas
tabelas de pgina maiores
Tempo para transferncia de muitas pginas pequenas maior do
que tempo para transferncia de poucas pginas grandes
Maior parte do tempo gasto no posicionamento para leitura/escrita

slide 52 2009 Pearson Prentice Hall. Todos os direitos reservados.


Tamanho de Pgina

Um valor tpico de tamanho de pgina era 1 KB, mas


atualmente 4 KB ou 8 KB

A medida que as memrias se tornam maiores, o


tamanho da pgina tambm cresce
No linearmente
Quadruplicar o tamanho da memria raramente duplica o
tamanho da pgina

slide 53 2009 Pearson Prentice Hall. Todos os direitos reservados.


Espaos Separados de
Instrues e Dados

Em um computador com esse projeto, ambos os espaos


de endereamento podem ser paginados independente
um do outro
Pginas Compartilhadas

Compartilhar
pginas eficiente

Nem todas as
pginas so
compartilhveis

Dois processos que compartilham o


mesmo cdigo de programa e, por
conseqncia, a mesma tabela de
pginas para instrues
55
slide 55 2009 Pearson Prentice Hall. Todos os direitos reservados.
Bibliotecas compartilhadas
Reduz arquivos executveis
Economiza espao na memria
Atualizao de uma biblioteca no torna necessrio
recompilar os programas que a chamam
Poltica de Limpeza

Precisa de um processo que executa em background, um


daemon de paginao
Inspeciona periodicamente o estado da memria

Quando apenas algumas molduras de pgina esto


disponveis
Seleciona pginas a serem removidas usando um algoritmo de
substituio

Pode ser implementada atravs de lista circular (relgio)


com dois ponteiros
Ponteiro da frente controlado pelo daemon de paginao
Ponteiro de trs usado para substituio de pgina (como no do
relgio)

slide 57 2009 Pearson Prentice Hall. Todos os direitos reservados.


Exerccios

1. Cite as vantagens e desvantagens da alocao global


versus alocao local.

2. A poltica de alocao influencia na escolha do algoritmo


de escalonamento. Justifique.

3. O que melhor: pginas grandes ou pequenas? Justifique.

4. Cite as vantagens e desvantagens do compartilhamento de


pginas.

slide 58 2009 Pearson Prentice Hall. Todos os direitos reservados.


Tratamento da falta de pgina

O hardware cria uma cilada para o ncleo, salvando o contador do


programa na pilha.

Uma rotina em cdigo iniciada para salvar o contedo dos


registradores de uso geral e outras informaes volteis.

O sistema operacional descobre a ocorrncia de uma falta de


pgina e tenta descobrir qual pgina virtual necessria.

Uma vez conhecido o endereo virtual que causou a falta da


pgina, o sistema verifica se esse endereo vlido e se a
proteo consistente com o acesso.
Tratamento da falta de pgina

Se a moldura da pgina selecionada estiver suja, a pgina


escalonada para ser transferida para o disco e ser realizado um
chaveamento de contexto.

Quando a moldura da pgina estiver limpa, o sistema operacional


buscar o endereo em disco onde est a pgina virtual solicitada
e escalonar uma operao para traz-la.

Quando a interrupo de disco indicar que a pgina chegou na


memria, as tabelas de pginas sero atualizadas para refletir sua
posio, e ser indicado que a moldura de pgina est normal.
Tratamento da falta de pgina
A instruo que estava faltando recuperada para o estado
em que se encontrava quando comeou, e o contador de
programa reiniciado a fim de apontar para aquela instruo.

O processo em falta escalonado, o sistema operacional


retorna para a rotina, em linguagem de mquina, que o
chamou.

Esta rotina recarrega os registradores e outras informaes


de estado e retorna ao espao de usurio para continuar a
execuo como se nada tivesse ocorrido.
Backup de instruo
Mais fcil de entender do que de explicar
Se a interrupo acontecer no meio de uma instruo o SO
ficar perdido
Necessidade de registradores especiais, ou o SO ter que
se virar
Fixao de Pginas na Memria

Memria virtual e E/S interagem ocasionalmente


Processo emite chamada ao sistema para ler do disco para
o buffer
enquanto espera pela E/S, outro processo inicia
ocorre uma falta de pgina
buffer do primeiro processo pode ser escolhido para ser levado para
disco
Soluo possvel
Fixao de pginas envolvidas com E/S na memria (processo
conhecido como reteno de pgina)
Memria secundria
Onde alocar as pginas retiradas da memria.
Junto ao sistema de arquivos (windows)
Em um disco separado (Linux)
Mapeamentos
Esttico (espao de swap reservado antecipadamente do mesmo
tamanho que as pginas)
Dinmico (alocao e liberao de espao quando necessrio)
Separao da poltica e mecanismo

Torna mais fcil gerenciar a complexidade de qualquer


sistema
Sistema de gerenciamento de memria dividido em
trs partes:
Um manipulador de MMU de baixo nvel
Um manipulador de falta de pgina que faz parte do ncleo
Um paginador externo executado no espao do usurio
Vantagens:
Cdigo mais modular e flexvel
Desvantagens
Sobrecarga em chaveamentos ncleo/usurio
Sobrecarga nas trocas de mensagens
Separao da poltica e mecanismo
Segmentao
Em alguns casos ter 2 ou mais espaos de
endereamento separados melhor do que ter apenas 1
Exemplo: Um compilador tem muitas tabelas que so
construdas conforme a compilao ocorre,
possivelmente incluindo:
O cdigo-fonte sendo salvo para impresso (em sistema em
lotes).
A tabela de smbolos os nomes e atributos das variveis.
A tabela com todas as constantes usadas, inteiras e em ponto
flutuante.
A rvore sinttica, a anlise sinttica do programa.
A pilha usada pelas chamadas de rotina dentro do compilador.
Segmentao
Em um endereamento nico, podemos chegar em uma situao
onde haver entradas livres para determinada tabela e espao
esgotado para outros.
Segmentao
Outra possibilidade trabalhar com segmentos independentes onde
o contedo do segmento poder crescer sem encontrar nada em
seu espao de endereamento capaz de impedir seu crescimento.
Segmentao
Implementao de Segmentao Pura

(a)-(d) Desenvolvimento de fragmentao externa


(e) Remoo da fragmentao via compactao
71
slide 71 2009 Pearson Prentice Hall. Todos os direitos reservados.
Exerccios
1. Explique com suas palavras o tratamento de falta
de pgina
2. O que reteno de pgina?
3. Diferencie os tipos de mapeamentos na memria
secundria.
4. Qual a vantagem de existir a segmentao?
5. Na sua opinio, quem melhor: segmentao ou
paginao