Gerenciamento de Memória

Mapa mental sobre gerenciamento de memória

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Gerenciamento de Memória por Mind Map: Gerenciamento de Memória

1. 6. Funções do Sistema Operacional

1.1. Alocação e liberação de memória:*

1.1.1. O SO usa algoritmos como First Fit, Best Fit ou Worst Fit para decidir onde colocar os dados. *Diferencial:* Sistemas em tempo real têm alocação preditiva para evitar falhas críticas

1.2. Proteção de memória:

1.2.1. Implementada com hardware, como MMU (Memory Management Unit). *Exemplo interessante:* Evita que um processo leia ou escreva nos dados de outro.

1.3. Compartilhamento:

1.3.1. Memória compartilhada entre processos é usada para comunicação rápida. *Exemplo técnico: * Implementações modernas usam técnicas como NUMA (Non-Uniform Memory Access).

2. 1.Definição de Gerenciamento de Memória

2.1. O que é?

2.1.1. O gerenciamento de memória é como o cérebro do sistema operacional organiza a "mesa de trabalho" (RAM) para equilibrar eficiência, segurança e multitarefa. Ele distribui espaços para processos e reorganiza os dados quando necessário

2.2. Por que isso é importante?

2.2.1. - Evita *"deadlocks de memória"*, quando processos ficam esperando recursos indefinidamente. - Permite execução de processos maiores que a memória física, usando técnicas como memória virtual.

2.2.2. - Garante que diferentes tipos de dados (ex.: código, variáveis, pilha) sejam tratados corretamente.

3. 2.Técnicas de Gerenciamento:

3.1. Particionamento:

3.1.1. - Fixo: Cada bloco pode ter uma "etiqueta" indicando o tamanho do processo ideal. *Curiosidade diferenciada: * Processos menores em blocos maiores geram desperdício conhecido como fragmentação interna

3.1.2. - Dinâmico: Usa "memória livre" como blocos flexíveis. *Problema oculto:* Pode gerar *fragmentação externa*, onde pequenos espaços livres não são utilizáveis.

3.2. Paginação:

3.2.1. - Evita fragmentação externa, mas *pode aumentar a latência de acesso* se as tabelas de páginas forem muito grandes.

3.2.2. Tabelas modernas usam *TLB (Translation Lookaside Buffer)* para acelerar a busca das páginas

3.3. Segmentação:

3.3.1. Dá significado aos blocos: código, dados e pilha são tratados separadamente

3.3.2. - *Exemplo diferenciado:* Facilita o uso de *bibliotecas compartilhadas*, que podem ser usadas por vários processos sem duplicação.

4. 3.Mémoria Virtual:

4.1. Conceito:

4.1.1. Cria uma "ilusão" de memória maior que a física, movendo partes de dados para o disco rígido quando não são usados com frequência.

4.2. Benefícios:

4.2.1. - Suporte a multitarefa com processos grandes

4.2.2. - Permite que múltiplos usuários acessem o sistema simultaneamente.

4.3. Paginação por Demanda:

4.3.1. Páginas só são carregadas na RAM quando realmente necessárias, reduzindo desperdício.

5. 4.Alocação de Memória:

5.1. Contígua:

5.1.1. Rápida, mas vulnerável à fragmentação. *Exemplo avançado:* Ideal para sistemas embarcados, que exigem acesso direto à memória.

5.2. Não Contígua:

5.2.1. Usa listas encandeadas ou tabelas para rastrear blocos livres

5.3. Diferencial:

5.3.1. Necessário para sistemas operacionais modernos que suportam múltiplas arquiteturas.

6. 5. Problemas Comuns:

6.1. Fragmentação Interna:

6.1.1. Espaços dentro de blocos são desperdiçados. *Curiosidade:* É comum em sistemas com partições fixas.

6.2. Fragmentação Externa:

6.2.1. Espaços livres entre blocos alocados não podem ser utilizados. *Solução diferenciada:* O uso de *compaction* para reorganizar a memória.

6.3. Thrashing:

6.3.1. O sistema gasta mais tempo trocando páginas entre RAM e disco do que executando processos. *Dica avançada:* Configuração errada de memória virtual é uma causa comum.