Please enable JavaScript.
Coggle requires JavaScript to display documents.
Memória Principal - Coggle Diagram
Memória Principal
Segmentação
Permite visão da memória pelo usuário
Programa dividido em segmentos
Endereçamento pro par ordenado
<num.-seg., deslc.>
Tabela de segmento
Mapeia endereços físicos bidimensionais
Base: endereço inicial
Limite: tamanho do segmento
Registradores
STBR: aponta para o local da taela de segmento
STLR: inidica a quantidade de segmentos
Problemas
Fragmentação externa
Pode compactar
Segmentos de tamanhos variáveis
Algoritmos mais complexos
First-Fit, Best-Fit, Worst-Fit
Alocação de Memória Contígua
Registradores de base e limite determinam os blocos
Divisão
SO: memória baixa com vetor de interrupção
Processos do Usuário: memória alta
Fragmentação
Interna
Memória alocada maior que a requisitada
Externa
Há espaço de memória, mas não continuo
Mitigação com a compactação
Juntar espaços livres em um bloco só
Só é possível com relocação dinâmica e em tempo de execução
Abordagens
First-Fit: Primeiro bloco suficiente
Best-Fit: Menor buraco suficiente existente
Worst-Fit: Maior buraco existente
Swapping (permuta de processos)
Permuta-padrão
Troca de processos entre MP e MS
Mais memória trocada, maior tempo de transferência
Não é muito usada em sistemas modernos
Sistemas móveis
Não há permuta de processos
iOS
Solicita que aplicações abandonem a memória
Remove apenas dados de leitura, nunca dados que forma modificados
Encerra aplicações caso não liberem o suficiente
Android
Semelhante ao iOS
Salva estado antes de encerrar
Antecedentes
Hardware básico
CPU acessa diretamente apenas seus registradores e a MP
Proteção de Memória (simples)
Par de registradores para definir o espaço de endereços lógicos
Base: onde começa
Limite: quantidade de endereços do processo
Vinculação de Endereços
Tempo de compilação
Endereços absolutos definidos em compilação
Tempo de carga
Gera código realocável
Tempo de execução
Necessário auxilio de hardware
Espaço Lógico x Espaço Físico
Endereço lógico (virtual)
gerado pela CPU
Traduzido para endereços físicos
MMU: Hardware que mapeia a tradução
Endereço físico
Endereço visto pela MP
Carga Dinâmica
Apenas parte do programa precisa estar carregado
Rotinas são carregadas quando necessárias
Melhor uso da memória
Responsabilidade do programador
Vinculação dinâmica e Bibliotecas Compartilhadas
Bibliotecas vinculadas em tempo de execução
Alguns SOs suportam apenas vinc. estática
Vinculadas em tempo de compilação
Requerem apoio do SO
Exemplo: dll