Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capítulo 9: Memória Virtual - Coggle Diagram
Capítulo 9: Memória Virtual
Fundamentos
Memória virtual
Para que serve?
Otimizar a RAM em SO :fast_forward:
Melhorar a eficiência na execução de progrmas
Endereçamento Maior
Compartilhamento dos espaços com outros processos
Implementação:
Paginação sob demanda :check:
Segmentação sob demanda :check:
Paginação sob demanda
Chama a página apenas quando é necessária
Quando a página é necessária referenciando ela,
temos 3 casos:
Não presente na memória
--> traz para a memória :back:
referência invalida
--> aborta :no_entry:
Referencia valida
--> permite acesso :check:
Lazy swapper
:inbox_tray:
lazy swapper" em computação se refere a uma técnica onde SO adia a troca de dados entre a memória principal (RAM) e o armazenamento secundário
Chamando apenas quando realmente é necessário
Pager-
-> módulo do sistema operacional responsável por gerenciar a troca de páginas entre a memória principal e a memória secundária
Swap in
Swap out
O uso de lazy swapper e pager
permite um gerenciamento mais eficiente da memória,
Bit Válido-Inválido
:flags:
conceito do bit válido-inválido
associado a cada entrada na tabela de páginas é crucial para determinar se uma página está presente ou ausente na memória.
v = está na memória
I = não está na memória
Page faul
t :warning:
Significa que o SO precisa trazer da memoria secundaria p/ principal (RAM)
Página ausente (page fault)
Quando ocorre?
Quando não existe aquela referência na ram (bit invalido)
Gera uma interrupçao (trap)
Desempenho da Paginação sob Demanda
:explode:
Fórmula do Tempo Médio de Acesso
(TMA)
:
TMA
= (1 – p) × tempo de acesso à memória + p × (sobrecarga da página ausente + tempo para gravar + tempo para ler + sobrecarga de reinicialização)
Criação de Processos
Copy-on-Write (Cópia na Escrita)
Arquivos Mapeados na Memória (depois)
Copy-on-Write (Cópia na Escrita):
o que é
Técnica de otimização para criação de processos e gerenciamento de memória utilizados por Sistema operacional.
Compartilhamento inicial
Pai e filho aponta para mesmo local na memória
Modificação:
:!!:
em qualquer moddificação a estratégia de COW entra em ação
Se for modificado, cria uma copia, apenas se for modifica!
Eficiência apenas as páginas que são modificadas por qualquer um dos processos são copiadas :star:
alterações feitas por um processo não afetem o outro.
Substituição de Páginas
gerenciar eficientemente a memória quando não há espaço livre para alocar novas páginas.
Estratégia de Substituição de Página:
Uso do Bit de Modificação:
Separação Completa entre Memória Lógica e Física:
Prevenção da Super Alocação de Memória:
Algoritmos de Substituição de Páginas
:desktop_computer:
(LRU - Least Recently Used)
identifica e substitui a página que não foi usada por mais tempo.
o que tá mais distancia do que vai entrar atual
Algoritmos com Contadores
Faz uso de contadores
LFU (Least Frequently Used - Menos Frequentemente Usada)
MFU (More Frequently Used - Mais Frequentemente Usada)
FIFO (First-In-First-Out)
Anomalia de Belady :warning:
esperado:
menor taxa de páginas ausentes :check:
Algoritmo Ótimo :smiley:
na prática não é usavél
Utilidade
:red_flag:
para garantir que a memória seja gerenciada eficientemente, escolhendo quais páginas manter na memória principal e quais devem ser transferidas para o armazenamento secundário
Alocação de Blocos (frames)
o que é?
É a atribuição de na memória física, geralmente dividida em unidades chamadas de blocos ou frames.
Dois esquemas de alocação
são comumente usados. :red_flag:
Alocação fixa
Alocação por prioridade
Paginação Excessiva (Thrashing)
EXPLICAÇÃO
Quando o sistema está sobrecarregado com trocas entre memória secundária é a principal (RAM)
Alguns sintoma
:
Baixa Utilização da CPU
o que leva a aumentar a multiprogramação
Taxa Elevada de Page Faults
Ajuda a evitar o Thrashing
Paginação sob Demanda e Thrashing
funciona bem devido ao princípio da "localidade" nos padrões de acesso à memória dos programas.