Please enable JavaScript.
Coggle requires JavaScript to display documents.
SO_cap10 - Coggle Diagram
SO_cap10
Memória Virtual
Conceito
-
Programas não ficam limitados ao tamanho
da memória real
Maior nº de processos na memória principal
Minimiza fragmentação da memória principal
Relação Hardware
-Existe grande ligação entre gerência de
memória virtual e arquitetura de hardware.
– Algumas funções dessa gerência são
implementadas em hardware
– SO deve considerar o esquema de
endereçamento do processador
-
-
Processador
– Espaço de endereçamento real
• Conjunto de endereços reais que um processador
consegue referenciar
Endereçamento Virtual
Parte do endereçamento virtual será
mapeada para a memória secundária.
– Apenas parte do código fica em memória
principal, o restante fica em memória
secundária
– Aumento do compartilhamento da memória
principal.
– Programador não se preocupa com isso.
-
Mapeamento
Tradução
– Tarefa atualmente realizada por hardware
juntamente com o SO
• Unidade de Gerência de Memória (MMU)
• Maior desempenho
– Cada processo possui seu espaço de
endereçamento virtual
• Tabelas de mapeamento exclusivas
• SO alterna entre as tabelas sempre que muda o
processo em execução.
Tabelas de
Mapeamento
– Troca é feita pelo SO
– Atualização de um
registrador de controle
– Tabelas mapeiam
blocos de dados e
não células de
memória.
Técnica de Paginação
– Blocos de tamanho fixo
• Técnica de Segmentação
– Blocos de tamanho variável
• Técnica de Segmentação por Paginação
– Uso das duas técnicas anteriores
Páginas
– Blocos de memória de tamanho fixo
– Usados no Espaço de endereçamento virtual
• Páginas Virtuais
– Usados no Espaço de endereçamento real
• Páginas Reais ou Frames
– Realizado por Tabelas de Páginas
– Uma tabela por processo
– Cada página virtual possui uma entrada na
tabela.
– Execução de um programa
• Páginas virtuais são transferidas da memória
secundária para a memória principal
• Referência a um endereço virtual é mapeado em
endereço de uma página real
Paginação
-
-
ETP
Bit de Validade
– Indica na ETP (Entrada da tabela de Páginas)
se o frame está ou não na memória principal.
-
-
-
-
Política de Busca
-
-
Paginação Antecipada
• Tentativa de evitar diversos page-faults sucessivos
• Economia ao levar um conjunto de páginas
• Perda de tempo caso páginas não seja usadas
Política de Alocação
-
Alocação Fixa:
• Número fixo de páginas carregadas.
• Descarte de páginas caso limite seja atingido.
• Valores pequenos muitos page-faults.
• Valores grandes desperdício de memória.
Alocação Variável
• Tamanho varia de acordo com o número de pagefaults
• Maior overhead devido à monitoração do SO
Política de Substituição
Troca de Páginas
– Páginas são liberadas para que outras
páginas possam ser carregadas.
– SO deve escolher uma página para retirar da
memória.
– SO deve ser preocupar com os dados das
páginas escolhidas
• Gravar páginas alteradas no arquivo de paginação
• Recuperar dados das páginas alteradas na
próxima referência
-
Política de Substituição Global
– Páginas de qualquer processo podem ser
escolhidas
– Páginas especiais não são candidatas
• Páginas do código do SO
Working Set
Compromisso
Processos devem manter conjunto mínimo de
frames (evitar page faults).
– Processos não podem ocupar uma grande
área da memória principal (compartilhamento)
Trashing
Sobrecarga de E/S devido a constantes page
faults
– Conceito de Working Set surgiu para
minimizar o problema de trashing
Princípio da Localidade
Localidade Espacial
• Após referência a uma posição de memória,
endereços próximos serão acessados.
Localidade Temporal
• Após referência a uma posição da memória, a
mesma posição será referenciada novamente em
um curto intervalo de tempo.
-
-
-
-
Implementação
-
Uma forma de implementar é verificar taxa de
paginação do processo.
• Se estiver alta deve-se aumentar a janela de
working set.
• Se estiver baixa deve-se reduzir a janela de
working set.
-
Tamanho da Página
Depende do SO
– Alguns permitem a sua configuração.
– Tem impacto sobre o número de entradas na tabela
de páginas
Páginas grandes
– Maior fragmentação interna
– Fragmentação ocorre sempre na ultima página usada
pelo processo.
Páginas pequenas
– Melhor uso do conceito de localidade.
• Quanto maior a página maior a chance de ter na memória
principal código pouco referenciado.