Please enable JavaScript.
Coggle requires JavaScript to display documents.
Memória Principal - Coggle Diagram
Memória Principal
Antecedentes
Hardware básico
Acesso direto pela CPU
Memória principal
vários ciclos de clock
Registradores
um ciclo de clock
Proteção de Mémoria
base + limite
par de registradores
alterados em modo kernel
Vinculação de Endereços
1º endereço não precisa 00000
compilador
end simbólicos
para relocáveis
linkage editor
end relocáveis
para absolutos
tempo de compilação
local de memória conhecido
gera código absoluto
tempo de carga
gera código relocável
tempo de execução
associa em execução
precisa suporte do hardware
lógico/físico diferem
endereço lógico
gerado pela CPU
programa de usário
0 até MAX
SEMPRE serão traduzidos
endereço físico
visto pela unidade de memória
(R+0) até (R + MAX)
MMU
hardware que mapeia endereço virtual para físico
Carga dinâmica
rotinas de carga em disco
não carrega até ser chamada
melhor uso da memória
DLLs
vinculadas a programas de usuário em execução
stub, localiza a rotina de biblioteca
substituído pelo endereço da rotina
Swapping
permuta de processos entre MP e "retaguarda"
permuta padrão
fila de prontos
processo chama despachante
próx. processo em memória?
Não
swap out (algum processo)
swap in (próx processo)
recarrega registradores
transfere controle a processo
tempo de transferência
domina tempo de swap
em sistemas móveis
em geral, não suportado
IOS/Android
solicita abnadono voluntário de memória alocada
pode encerrar processo que não libera memória
Android grava estado de aplicação
Alocação de Memória Contígua
memória baixa
SO
memória alta
processos de usuário
proteção
registradores de relocação
alocação de múltiplas partições
partições livres
partições alocadas
first-fit
best-fit
+velocicade
melhor utilização
worst-fit
Fragmentação
Interna
memória alocada > memória requisitada
Externa
há espaço
não contíguo
Reduzir
Compactação
mesclar conteúdo
toda memória livre em um bloco
possível em reloc. dinâmica
feita em tempo de execução
Segmentação
visão do programador
programa = coleção de segm
um brigadeiro para cada fatia
tabela de segmento
end. físicos 2D
base
end. inicial
STBR
limite
tamanho do segmento
STLR
nº de seg válido se < STLR
construídos pelo compilador
Problemas
Algoritmo de substituição
mais complexo
Fragmentação
Segmentos de tamanho variável
Pode-se usar compactação
não há frag. INTERNA
Paginação
processo dividido em páginas
MP em molduras
size(página) = size(quadro)
potência de 2 (4 ou 8KB)
podem ir de 512B até 1GB
frag. interna pequena
elimina frag. EXTERNA
SO mantém tabela de páginas por processo
endereço gerado dinamicamente
método básico
endereço dividido
nº de página
índice tabela de pág
end. base de cada página
deslocamento de página
combinado com end base
gera end. físico
implementação
regist. dedicados (até 256 )
computadores modernos
páginas na MP
PTBR aponta para a tabela
1º acesso usa PTBR
forma endereço de quadro
2º acesso a memória
Solução: TLB (mem. assoc.)
1 more item...
tempo de acesso efetivo
acesso TLB x taxa de TLB hit
acesso MP x taxa de TLB miss
proteção de memória
bit válido/inválido
associado a a cada quadro
no end. lógico/fora do end.
páginas compartilhadas
código compartilhado
1x código reentrante
no mesmo endereço lógico para todos os processos
N x dados de usuário
Estrutura da tabela
Paginação Hieráquica
tabela de tabelas
para não alocar MUITA memória contígua
em 32 bits
paginação em 2 níveis
impróprio para arquit. 64 bits
Com Hash
comum acima de 32 bits
cada entrada contém uma lista encadeada
nº de página
submetido a função hash
compara com 1º elem da lista
se corresponde
quadro de página usado para formar endereço físico
se não corresponde
busca em entrada subsequentes da lista
valor do quadro
ponteiro próx elem da lista
Tabelas de Página Invertidas
solução para grande overhead de gerenciamento de memória
apenas uma tabela para o sistema inteiro
cada entrada é uma página (quadro)
endereço virtual / informações do processo
aumenta o tempo de pesquisa
classifica em end. físicos
pesquisa sobre end. virtuais
use hash para limitar a busca
PAGINAR SEGMENTOS
Recupera vantagens da SEGMENTAÇÃO e da PAGINAÇÃO