Please enable JavaScript.
Coggle requires JavaScript to display documents.
Memória Virtual - Coggle Diagram
Memória Virtual
Introdução
programas podem ser maiores que a memória física
as instruções em execução devem estar na memória física
Antecedentes
Memória Virtual: separação entre memória lógica e física
Espaço de endereço virtual
Heap (monte): usado pra alocação dinâmica, cresce pra cima
Stack (pilha): variáveis locais, chamadas de função, cresce pra baixo
Buracos (endereços esparsos): permite que a pilha cresça de forma dinâmica
Paginação por Demanda
traz a página para a memória somente quando necessária
menos E/S necessária
menos memória necessária
resposta mais rápida
mais usuários
Lazy Swapper (permutador preguiçoso): só troca uma página pra memória se for necessária
Falta de página: se houver referência a uma página, causará um trap pro SO
Desempenho da Paginação por Demanda
pode afetar o desempenho do PC (armazenamento secundário é mais lento que a RAM)
Substituição de Página
Substituição de Páginas Básica
usa o espaço liberado para manter a página do processo que teve falha
Algoritmos de Substituição de Página: menor taxa de falta de páginas possível
se nenhum quadro estiver livre, libera um que não está sendo usado
First-In First-Out (FIFO)
Anomalia de Belady: apresenta um aumento no número de faltas de página à medida que o tamanho da memória principal aumenta
a página mais antiga da memória é sempre substituída
fácil de entender e programar
Substituição de Páginas Ótima
substitui a página que não será usada pelo maior período
usado para estudos de comparação
apresenta menor taxa de falha de página possível
Menos Recentemente Usada (LRU - Least Recently Used)
Substitui a página que não foi usada pelo maior período
aproximação do algoritmo ótimo
Substituição de Páginas por Aproximação ao LRU
Bits de referência adicionais
conjuntos de bits são usados para guardar um histórico de uso da página
Segunda chance
usa apenas um bit de referência
um FIFO melhorado
toda vez que a página for usada, seu bit vai para 1
Algoritmo de Relógio: evita a remoção imediata de páginas que foram referenciadas recentemente, melhorando a
utilização da memória principal
Segunda chance melhorado
usa 2 bits: um de referência e um de modificação
reduz a quantidade de E/S necessária
Substituição de Páginas Baseada em Contagem
mantenha um contador do número de referências que foram feitas a cada página
Algoritmo LFU: substitui página com menor contador
Algoritmo MFU: página com menor contagem acabou de ser trazida e vai ser usada
Algoritmos de Armazenamento de Páginas em Buffer
usado em conjunto com algum algoritmo de substituição de página
Alocação de Quadros
cada processo precisa que um número mínimo de páginas seja alocado para que ele execute
Alocação Fixa
alocação igual: quadros por processo
alocação proporcional: aloca de acordo com o tamanho do processo
Alocação por Prioridade
proporcional a prioridade ao invés de tamanho
Alocação Global vs Local
Substituição Global: processo seleciona um quadro de substituição de todos os quadros
Substituição local: cada processo seleciona apenas do seu próprio conjunto de quadros alocados
Thrashing (Atividade Improdutiva)
processo que gasta mais tempo paginando do que executando
Modelo do Conjunto de Trabalho (Working Set)
o conjunto de páginas que um processo está usando em um período de tempo
Pré-paginação: carregar em memória as páginas antes que possa continuar sua execução
evita-se mantendo as páginas frequentemente referenciadas no Working Set na memória física