memmem óória virtualria virtual - uffsimone/scminter/contaulas/13_memv.pdf• encontra a localiza...
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