memmem óória virtualria virtual - uffsimone/scminter/contaulas/13_memv.pdf• encontra a localiza...

43
Sistemas de Computação Memória virtual

Upload: others

Post on 19-Nov-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Memória virtualMemória virtual

Page 2: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Fundamentos

• Memória virtual – separação da memória lógica do usuário da memória física

– somente uma parte do programa precisa estar na memória para execução

– espaço de endereçamento lógico pode ser muito maior que espaço de endereçamento físico

– permite o compartilhamento de espaços de endereços por vários processos

– compartilhamento possibilita criação mais eficiente de processos

• Memória virtual pode ser implementada por:– Paginação sob demanda– Segmentação sob demanda

Page 3: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

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

Page 4: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Paginação sob demanda

• Uma página é colocada na memória somente quando se necessita dela

– Menos E/S para carregamento e swap de programas– Menos memória para os processos– Resposta mais rápida– Maior número de usuários

• Se necessita de uma página quando uma referência é feita a ela

– referência inválida aborta– não-está-na-memória traz para memória

Page 5: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Transferência de memória paginada paraespaço de disco contínuo

Page 6: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Bit válido-inválido

• Cada entrada da tabela de páginas possui um bit válido-inválido associado (1 está na memória, 0 não está na memória)

• Inicialmente bit válido–inválido é colocado em 0 em todas as entradas da tabela

Page 7: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Bit válido-inválido

• Exemplo:

• Bit válido-inválido igual a 0 quando estiver sendo realizada uma tradução de endereços falta de página (page fault)

11110

00

Frame # valid-invalid bit

page table

Page 8: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Tabela de páginas quando algumas páginas não estão na memória principal

Page 9: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Falta de página

• A primeira referência a uma página sempre irágerar uma exceção ao sistema operacional indicando uma falta de página

• S.O consulta uma tabela interna para verificar se a referência é inválida (processo seráabortado) ou se a página não está na memória

• Obtém um frame livre

• Traz a página do disco para o frame

• Atualiza bit válido nas entradas das tabelas

Page 10: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Tratando uma falta de página

Page 11: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

O que acontece se não existir frame livre ?

• Substituição de página– encontra uma página que está na memória mas não está sendo utilizada e a coloca no disco

– algoritmo utilizado deve fornecer menor número de faltas de páginas.

• A mesma página pode ser trazida para a memória várias vezes

Page 12: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Desempenho de paginação sob demanda

• Taxa de falta de páginas 0 p 1.0– se p = 0 não ocorrem faltas de páginas – se p = 1, toda referência é uma falta

• Tempo efetivo de acesso (EAT)

EAT = (1 – p) x acesso à memória + p x (overhead por falta + [escrita no disco] + leitura do disco + overhead de reinício)

Page 13: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Exemplo

• Tempo de acesso à memória = 1 microsegundo

• 50% do tempo a página na memória que vai ser substituída foi modificada e precisa ser escrita no disco

• Tempo de swap da página = 10 mseg = 10,000 microseg

EAT = (1 – p) x 1 + p (15000) = 1 + 15000P (em mseg)

Page 14: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Criação de processos

- Copy-on-write

-Mapeamento de arquivos em memória

Page 15: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Copy-on-Write

• Copy-on-Write (COW) permite que processos pai e filho inicialmente compartilhem as mesmas páginas na memória

• Se um dos processos modifica a página compartilhada, é feita uma cópia da página para o processo

• Possibilita uma criação mais eficiente de processos porque somente as páginas modificadas são copiadas para o novo processo

• Páginas livres são alocadas de um pool de páginas cujo conteúdo foi apagado

Page 16: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Mapeamento de arquivos em memória

• Permite que as operações em arquivos sejam tratadas com rotinas de acesso à memória mapeando um bloco de disco em uma página na memória

• Um arquivo é inicialmente lido utilizando-se paginação sob demanda

• Uma porção do arquivo do tamanho de uma página é colocada em uma página física pelo sistema de arquivos

• Operações subseqüentes de escrita e leitura de/para arquivo são tratadas como acessos àmemória

Page 17: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Mapeamento de arquivos em memória

• Simplifica o acesso a arquivos tratando as operações de E/S através de operações de acesso àmemória ao invés das rotinas do sistema read() e write()

• Permite que vários processos utilizem o mesmo arquivo permitindo que as páginas de memória a ele associadas sejam compartilhadas

Page 18: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Mapeamento de arquivos em memória

Page 19: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Substituição de páginas

• Quando um processo precisa de frame e não existe frame livre

• Utiliza bit dirty para reduzir o overhead de transferência de páginas – somente páginas modificadas são escritas no disco

• Possibilita a existência de um espaço de memória virtual maior que o espaço físico real de memória

Page 20: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Exemplo de substituição de páginas

Page 21: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Substituição básica de páginas

• Encontra a localização da página desejada no disco

• Procura um frame livre:– Se existe, aloca o frame– Se não existe, utiliza um algoritmo de substituição para selecionar

o frame a ser liberado

• Lê a página desejada no frame escolhido e atualiza a tabela de frames e páginas

• Reinicia o processo

Page 22: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Substituição de páginas

Page 23: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmos de substituição de páginas

• Deseja-se a menor taxa de falta de páginas

• Avalia-se o algoritmo executando-o para uma seqüência particular de referências à memória e calculando o número de faltas de página que ocorrem

Page 24: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Gráfico da falta de páginas versus número de frames

Page 25: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo FIFO para substituição de páginas

Page 26: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo First-In-First-Out (FIFO)

• Referências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

• 3 frames

1

2

3

1

2

3

4

1

2

5

3

4

9 faltas de página

Page 27: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo First-In-First-Out (FIFO)

• 4 frames

• Substituição FIFO – Anomalia de Belady– mais frames mais falta de páginas

1

2

3

1

2

3

5

1

2

4

5 10 faltas de página

44 3

Page 28: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Anomalia de Belady para algoritmoFIFO

Page 29: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo ótimo

• Substitui a página que não será utilizada pelo maior período de tempo futuro

• Difícil de implementar porque não sabemos quais serão as referências futuras (como algoritmo SJF para escalonamento de processos)

• Utilizada para comparar desempenho de outros algoritmos

Page 30: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo ótimo

Page 31: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo ótimo

• Exemplo com 4 frames

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

1

2

3

4

6 faltas de página

4 5

Page 32: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo Least Recently Used (LRU)

Page 33: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo Least Recently Used (LRU)

• Referências: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

• Implementação com contador– Cada página possui um campo para armazenar valor do contador e

cada vez que ela é referenciada uma cópia do contador é colocada neste campo

– Quando é necessária a substituição de uma página, verificam-se os campos de cada página para escolher uma delas

1

2

3

5

4

4 3

58 faltas de página

Page 34: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo LRU (Cont.)

• Implementação com stack – mantém uma pilha de números de páginas implementada como uma lista duplamente encadeada:

– Página referenciada:• move para o topo• requer no pior caso modificação de 6 ponteiros

– Não realiza procura para substituição

Page 35: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Utilização de stack para LRU

Page 36: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmos LRU aproximados

• Bit de referência– Associa-se um bit a cada página inicialmente com o valor 0– Quando uma página é referenciada, coloca-se seu bit em 1– Substitui a página que possui bit igual a 0, se existir, mas não se

sabe a ordem de acesso das páginas com bit em 1

• Algoritmo da segunda chance– Necessita de bit de referência– Caso a página a ser substituída (no sentido do relógio) tenha bit

de referência=1, então:• atualiza bit de referência para 0.• deixa a página na memória • substitui a próxima página (no sentido do relógio ),

utilizando as mesmas regras

Page 37: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmo da segunda chance

Page 38: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Algoritmos que utilizam contadores

• Mantém um contador do número de referências que foram feitas para cada página

• Algoritmo LFU: substitui a página com menor valor de contador

• Algoritmo MFU: baseado no argumento de que a página com menor valor de contador foi provavelmente colocada mais recentemente na memória e tem grande chance de ser utilizada em um futuro próximo

Page 39: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Alocação de frames

• Cada processo necessita de um número mínimo de páginas definido pelo conjunto de instruções do processador

• Uma instrução load precisa de um frame para a instrução e um outro para a referência de memória

• Instruções podem necessitar de mais de um frame porque seu tamanho é maior que uma palavra e referências indiretas são realizadas à memória

Page 40: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Alocação de frames

• Exemplo: IBM 370 – 6 páginas para tratar instrução:

– instrução possui 6 bytes, pode necessitar de 2 páginas (palavra de 3 bytes)

– bloco de caracteres origem pode necessitar de 2 páginas– área para onde os caracteres serão movidos pode necessitar de2

páginas

• Dois esquemas de alocação:– alocação fixa– alocação com prioridade

Page 41: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Alocação fixa

• Alocação igual– se existem 100 frames e 5 processos, aloca 20 páginas a cada um

• Alocação proporcional – Aloca de acordo com o tamanho do processo

mSspa

msS

ps

iii

i

ii

for allocation

frames of number total

process of size

5964137127

564137101271064

2

1

2

a

a

ssm

i

Page 42: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Alocação com prioridades

• Esquema de alocação proporcional que utiliza prioridades ao invés do tamanho do processo

• Se processo Pi gera uma falta de página,– seleciona para substituição um dos seus frames– seleciona para substituição um frame de um processo de menor

prioridade

Page 43: MemMem óória virtualria virtual - UFFsimone/scminter/contaulas/13_MEMV.pdf• Encontra a localiza ç ão da p á gina desejada no disco • Procura um frame livre: – Se existe,

Sistemas de Computação

Alocação global versus local

• Substituição global – cada processo seleciona umaframe para ser substituída de um conjunto quepossui todas as frames; um processo pode pegaruma frame de um outro processo

• Substituição local – cada processo seleciona umaframe de um conjunto de frames restrito a ele