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

Post on 19-Nov-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemas de Computação

Memória virtualMemória virtual

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

Sistemas de Computação

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

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

Sistemas de Computação

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

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

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

Sistemas de Computação

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

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

Sistemas de Computação

Tratando uma falta de página

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

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)

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)

Sistemas de Computação

Criação de processos

- Copy-on-write

-Mapeamento de arquivos em memória

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

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

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

Sistemas de Computação

Mapeamento de arquivos em memória

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

Sistemas de Computação

Exemplo de substituição de páginas

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

Sistemas de Computação

Substituição de páginas

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

Sistemas de Computação

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

Sistemas de Computação

Algoritmo FIFO para substituição de páginas

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

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

Sistemas de Computação

Anomalia de Belady para algoritmoFIFO

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

Sistemas de Computação

Algoritmo ótimo

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

Sistemas de Computação

Algoritmo Least Recently Used (LRU)

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

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

Sistemas de Computação

Utilização de stack para LRU

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

Sistemas de Computação

Algoritmo da segunda chance

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

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

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

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

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

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

top related