Mem ória Virtual - Universidade Federal do...

63
Prof. Marcelo Z. do Nascimento [email protected] BC1518-Sistemas Operacionais Mem Mem ó ó ria Virtual ria Virtual (aula 9) (aula 9)

Transcript of Mem ória Virtual - Universidade Federal do...

Page 1: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

Prof. Marcelo Z. do [email protected]

BC1518-Sistemas Operacionais

MemMemóória Virtualria Virtual(aula 9)(aula 9)

Page 2: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

RoteiroRoteiro

� Memória Virtual

� Paginação sob demanda

� Cópia na escrita

� Algoritmos de Substituição de Página

� Thrashing

� Arquivos mapeados na memória

� Leituras Sugeridas

� Exercícios

06/04/09 2

Page 3: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

MemMemóóriaria VirtualVirtual

� Há muitos anos os programas maiores que a memória eram divididos em módulos menores (overlays) => Programador;

◦ Overlays => eram mantidos em disco e carregados dinamicamente na memória;

� Responsável: sistema operacional;

◦ Desvantagem: Trabalho lento/alto custo computacional;

� Memória Virtual (MV)

◦ Idéia básica: tamanho total de um programa pode exceder a quantidade de memória física disponível para ele.

06/04/09 3

Page 4: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

MemMemóóriaria VirtualVirtual

� Características:

◦ Técnica que combina memória principal (RAM) e secundária (Disco rígido);

◦ Fundamentação: não vincular o endereçamento feito pelos programadas aos endereços físicos da memória principal;

◦ Maximiza o número de processos na memória;

◦ Busca reduzir a fragmentação;

◦ Permite trabalhar com estruturas de dados maiores que o tamanho da memória física disponível;

06/04/09 4

Page 5: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

MemMemóóriaria VirtualVirtual◦ Espaço de endereçamento da memória principal (RAM) e memória secundária => blocos do mesmo tamanho:� As páginas no espaço virtual => denominados páginas virtuais;

� As páginas no espaço real => páginas reais ou frames (quadro);

◦ Há uma tabela de páginas: responsável por mapear páginas virtuais em quadros de páginas para cada processo;

� Memória virtual pode ser implementada por: � Paginação por Demanda;� Segmentação por Demanda.

06/04/09 5

Page 6: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

06/04/09 6

Memória Virtual

Memória Principal

Mapeamento

.

.

.

.

.

.

• Mapeamento – permite que um programa não precise estar necessariamente em endereços contíguos na memória principal para ser executado;

EspaEspaççoo de de EndereEndereççamentoamentoVirtualVirtual

Page 7: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

7Memória Virtual pode ser maior do que a memória física

MemMemóóriaria VirtualVirtual

Page 8: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

MemMemóóriaria VirtualVirtualProcesso:

� Visão -> endereço lógico e existe em trechos contíguos na memória;

� Na verdade a MMU faz associação das páginas lógicas aos quadros de página físicos;

� O grande espaço vázio (espaços de endereços esparsos) faz parte do espaço de endereços virtuais, mas exigirá páginasfísicas apenas se a pilha ou heap crescer;

� Também permite vincular bibliotecas de forma dinâmica durante a execução do programa

06/04/09 8

Page 9: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

9

� Essa técnica busca trabalhar com memória virtual da seguinte forma: ◦ Uma página é carregada para memória apenas quando necessária.

� Mas, qual o motivo?◦ Necessário menos E/S;◦ Resposta mais rápida, porque é carregado apenas as primeiras páginas;

◦ Menos espaço de memória para cada processo;

◦ Então, mais processos pode ser admitidos no sistema.� Como isso acontece?

◦ Processo gera o endereço lógico (virtual) o qual émapeado para endereço físico;

◦ Se a página solicitada não está na memória => SO carrega do disco (memória secundária).

PaginaPaginaççãoão porpor DemandaDemanda

Page 10: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

10

� Cada entrada na tabela de página tem um bit valid–invalid:◦ v ⇒ na memória;◦ i ⇒ não está na memória;◦ Inicial: configurado com I em todas entradas.

� Durante a tradução de endereço, se o bit valid–invalid esta i, pode ser:◦ Referência ilegal (espaço de endereçamento fora da área do processo) ⇒ aborta processo;

◦ Referência Legal mas não está na memória ⇒ page fault(carrega a página do disco).

vvvvi

ii

….

Frame # valid-invalid bit

page table

Então, como descobrir onde está uma página na memória?

Page 11: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

11

� O que ocorre se uma página não foi trazida para a memória?� O acesso a uma página marcada como inválida causa uma interceptação por falha de página (page fault).

� Essa trap é repassada para o SO e o procedimento para tratá-la deve decidir:◦ Referência inválida � abortar Processo;◦ Não está na memória � carregar página:

�Encontra um quadro livre;�Troca página do disco para o quadro (Operação de E/S);

�Modifica tabela, configurando como bit válido= v;�Reinicia a instrução que causou page fault.

Interceptação por Falha de Página

Page 12: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

12

Interceptação por Falha de Página

Page 13: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

13

Desempenho de Páginação porDemanda

� Probabilidade de uma falha de Página 0 ≤ p ≤ 1.0◦ Se p = 0 significa que não houve falha de página◦ Se p = 1 significa que toda referência é uma falha

� Tempo de Acesso Efetivo (TAE):TAE = (1 – p) * tempo de acesso a memória (10 a 200 nanossegundos) + p * tempo de falha de página.

◦ Tempo e falha de página = serviço de interrupção de falha de página (~microsegundos) + Leitura da página requerida (~milissegundos) + reinicio do processo (~microsegundos).

� Lembre-se: Leitura na página requerida pode solicitar escrita de outra página para o disco se não houver quadro livre.

Page 14: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

14

� Como MV permite criar processos rápidos e eficiente?◦ Emprega uma técnica Cópia na Escrita (CNE).

� A técnica CNE permite ambos os processos, pai e filho, compartilhar inicialmente as mesmas páginasna memória (durante o fork( )):◦ Minimiza o número de novas páginas a ser alocadas ao processo recém-criado.

◦ Fork -> cria uma cópia do espaço de endereços do pai para o filho.

� Se usar a técnica CNE => Se algum processo modificar uma página compartilhada, a página écopiada.

Cópia na escrita

Page 15: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

15

Cópia de C

Quando PI modifica a página C

Cópia na escrita

•Somente as páginas modificadas são copiadas;

•Sistemas atuais: Windows XP, Linux;

•Local de memória livre é alocado;

•SO pode prover um banco de páginas livres para tais requisitos;

•Podem ser alocadas quando pilha ou heap precisa crescer.

Page 16: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

16

Substituição de Página

� Ocorre falha de página � necessário carregar a página requerida do disco para memória: ◦ Encontrar a localização da página requerida no disco

◦ Encontrar uma página livre:

� Se há um quadro livre é só usá-lo;

� Senão use o algoritmo de substituição de página para

selecionar uma página vítima residente na memória.

◦ Carregue a página requerida para o quadro livre;

◦ Atualize a tabela de página e a lista de quadro livre;

◦ Reinicie o processo.

Page 17: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

17

�Pode-se resolver o problema de sobrecarga se a página vítima não foi modificada�reduz operação de E/S.

�Associa-se um bit de modificação com cada página para indicar se a página foi modificada

Substituição de Página

� Se necessário, como escolher a página vítima?

Page 18: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

18

� Objetivo: minimizar taxa de falha de página� Avaliação de Algoritmo◦ Retira um conjunto de referência da memória denomiando

string de referência e calcula o número de falha de página na string.

� A string de referência é dada: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

� Lembre-se◦ Usa-se o número de página◦ O endereço em sequência pode ter ser: 100, 250, 270, 300, … Assumindo uma página de tamanho = 100 bytes.

◦ As referências 250 e 270 estão na mesma página (2), apenas a primeira referência pode causar uma falha de página.

Substituição de Página

Page 19: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

19

� O número de falha de página decai quando o número de quadros livres alocados ao processo aumenta

Substituição de Página

Page 20: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

20

Algoritmo Primeiro a Chegar, Primeiro a Sair (FIFO)

� String de Referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5� 3 Quadros (3 páginas pode estar na memória a qualquer momento);

� Trabalha:� Em toda falha de página: verifica o conteúdo da memória;

� Vantagem:� Fácil de entender e implementar.

� Desvantagem:� Desempenho pode não ser tão bom:

• Pode ser uma página usada constantemente (ex. Uma variável acessada constantemente);

• Pode ocorrer a anomalia de Belady.

Page 21: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

21

Exemplo:� Temos a seguinte string de referência: ◦ 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

� Se há 3 quadros, quantas falhas de páginas pode ocorrer? ◦ 9 falhas de páginas (3 primeiros causam falha)

� Se há 4 quadros, quantas falhas de páginas? ◦ 10 falhas de páginas

� Mais quadros pode ser considerado oposto em falha de página.◦ Anomalia Belady: mais quadros ⇒ mais falha de página

Algoritmo Primeiro a Chegar, Primeiro a Sair (FIFO)

Page 22: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

22

Algoritmo Primeiro a Chegar, Primeiro a Sair (FIFO)

1

2

3

1

2

3

4

1

2

5

3

4

9 falhas de página

Page 23: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

23

FIFO: Anomalia Belady

Page 24: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

24

� Você pode querer um algoritmo de substituiçãoótimo?◦ Troca de página não irá usar o mais longo periodo de tempo como FIFO.

� Exemplo: 4-quadros: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

� 6 falhas de página� Como prever o futuro? Não é possível

Algoritmo Ótimo

1

2

3

4

1

2

3

5

4

2

5

5

1 1

2

1

2

3

Page 25: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

25

Algoritmo Least Recently Used (LRU)

� Tentativa de uma aproximação a política ótima: “olhe no passado para decidir o futuro”.◦ LRU: Troca a página que não tem sido utilizada por o mais longo período;

◦ Relação: esta página pode não ser necessária (exemplo: páginas de inicialização de módulo)

� Exemplo 4-quadros: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

5

2

4

3

1

2

5

4

1

2

5

3

1

2

4

3

1

2

3

4

1 1

2

1

2

3

� 8 falhas de página (FIFO 10)

Page 26: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

26

Implementação LRU (1): Contador� Toda entrada na tabela de páginas tem um campo

de tempo de uso (contador);

� Quando a página é referenciada, cópia o clock da CPU para esse campo◦ O clock da CPU é mantido em um registrador e incrementado com todo acesso a memória

� Necessário trocar uma página, busca a página com o tempo mais antigo

� Desvantagem: ◦ Busca o tempo, atualiza o campo tempo de uso (escreve na memória)

� Necessário suporte de hardware

Page 27: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

27

� Mantém uma pilha do número de páginas em um lista duplamente encadeada

� Se uma página éreferênciada, move para o topo

� A página menos recentemente usada vai para parte inferior

� Via hardware ocorre a atualização da pilha

Após

Implementação LRU (2): Pilha

Page 28: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

�Pode ser implementado por: Hardware�Campos extras para armazenar o valor do contador na

tabela de páginas;

�Após cada referência à memória, o valor do contador é

armazenado nesse campo adicional da tabela de páginas;

�Quando ocorre falta de página S.O. => examina todos os

campos dos contadores da tabela de página a fim de

encontrar o menor dele;

�Qual a ordem desses bits ativos? Qual seráremovido?

06/04/09 28

Implementação LRU (3): Bit de referência

Page 29: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

� Solução: Contadores em software associado a páginas e utilizar o algoritmo aging (página com menor contador é removida);

06/04/09 29

clock tick 01 0 1 0 1 1

10000000

10000000

00000000

10000000

00000000

10000000

0

1

2

3

4

5a)

Bits R para páginas 0-5

clock tick 11 1 0 0 1 0

11000000

11000000

10000000

01000000

00000000

01000000

b)

clock tick 21 1 0 1 0 1

11100000

01100000

11000000

00100000

10000000

10100000

c)

clock tick 31 0 0 0 1 0

11110000

10110000

01100000

00100000

01000000

01010000

d)

clock tick 40 1 1 0 0 0

01111000

01011000

10110000

10001000

00100000

00101000

e)

Contadores

Implementação LRU (4): Byte

Page 30: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

30

Algoritmo da segundaChance

� Uma aproximação de LRU:◦ Cada página tem um bit de referência (ref_bit), inicialmente = 0;◦ Quando a página é referenciada, ref_bit =1 (pelo hardware)� Mantém um ponteiro para próxima vítima (candidato);

◦ Quando escolhe uma página para substituir, verifica ref_bit da vítima: � Se ref_bit == 0, troca� Senão configura ref_bit = 0

� Deixa a página na memória (segunda chance),� Move o ponteiro para próxima página,� Repete até encontrar uma vítima.

Page 31: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

31

Algoritmo da segundaChance

Page 32: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

� Segunda chance melhorado

◦ Considere os bits R e M como um par ordenado;◦ S.O. inspeciona todas as páginas e as separa em 4 categorias, com base nos valores dos bits R e M:� Classe 0 => não referenciada, não modificada;

� Classe 1 => não referenciada, modificada;

� Classe 2 => referenciada, não modificada;

� Classe 3 => referenciada, modificada;

◦ Examina a classe à qual pertende e substitui a primeira página encontrada na classe não vazia mais baixa.

06/04/09 32

Algoritmo da segundaChance

Page 33: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

33

Algoritmo baseado em contagem

� Guarda um contador de número de referência que tem ocorrido em cada página

� Algoritmo LFU (Least Frequently Used): retira página com menor contador◦ Página com menor contador não é usada frequentemente◦ Problema: alguma página for usada muito frequentemente no início do processo, mas não for mais usada permanece na memória. Exemplo: Matriz

� Algoritmo MFU (Most Frequently Used): retira a página com mais alto contador◦ Baseada no argumento de que a página com menor contagem provavelmente acabou de ser trazida para memória e ainda não está sendo usada.

◦ Problema: código de um módulo ou subrotina usado raramente, a MFU considera um bom candidato a não ser eliminado.

Page 34: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

34

� Alocação igual: Todos os processo tem o mesmo número de quadros◦ m quadros e n processos � cada processo tem m/n quadros

� Alocação proporcional: Aloca de acordo com o tamanho do processo

� S = tamanho do processo� M= número total de quadros

� Prioridade: Usa alocação proporcional para relaçãodo tamanho

Alocação de Quadros

Page 35: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

35

� Se uma falha de página ocorre e não há quadro livre, há necessidade de obter um espaço livre:

� Substituição Global◦ Processo seleciona um quadro a ser substituído de um conjunto de todos os quadros;

◦ Um proceso pode tirar um quadro de outros processos;◦ Normalmente usado em SO.

� Vantagem:◦ Melhor throughput (processo pode usar qualquer quadro avaliado)

� Desvantagem:◦ Um processo não pode controlar sua própria taxa de page-fault.

Alocação de Quadros: Global

Page 36: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

36

� Substituição Local◦ Cada processo seleciona um quadro de seu conjunto de quadros alocados;

� Vantagem◦ Cada processo tem seu próprio compartilhamento de quadros, não interfere no desempenho de outros processos.

� Desvantagem◦ processo pode sofrer de altas taxas de page-fault embora há quadros livres disponíveis para outros processos

Alocação de Quadros: Local

Page 37: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

37

Thrashing

� O que ocorre se um processo não tem quadros suficientes para manter seu conjunto de páginas ativas na memória?

� A Taxa Page-fault é muito alta:◦ Baixo uso de CPU, o qual ◦ Faz o SO pensar que precisa aumentar o grau de multiprogramação, então ◦ O SO admite outros processo ao sistema (piorando a situação)

� Thrashing ≡ um processo esta realizando thrashing se estiver gastando mais tempo paginando do que executando

Page 38: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

38

Thrashing

Page 39: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

39

� Para previnir o thrashing, deve-se fornecer a cada processo o número de quadros necessários

� Mas como saber quantos quadros um processo precisa?◦ Um programa é composto por várias funções ou módulos

◦ Quando executa uma função, as referências a memória são feitas para instruções e variáveis locais da função e algumas variáveis globais

◦ Então, pode ser necessário guardar em memória alguma página necessária para executar a função

◦ Após finalizar a função, pode-se executar outra. Então, traz a página necessária para a nova função.

◦ Isso é conhecido como modelo de localidade

Thrashing

Page 40: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

40

Modelo de Localidade

� O estado do modelo de localidade◦ Quando um processo executa =>move de uma localidade para outra, onde uma localidade é um conjunto de páginas que são ativamente usada em conjunto.

� Lembre-se◦ Localidade não é restrito a módulos e funções, é mais geral.◦ Pode ser um segmento de código em uma função => exemplo, instruções em várias páginas

◦ Localidade de um programa pode sobrepor◦ Localidade é a maior razão do sucesso de paginação sobre demanda

� Como podemos saber o tamanho de uma localidade?� Usando o modelo de conjunto de trabalho

Page 41: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

41

Modelo Conjunto de Trabalho� O conjunto de páginas mais recentemente referênciada na memória ∆ => janela do conjunto de trabalho (working set – WS)◦ Em cada referência, uma nova referência éadicionada no conjunto, senão for mais usada sai do conjunto;

� Exemplo: ∆ = 10 � Tamanho de WS em T1 é 5 páginas, � Em T2 é 2 páginas

Page 42: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

42

� A precisão do modelo WS depende da escolha de ∆◦ Se ∆ é muito pequeno, não abrangerá a localidade inteira;

◦ Se ∆ é muito grande, poderá sobrepor várias localidades;

◦ Se ∆ = ∞ ⇒ um conjunto com todas as páginas referenciadas durante a execução.

� Usando modelo WS◦ O SO monitora o WS de cada processo;

◦ Ele aloca um número de quadros suficiente para fornecer o tamanho do seu conjunto de trabalho;

◦ Se houver quadros extras suficiente, outro processo poderá ser iniciado.

Modelo Conjunto de Trabalho

Page 43: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

43

� Manter uma janela do conjunto de trabalho inteira é custoso

� Solução:

◦ Approximação com um intervalo de tempo e um bit de referência (ref_bit é configurado com 1 quando a página é referenciada):

� Exemplo: ∆ = 10.000 referências a memória

Modelo Conjunto de Trabalho

Page 44: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

44

� Exemplo: ∆ = 10.000 referências a memória◦ Interrupção do temporizado a cada 5000 referências

◦ Quarda na memória 2 bits para cada página

◦ Quando um interrupção ocorre, copia o ref_bit na memória e reinicia o ref_bit;

◦ Quando ocorre page fault, verifica os 3 bits (ref_bit, 2 na memória)

� Se qualquer um deles for 1 ⇒ a página foi usada nas ultimas 10.000 a 15.000 referências � coloca a página no conjunto de trabalho

Modelo Conjunto de Trabalho

Page 45: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

45

Mais importante é o seu tamanho� WSSi ≡ o tamanho do conjunto de trabalho de um processo Pi

◦ O número de páginas referenciadas mais recente ∆� m ≡ tamanho da memória em quadros� D = Σ WSSi ≡ total de quadros demandados� Se D > m⇒ Thrashing

� Política: Se D > m, então suspende um dos processos◦ Manter o WS é custoso.

� Mas existe alguma forma de controlar o thrashing?

Modelo Conjunto de Trabalho

Page 46: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

46

� Monitorar a taxa de page-fault e aumentar/decrementar alocação de acordo com:◦ Determine um intervalo aceitável da taxa page-fault ◦ Se a taxa atual ultrapassar o limite, aloca outros quadros,◦ Se ficar abaixo remove quadro

Modelo Conjunto de Trabalho

Page 47: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

47

Alocação do Kernel naMemória� Tratado diferentemente da memória de usuário:

◦ O Kernel solicita memória para estruturas de tamanho variado

� Descritores do processo(PCB), semáforo, descritores de arquivos, etc.

� Pode ser menor que uma página

◦ Algumas regiões da memória para kernel precisa ser contígua

� Alguns dispositivos interage diretamente com a memória física sem usar memória virtual

Page 48: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

48

� Aloca a memória de tamanho de segmento fixo , consistindo em páginas fisicamente contíguas;

� Memória alocada usando um alocador de potência de tamanho 2 (4KB, 8KB, 16 KB)◦ Satisfaz requisições em unidade de tamanho de potência de 2◦ Requer arredondamento� Ex. 17 KB requesitado será arredondado para 32 KB (fragmentação)

◦ Quando alocação é menor precisa então ser avaliada, criando 2 buddies de potência de 2� Continua até apropriado tamanho satisfazer a requisição◦ Os buddies pode ser combinados para formar segmentos maiores (união)

Kernel: Sistema Buddy

Page 49: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

49

Kernel: Sistema Buddy

Page 50: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

50

� Alocação◦ Cria caches =>cada consistindo de um ou mais slabs

◦ Slab é uma ou mais páginas contiguas fisicamente

� Uma simples cache para cada estrutura de dados do kernel◦ Cada cache é preenchida com objetos – instanciações da estrutura de dados

◦ Objetos são inicialmente marcados como livre

◦ Quando armazena estrutura, objeto é marcado como usado

◦ Benefícios

� Rápida alocação, não há fragmentação

Kernel: alocação Slab

Page 51: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

51

Kernel: alocação Slab

http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/

Page 52: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

52

Memória Virtual e Mapeamento de Arquivos� A MV permite mapear um arquivo para endereço de espaço de memória de um processo

� Como isso ocorre?◦ Uma parte do arquivo do tamanho de uma página é lida do sistema de arquivos para a página física Subsequentes leitura/escrita ao arquivo são tratadas como acesso àmemória

◦ Ex: mmap() do sistema Unix� Porque?

◦ Operações de E/S no arquivo são tratadas como acesso a memória � Simplifica

◦ Eficiente: acesso a memória é menos custoso que uma chamada de E/S

◦ Uma forma de implementar compartilhamento de memória para comunicação interprocessos

Page 53: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

53

� Arquivo mapeado na memória permite que vários processos mapeie o mesmo arquivo;

� Permite que páginas na memória sejam compartilhadas;

� O Win XP implementa compartilhamento de memória usando essa técnica ;

� O Unix e Linux utiliza o mmap ( ) para mapeamento e a chamada shmget ( ) e shmat ( ) para a memória compartilhada

Memória Virtual e Mapeamento de Arquivos

Page 54: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

54

� Impacto na seleção do tamanho da página◦ Fragmentação

◦ Tamanho da tabela de página

◦ Overhead E/S

� Pré-paginação

◦ Trazer para memória de uma só vez todas as páginas necessárias:� Reduz o número de page faults nos processos iniciados

� Mas pode acontecer de muitas páginas trazidas para memória não serem usadas

� Ex. Solaris (apenas para arquivos pequenos)

Considerações

Page 55: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

55

MV: Estrutura de Programa

� Programa em Java◦ int data [128][128];◦ Cada linha é armazenada em uma página; quadros alocados <128 ◦ Quantas page faults acontece em cada programa?◦ Programa 1

for (j = 0; j < 128; j++)for (i = 0; i < 128; i++)

data[i][j] = 0;

#page faults: 128 x 128 = 16.384

Page 56: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

56

MV: Estrutura de Programa

� Programa em Java◦ int data [128][128];◦ Programa 2

for (i = 0; i < 128; i++)for (j = 0; j < 128; j++)

data[i][j] = 0;

#page faults: 128◦ Todas as palavras são zeradas antes de iniciar a próxima página.

Page 57: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

57

Exemplo: Windows XP� Usa paginação por demanda com clustering◦ O clustering trata não só a página que falhou mas várias páginas após essa

� Processo criado◦ Recebe o working set mínimo: garantia na memória (~50 páginas)◦ working set máximo: máximo na memória (345 páginas)

� Automático do Working set◦ Memória livre no sistema falha permite um limiar, remove páginas de um processo que mais que seu mínimo no working set

Page 58: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

58

� Memória virtual: mapea um maior espaço de endereço lógico dentro de um espaço menor na memória física:

� Page fault: ocorre quando uma página referenciada não está na memória

� Algoritmos de substituição: FIFO, OPT, LRU, Segunda chance

� Alocação de quadros: global e local� Thrashing: pouco uso de CPU � Modelo working-sets� Memória para Kernel memory

Sumário

Page 59: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

06/04/09 59

1. O SOsim é um software educacional utilizada para simulação de alguns algoritmos empregados pelo Sistema Operacional para controlar os recursos computacionais.

• O download pode ser feito em http://www.training.com.br/aso/

• Utilize esse simulador para realizar a atividade 4 disponível no Col.

• Essa atividade deve ser entregue pelo email: [email protected] até o dia 04/08

Simulação – Atividade 4

Page 60: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

06/04/09 60

1. Quais os benefícios oferecidos pela técnica de memóriavirtual? Como este conceito permite que um programa e seus dados ultrapassem os limites da memória principal?

2. Diferencie página virtual de uma página física.

3. Descreva como ocorre a fragmentação interna em um sistema que implementa paginação.

4. Um sistema com gerência de memória virtual por paginaçãopossui tamanho de página com 512 posições, espaço de endereçamento virtual com 512 páginas endereçadas de 0 à511 e memória real com 10 páginas numeradas de 0 à 9. O conteúdo atual da memória real contém apenasinformações de um único processo e é descritoresumidamente na tabela abaixo:

Exercícios

Page 61: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

06/04/09 61

a)Considere que a entrada da tabela de páginas contém, alémdo endereço do frame, também o número da página. Mostreo conteúdo da tabela de páginas deste processo.

b)Mostre o conteúdo da tabela de páginas após a páginavirtual 9 ser carregada na memória a partir do endereçoreal 0 e a página virtual 34 ser substituída pela páginavirtual 12.

c)Qual endereço físico está associado ao endereço virtual 4613?

Exercícios

Page 62: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

5. Descrever como funcionam dos seguintes algoritmos de trocade páginas:a) Not Recently Used Page Replacement-NRU;b) Aging;c) Segunda Chance;

06/04/09 62

Exercícios

Page 63: Mem ória Virtual - Universidade Federal do ABChostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas...Desvantagem: Trabalho lento/alto custo computacional; Memória Virtual (MV) Idéia

06/04/09 63

a) NPV Quadro9 410 934 365 7

b) NPV Frame10 99 012 365 7

c)• O endereço virtual 4613 encontra-se na página virtual 9

(4613/512), que inicia no endereço virtual 4608. • Como o deslocamento dentro do endereço virtual é 5, o endereço

físico é a soma deste mesmo deslocamento ao endereço inicial do frame 2048 (tabela), ou seja, 2053.

Exercícios - Solução