Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cáp 8 Gerencia de memória - Coggle Diagram
Cáp 8 Gerencia de memória
Fundamentos
Memoria cache
Registradores
Todos programas tem que está na memoria para ir para o processador
Registradores
Base e Limite
Para manter a integridade tem que respeita:
base >= address < limit
Base
end. inicial da memoria fisica
Limit
tamanho disponivel p/ o processo
Vinculação de endereços
offset - deslocamento
de onde o programa começa até aonde vai = Base + limit
Os endereços são representados de maneira diferentes
em diferentes estados de vida de um programa
Endereços no código fonte,
Endereços no código compilado
O ligador (linker) ou carregador (loader)
Vinculação de instituições de dados a endereços na memória
3 fases:
Tempo compilação
Tempo execução
Tempo de Carga
Espaço de endereçamento lógico vs físico
Estão sempre sendo maepados do lógico para o fisico, para ter acesso a RAM com o MMU
MMU
Faz o mapeamento da memória virtual para o físco
Carga dinâmica
Evita o desperdicio de memoria
Chamada sob demanda
Ligações dinamicas
stub
Faz o papel de:
''ligar'' a rotina necessaria durante a execução de um programa
Se sobrepoe
Ligaçoes estáticas
Swapping
Transferir temporariamente processos da memória principal para um espaço de armazenamento secundário
É feito pelo escalonador de médio prazo
Politica Roll out , roll in
Politica de troca de processos usada em algoritmos de escalonamento baseados em prioridade
Read Queue (Fila de Prontos)
Tempo de troca de contexto com o swapping
O tempo da troca de contexto pode ser grande
reduzir o tempo se reduzir o tamanho da memória trocada usando
request_memory() e release_memory()
, que informa o uso da memória
Se não tiver dentro da memoria quando for alocado a CPU, precisa fazer colocar um processo em swapping (swap out) e puxa esse que queremos com o (swap in)
Restrições do swap
E/S pendente
Ou sempre transferir E/S para o espaço do kernel e, em
seguida, para o dispositivo de E/S
Tipos de alocaçoes
Alocação contígua
Multiple-partition allocation
Armazenamento Dinâmico-Problema de Alocação
Alg.
Best-fit (melhor)
Worst-fit (pior)
First-fit (primeiro)
Fragmentação
Externa
Qtd. memória suficiente, porém não contígua
Resolvendo esse problema:
Com compactação
Interna
Qtd disponivel maior do que a necessaria
Partes separadas de memória livre ou alocada que não estão adjacentes umas às outras.
Páginação
:red_flag:
Técnica de gereciamento de memória
Mantém o controle de todos blocos livres
Alocações de maneira eficiente
Ela divide a memória em pequenos blocos de tamanho fixo
chamados de páginas na
memória lógica
frames na
memória física.
Tabela de páginas
faz a tradução do end. lógica em físico
mantida na memória principal.
Esquema de Tradução de Endereços
Endereço gerado pela CPU é divido em:
Deslocamento na Página (d)
Número da Página (p)
Implementação de Tabela de Páginas
Registrador base da tabela de páginas
Registrador tamanho da tabela de páginas
Número de acesso a mémoria é 2
ASIDs (Address-space identifiers)
Os TLBs armazenam identificadores de espaços da memória
TLBs
:red_flag:são como dicionários que
ajudam o computador a encontrar o endereço físico correto para um endereço virtual.
Elas agilizam a tradução de endereços durante o acesso à memória.
TLBs
(translation look aside buffers)
Também chamados de memoria associativa
Tempo de Acesso Efetivo
- Effective Access Time (EAT)
Metrica que mede o tempo médio para acessar um item na hierarquia da memória
Componentes do EAT
Tempo de ciclo da CPU
Taxa de Sucesso (Hit ratio)
Tempo de busca(associativa)
Taxa de transferência de dados
Tempo de acesso à memória
Tempo de acesso ao Disco
Fórmula EAT:
EAT
= (1 + e) a + (2 + e)(1 –e )
=
2 + e – a
e (unidades de tempo) = Busca Associativa
a = Taxa de Sucesso
Proteção de Memória
Bit válido
Indica a existência da página associada lá, o acesso é legal :check:
Bit inválido
Não está presenta, portanto é ilegal o acesso :no_entry:
garante somente as páginas autorizadas sejam acessadas por um processo
Usados em:
gerenciamento de memória, especialmente em esquemas de paginação
Páginas Compartilhadas
Técnica onde varios processos podem acessar a mesma área da memória física
Compartilhamento de Código
(código reetrante):
Copia do código, apenas leitura
Códigos e Dados Privados:
Copias separadas
componentes privados podem estar em qualquer posição do espaço de endereçamento lógico
Estrutura da Tabela de Páginas
Tabela de Páginas com função Hash
(Hashed Page Tables
Usado quando o espaço de endereçamento é grande
geralmente acima de 32 bits
Aplica função hash
Tabela de Página Invertida
Tabelas de Páginas Hierárquicas
quebra o espaço lógico em multiplas tabelas
2 Niveis
páginas externa
páginas interna
Fundamental para a tradução eficiente de endereços lógicos para endereços físicos.
Segmentação
técnica de gerenciamento de memória que divide o espaço de endereçamento de um processo em segmentos lógicos ou partes distintas
Registradores especiais:
(STBR )
→ indicam a localização.
(STLR)
→ indica o número de segmentos usados.