Mind map
Memória Principal
Map content
Memória Principal
Antecedentes
- Fluxo de endereços
- Unidade de memória vê apenas um fluxo de endereços de memória
- Hardware básico
- MP e registradores são os únicos armazenamentos acessíveis diretamente
- Dados devem estar na MP antes de serem lidos pela CPU.
- Proteção de Memória
- Uso de registradores de base e limite
- Limitar acessos fora da região permitida
- Uso de registradores de base e limite
- Vinculação de Endereços
- Processo pode ser movimentado entre o disco e a memória durante sua execução
- Modos de Associação
- Tempo de Compilação
- Endereços fixos durante a compilação
- Tempo de Carga
- Código relocável ajustado durante a execução
- Tempo de Execução
- Associação flexível suportada pelo hardware (comum em SOs modernos)
- Tempo de Compilação
- Espaço de Endereçamento Lógico vs. Físico
- Lógico/Virtual
- Gerado pela CPU
- Físico
- Endereço visto pela unidade de memória
- Unidade de Gerenciamento de Memória (MMU)
- Converte endereços lógicos em físicos
- Usa registradores de relocação para ajustar endereços dinâmicos
- Lógico/Virtual
- Carga Dinâmica
- Execução Parcial de Programas
- Rotinas são carregadas na memória apenas quando chamadas
- Melhor utilização de memória
- Processo de Carga
- Verificação e carregamento da rotina pelo carregador de vinculação relocável
- Execução Parcial de Programas
- Vinculação Dinâmica e Bibliotecas Compartilhadas
- Vinculação adiada até a execução
- Usa stub para localizar e substituir a rotina na memória
- Correções rápidas e fácil manutenção
- Fluxo de endereços
Swapping (“Permuta entre processos”)
- Permuta-Padrão
- Transferência de processos entre a MP e uma Secundaria
- Tempo de transferencia é proporcional a quantidade de mem. trocada
- Não é usada em SO's modernos
- Escalonador chama o despachante
- Checa se o processo está na memória principal e se não:
- Remove (swap out) outro processo da memória
- Insere (swap in) o processo requerido
- Recarrega registradores e transfere controle
- Checa se o processo está na memória principal e se não:
- Permuta em Sistemas Móveis
- Não suportam permuta de processos
- Limitações nos Dispositivos Móveis
- No IOS
- Solicita que apps liberem voluntariamente memória
- Dados somente leitura são removidos e recarregados se necessário
- Aplicações que não liberam memória suficiente são encerradas
- No Andriod
- Pode encerrar processos para liberar memória
- Antes de encerrar, salva o estado da aplicação na memória flash para reinício rápido
- Não suportam permuta de processos
- Permuta-Padrão
Alocação de Memória Contígua
- Implementada nos primeiros SO's e nos monoprogramáveis
- Dividido em duas partições
- SO residente
- Localizado na memória baixa
- Tem vetor de interrupção
- Processos do usuário
- Localizados na memória alta
- SO residente
- Registradores de relocação evitam acessos indevidos
- Registrador de base
- Menor endereço físico
- MMU
- Registrador de Limite
- Intervalo de endereços lógicos
- Registrador de base
- Alocação em múltiplas partições
- Buracos
- Processos de alocação ocupam buracos grandes o suficiente para acomodá-los
- Blocos de memória disponíveis
- SO mantem informações sobre?
- Partições alocadas
- Partições livres (buracos)
- Buracos
- Estratégias de Alocação
- First-fit
- Primeiro que servir
- Best-fit
- Menor que servir
- Worst-fit
- Maior que servir
- Pior em velocidade e utilização
- First-fit
- Fragmentação
- Externa
- Tem espaço suficiente, mas não contíguo
- Soluções
- Junta memória livre em um único bloco (Compactação)
- Exige relocação dinâmica
- Espaço de endereços não-contíguos
- Técnicas
- Paginação
- Segmentação
- Técnicas
- Junta memória livre em um único bloco (Compactação)
- Interna
- Memória alocada é um pouco maior que a requisitada
- Externa