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

Upload: alexandre-duarte

Post on 07-Jul-2015

2.416 views

Category:

Education


4 download

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

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