Gerência de Memória: Memória Virtual

44
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

description

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

Transcript of Gerência de Memória: Memória Virtual

Page 1: Gerência de Memória: Memória Virtual

Sistemas Operacionais I

Gerência de Memória: Memória Virtual

Prof. Alexandre Duarte : http://alexandrend.comCentro 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

Page 2: Gerência de Memória: Memória Virtual

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

Page 3: Gerência de Memória: Memória Virtual

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

Page 4: Gerência de Memória: Memória Virtual

Memória virtual maior que a memória física

Page 5: Gerência de Memória: Memória Virtual

Espaço de endereçamento virtual

Page 6: Gerência de Memória: Memória Virtual

Biblioteca compartilhada utilizando memória virtual

Page 7: Gerência de Memória: Memória Virtual

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

Page 8: Gerência de Memória: Memória Virtual

Transferência de memória paginada para disco

Page 9: Gerência de Memória: Memória Virtual

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!

Page 10: Gerência de Memória: Memória Virtual

Tabela de paginação com algumas páginas fora da memória principal

Page 11: Gerência de Memória: Memória Virtual

Falta de página

A primeira referência a uma página fora da memó ria causa uma exceç ão:

falta de página1. 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 livre2. Carrega a página no quadro3. Reconfigura as tabelas4. Seta o bit de validade para v5. Re-executa a instruç ão que gerou a falta de página

Page 12: Gerência de Memória: Memória Virtual

Sequência de passos para tratar uma falta de página

Page 13: Gerência de Memória: Memória Virtual

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)

Page 14: Gerência de Memória: Memória Virtual

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!!

Page 15: Gerência de Memória: Memória Virtual

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)

Page 16: Gerência de Memória: Memória Virtual

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

Page 17: Gerência de Memória: Memória Virtual

Antes do processo 1 modificar a página C

Page 18: Gerência de Memória: Memória Virtual

Após o processo 1 modificar a página C

Page 19: Gerência de Memória: Memória Virtual

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

Page 20: Gerência de Memória: Memória Virtual

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

Page 21: Gerência de Memória: Memória Virtual

Exemplo da necessidade uma substituição de página

Page 22: Gerência de Memória: Memória Virtual

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

Page 23: Gerência de Memória: Memória Virtual

Substituição de página

Page 24: Gerência de Memória: Memória Virtual

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

Page 25: Gerência de Memória: Memória Virtual

Gráfico de faltas de páginas versus número de quadros

Page 26: Gerência de Memória: Memória Virtual

First-In-First-Out (FIFO)

Sequência de referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

3 quadros (3 páginas na memó ria ao mesmo tempo)

4 quadros

Anomalia de Belady: mais quadros ⇒ mais faltas de página

1

2

3

1

2

3

4

1

2

5

3

4

9 faltas

1

2

3

1

2

3

5

1

2

4

5 10 faltas

44 3

Page 27: Gerência de Memória: Memória Virtual

FIFO ilustrando a Anomalia de Belady

Page 28: Gerência de Memória: Memória Virtual

Substituição FIFO

Page 29: Gerência de Memória: Memória Virtual

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

Page 30: Gerência de Memória: Memória Virtual

Algoritmo Ótimo

Page 31: Gerência de Memória: Memória Virtual

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

Page 32: Gerência de Memória: Memória Virtual

Menos Recentemente Usada (LRU)

Page 33: Gerência de Memória: Memória Virtual

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

Page 34: Gerência de Memória: Memória Virtual

LRU com a utilização de uma pilha

Page 35: Gerência de Memória: Memória Virtual

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)

Page 36: Gerência de Memória: Memória Virtual

Algoritmo da Segunda Chance

Page 37: Gerência de Memória: Memória Virtual

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

Page 38: Gerência de Memória: Memória Virtual

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

Page 39: Gerência de Memória: Memória Virtual

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 = siS

×m

5964137127

56413710

127

10

64

2

1

2

≈×=

≈×=

===

a

a

s

s

m

i

Page 40: Gerência de Memória: Memória Virtual

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

Page 41: Gerência de Memória: Memória Virtual

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

Page 42: Gerência de Memória: Memória Virtual

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

Page 43: Gerência de Memória: Memória Virtual

Thrashing

Page 44: Gerência de Memória: Memória Virtual

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