Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Sistemas Operacionais/Gerenciamento de Memória

De Wikiversidade

Hierarquia de Memória e Tipos de Memória

[editar | editar código]

A hierarquia de memória reflete a organização de diferentes tipos de memória, priorizando velocidade, custo e capacidade.

  • Hierarquia:
    1. Registradores: Memória mais rápida, localizada dentro do processador, mas com capacidade limitada.
    2. Cache: Rápida e volátil, armazena dados frequentemente acessados para acelerar o processamento.
    3. Memória Principal (RAM): Fornece acesso rápido, mas é limitada em tamanho e volátil.
    4. Armazenamento Secundário (HD/SSD): Alta capacidade, mais lento e usado para armazenamento persistente.
    5. Armazenamento Externo: Dispositivos como pendrives ou discos externos.
  • Tipos de Memória:
    • Memória Volátil: RAM e cache, que perdem os dados quando o sistema é desligado.
    • Memória Não Volátil: HDDs, SSDs e ROMs que mantêm os dados após o desligamento.
Exemplo: A CPU primeiro verifica o cache para buscar dados. Se não estiver presente, busca na RAM; se não estiver na RAM, é procurado no disco rígido.

Alocação de Memória (Particionamento, Paginação, Segmentação)

[editar | editar código]

O sistema operacional organiza a memória disponível entre os processos usando técnicas específicas:

  • Particionamento:
    • Divisão da memória em blocos fixos ou variáveis.
    • Particionamento Fixo: A memória é dividida em blocos de tamanho fixo.
      • Problema: Fragmentação interna (espaço desperdiçado dentro de blocos).
    • Particionamento Dinâmico: Divisão em blocos de tamanho variável para melhor adequação aos processos.
      • Problema: Fragmentação externa (espaço não utilizado entre os blocos).
  • Paginação:
    • A memória é dividida em páginas (processos) e quadros (memória física), todos do mesmo tamanho.
    • Vantagem: Evita fragmentação externa.
    • Desvantagem: Pode haver fragmentação interna se as páginas não forem totalmente preenchidas.
Exemplo: Um processo pode ser armazenado em quadros não contíguos de memória, facilitando a utilização.
  • Segmentação:
    • Divide a memória em segmentos lógicos, como variáveis globais, pilhas e código, cada um com tamanho variável.
    • Vantagem: Facilita a proteção e modularização do processo.
    • Desvantagem: Pode causar fragmentação externa.

Gerenciamento de Memória Virtual

[editar | editar código]

A memória virtual permite que o sistema operacional ofereça aos processos mais memória do que a fisicamente disponível, simulando-a em disco.

  • Funcionamento:
    • Usa espaço de armazenamento no disco rígido (swap) como uma extensão da memória principal.
    • Quando a memória principal está cheia, páginas de menor prioridade são movidas para a área de swap.
Exemplo: Em sistemas Linux, a memória virtual é gerenciada através de arquivos ou partições de swap configuráveis, permitindo a execução de processos maiores que a RAM disponível.

Políticas de Substituição de Páginas

[editar | editar código]

Quando a memória está cheia, o sistema precisa liberar espaço para novas páginas usando políticas de substituição:

  • First-In, First-Out (FIFO):
    • A página mais antiga na memória é substituída.
    • Desvantagem: Pode remover páginas frequentemente acessadas.
  • Least Recently Used (LRU):
    • A página menos utilizada recentemente é substituída.
    • Vantagem: Oferece bom desempenho, pois baseia-se no comportamento real de acesso.
  • Optimal Replacement:
    • Remove a página que não será usada por mais tempo no futuro.
    • Desvantagem: Difícil de implementar, pois exige conhecimento prévio.
Exemplo: Se houver 4 quadros disponíveis na memória e 6 páginas, o sistema decide quais páginas manter dependendo da política em uso.

Proteção e Segurança da Memória

[editar | editar código]

O sistema operacional protege a memória dos processos contra acessos indevidos e garante a integridade do sistema.

  • Mecanismos de Proteção:
    • Tabelas de Páginas: Restringem o acesso a áreas de memória não autorizadas.
    • Bits de Proteção: Identificam se um bloco de memória é de leitura, gravação ou execução.
  • Segurança:
    • Memória Isolada: Cada processo acessa apenas seu espaço de memória.
    • Criptografia: Protege dados sensíveis armazenados na memória principal.
Exemplo: Em sistemas como o Windows, o ASLR (Address Space Layout Randomization) randomiza endereços de memória para dificultar ataques.

Referências:

[editar | editar código]
  1. https://www.inf.pucrs.br/~calazans/undergrad/OAP/Apoio/04_Introducao-Hierarquia-de-Memoria.pdf
  2. https://www.diegomacedo.com.br/swapping-x-paginacao-x-segmentacao-x-memoria-virtual/
  3. https://blog.grancursosonline.com.br/sistemas-operacionais-gerencia-de-memoria/
  4. https://www.inf.ufrgs.br/~johann/sisop1/aula19.substituindo.pdf
  5. https://www.soescola.com/glossario/o-que-e-memory-protection