Please enable JavaScript.
Coggle requires JavaScript to display documents.
Gerência de Memória - Coggle Diagram
Gerência de Memória
Paginação
Processo é dividido em páginas
A MP é dividida em quadros/molduras de mesmo tamanho
Processo não precisa ocupar área contígua em memória
Elimina fragmentação externa
Processo não precisa estar completamente na MP
SO mantém uma tabela de páginas por processo
Endereços são gerados dinamicamente em tempo de execução
Método Básico
Número de página (p)
usado como um índice para uma tabela
de página
Deslocamento de página (d)
Deslocamento de página (d)
Implementação da tabela de página
Tabela de Página em memória
Registrador de base da tabela de página (PTBR) aponta para a
tabela de página.
memória associativa ou translation look-aside buffers
(TLBs)
Resolve o problema dos dois acessos à memória
armazenam identificadores de espaço de endereço
(ASIDs)
Proteção de Memória
associando-se o bit de proteção
BIT-VÁLIDO
página associada está no espaço de endereço lógico do processo
BIT-INVÁLIDO
indica que a página não está no espaço de endereço lógico
Páginas Compartilhadas
Código compartilhado
código reentrante compartilhado entre processos
Código compartilhado deve aparecer no mesmo local
Código e dados privados
cópia separada do código
e dados
código e dados privados pode aparecer em qualquer lugar no espaço de endereço lógico
Segmentação
admite visão da memória pelo usuário
Tabela de segmento – mapeia endereços físicos bidimensionais
base – contém o endereço físico inicial
limite – especifica o tamanho do segmento
Registrador de base da tabela de segmento (STBR)
Registrador de tamanho da tabela de segmento (STLR)
número de segmento s é válido se s < STLR
Problemas
Algoritmo de substituição
tamanho variável dos segmentos
Fragmentação externa
Segmentos de tamanhos variáveis
Pode-se usar compactação
Alocação de Memória Contígua
Fragmentação externa
Acúmulo de lacunas entre os blocos alocados na memória
Fragmentação interna
Desperdício de espaço dentro de blocos de memória alocados
Restrições de tamanho
Limitação do tamanho dos processos
Dificuldade de expansão
Dificuldade em alocar espaço contíguo adicional para um processo
Conflito entre processos
Risco de corrupção de dados quando dois processos serem alocados
Vinculação de Endereços
Tempo de compilação
código absoluto pode ser gerado
código deve ser recompilado se o local inicial mudar
Tempo de carga
Gera código relocável se o local da memória não for conhecido durante a compilação
Tempo de execução
Associação adiada até a execução
Precisa de suporte do hardware para mapas de endereço
Esse é o modo usado pela maioria dos SO’s de uso geral
Espaço de Endereçamento Lógico
VS. Espaço de Endereçamento Físico
Endereço físico: endereço visto pela unidade de memória -
Endereço lógico (ou virtual): gerado pela CPU -
Vinculação Dinâmica e
Bibliotecas Compartilhadas
bibliotecas vinculadas dinamicamente
são vinculadas a programas de usuário quando são executados