Descrever os benefícios de um sistema de memória virtual
Explicar os conceitos de paginação sob demanda, algoritmos de substituição de páginas e alocação de quadros
1. Sistemas Operacionais I
Gerência de Memória: Memória Virtual
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating
Systems Concepts de Silberschatz, Galvin and Gagne
2. Objetivos
Descrever os benefícios de um sistema de
memó ria virtual
Explicar os conceitos de paginaç ão sob
demanda, algoritmos de substituiç ão de
páginas e alocaç ão de quadros
3. Contextualização
Memó ria virtual: separação da memó ria ló gica do usuário
da memó ria física.
Apenas uma parte do programa precisa estar na memó ria para
execuç ão
Portanto, o espaç o de endereç amento ló gico pode ser muito
maior que o espaç o de endereç amento físico
Permite que os espaç os de endereç amento sejam
compartilhados por vários processos
Permite que a criaç ão de processos seja mais eficiente
Memó ria virtual pode ser implementada de duas formas:
Paginaç ão sob demanda
Segmentaç ão sob demanda
7. Paginação sob demanda
Traz uma página para a memó ria apenas quando ela
é necessária
Menos operações de E/S
Menor utilização de memó ria
Resposta mais rápida
Mais usuários/processos
Página é necessária ⇒ referenciada
Referência invalida ⇒ aborta execução
Fora da memó ria ⇒ página é carregada
Lazy swapper – nunca traz uma página para
memó ria a menos que ela seja necessária
Um Swapper que liga com páginas é chamada paginador
9. Bit válido/inválido
Associa-se um bit de validade a cada entrada
da tabela de paginaç ão
(v ⇒ na memó ria, i ⇒ fora da memó ria)
Inicialmente setado para I para todas as
entradas
Durante a traduç ão de um endereç o, se o bit
vale I ⇒ falta de página!
11. Falta de página
A primeira referência a uma página fora da memó ria
causa uma exceç ão:
falta de página
1. O Sistema Operacional uma outra tabela para decidir
se houve uma:
Referência inválida ⇒ aborta o processo
Apenas uma referência a uma página fora da memó ria
1. Obtém um quadro livre
2. Carrega a página no quadro
3. Reconfigura as tabelas
4. Seta o bit de validade para v
5. Re-executa a instruç ão que gerou a falta de página
13. Desempenho da paginação sob
demanda
Taxa de falta de páginas 0 ≤ p ≤ 1.0
se p = 0 não háfalta de páginas
se p = 1, toda referência causa uma falta
Tempo efetivo de acesso (EAT)
EAT = (1 – p) x tempo de acesso a memó ria
+ p (tempo para tratar falta de página
+ tempo de swap out
+ tempo de carga da página
+ tempo para reiniciar a execuç ão)
14. Exemplo de paginação sob
demanda
Tempo de acesso à memó ria = 200 nanossegundos
Tempo médio para tratamento de uma falta de página
= 8 milissegundos
EAT = (1 – p) x 200 + p (8 milissegundos)
= (1 – p x 200 + p x 8,000,000
= 200 + p x 7,999,800
Se um acesso a cada 1.000 causa uma falta de página
então EAT = 8.2 microssegundos.
40 vezes mais lento!!
15. Criação de Processos
O uso de memó ria virtual possibilita outros
benefícios durante a criaç ão de um processo:
Copy-on-Write
Arquivos mapeados em memó ria (mais tarde)
16. Copy-on-Write
Copy-on-Write (COW) permite que processos pai
e filho compartilhem inicialmente as mesmas
páginas de memó ria
Uma página só é copiada quando algum dos
processos realiza uma operaç ão de escrita
COW permite uma criaç ão mais eficiente de
processo pois apenas páginas modificadas são
copiadas
19. O que acontece quando não há quadro livre?
Substituiç ão de página – encontra alguma
página na memó ria mas que não esteja
realmente em uso e a salva no disco (swap
out)
algoritmo!
desempenho – queremos um algoritmo que
resulte no menor número possível de faltas de
página
Algumas páginas podem ser trazidas para a
memó ria várias vezes
20. Substituição de página
Impede que haja uma super-alocaç ão de
memó ria ao modificar a rotina de tratamento de
falta de página para incluir a substituiç ão
Usa um bit de modificaç ão (dirty) para reduzir
o tempo de transferência – apenas páginas
modificadas precisam ser gravadas no disco
Substituiç ão de páginas completa a separaç ão
entre memó ria ló gica e memó ria física – uma
memó ria virtual muito grande pode conviver com
uma memó ria física bem menor
22. Processo básico de substituição
1. Localize a página desejada no disco
2. Localize um quadro livre:
- Se háum quadro livre, utilize-o
- Se não hátal quadro, utilizar um algoritmo de
substituiç ão para escolher um quadro vítima
3. Carregue a página desejada no quadro
(recentemente) livre; atualize as tabelas de páginas e
de quadros
4. Re-execute a instruç ão que causou a falta de página
24. Algoritmos de substituição de páginas
Queremos a menor taxa possível de faltas de página
Avaliamos um algoritmo utilizando uma sequência de
acessos a memó ria (sequência de referência) e
contando a quantidade de faltas de páginas
Em nossos exemplos utilizaremos as seguintes
sequências:
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7,
0, 1
29. Algoritmo Ótimo
Substitui a página que não seráacessada pelo maior período
de tempo
Exemplo com 4 quadros
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Como obter essa informação?
Útil para comparação com outros algoritmos
1
2
3
4
6 faltas
4 5
31. Menos Recentemente Usada (LRU)
Sequência de referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Implementação com contador
Cada página possui um contador que é atualizado com o valor
do reló gio sempre que a página é referenciada
Quando uma página precisa ser substituída, consultar o contador
para remover a que possuir o menor valor
5
2
4
3
1
2
3
4
1
2
5
4
1
2
5
3
1
2
4
3
33. Menos Recentemente Usada (LRU)
Implementaç ão com pilha – mantem uma pilha
duplamente encadeada com os números das
páginas:
Página referenciada
Move a página para o topo
Não requer algoritmo de busca
35. Aproximações do LRU
Bit de referência
Associar um bit a cada página, inicialmente = 0
Quando a página é referenciada, bit = 1
Substitui a página com bit = 0 (se existir alguma)
Não se conhece a ordem
Segunda chance
Requer um bit de referência
Substituiç ão do reló gio
Se a página a ser substituída (em sentido horário) tem bit = 1,
então
Seta bit = 0
Deixa a página na memó ria
Repete o processo para a pró xima página (em sentido horário)
37. Algoritmo de Contagem
Mantem um contado para o número de
referências a cada página
Algoritmo LFU: substitui a página com o
menor contador
Algoritmo MFU: substitui a página com o
maior contador
38. Alocação de Quadros
Cada processo precisa de um número mínimo
de quadros
Dois esquemas principais de alocaç ão
Alocaç ão fixa
Alocaç ão por prioridade
39. Alocação fixa
Alocaç ão igualitária: se há
100 quadros e 5
processos, alocar 20
quadros para cada um
Alocaç ão proporcional:
quadros são alocados de
acordo com o tamanho
dos processos
si = tamanho do processo pi
S = si∑
m = número total de quadros
ai = alocação para pi =
si
S
× m
5964
137
127
564
137
10
127
10
64
2
1
2
≈×=
≈×=
=
=
=
a
a
s
s
m
i
40. Alocação por prioridade
Usa uma alocaç ão proporcional baseada na
prioridade ao invés do tamanho
Se o processo Pi causa uma falta de página
Seleciona um de seus quadros para substituiç ão
Seleciona um quadro de um processo de menor
prioridade para substituiç ão
41. Alocação global versus local
Substituiç ão global: o processo seleciona
um quadro para substituiç ão de uma lista com
todos os quadros de memó ria - um processo
pode tomar um quadro de outro
Substituiç ão local: cada processo só
seleciona para substituiç ão os seus pró prios
quadros
42. Thrashing
Se um processo não tem páginas “suficiente” a
taxa de falta de páginas pode ser muito alta.
Isso leva a :
Baixa utilizaç ão da CPU
O Sistema Operacional conclui que precisa
aumentar o grau de multi-programaç ão
Um novo processo é adicionado à memó ria
Thrashing ≡ um processo fica paralisado
com operaç ões de swap in e swap out
44. Monitorando a taxa de faltas de página
Definimos uma taxa aceitável de faltas de página
Se a taxa atual é muito baixa o processo perde um
quadro
Se a taxa atual é muito alta o processo ganha um
quadro