CCT-UFCA/Ciência da Computação/Sistemas Operacionais/Gerenciamento de Memória
Aparência
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:
- Registradores: Memória mais rápida, localizada dentro do processador, mas com capacidade limitada.
- Cache: Rápida e volátil, armazena dados frequentemente acessados para acelerar o processamento.
- Memória Principal (RAM): Fornece acesso rápido, mas é limitada em tamanho e volátil.
- Armazenamento Secundário (HD/SSD): Alta capacidade, mais lento e usado para armazenamento persistente.
- 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]- https://www.inf.pucrs.br/~calazans/undergrad/OAP/Apoio/04_Introducao-Hierarquia-de-Memoria.pdf
- https://www.diegomacedo.com.br/swapping-x-paginacao-x-segmentacao-x-memoria-virtual/
- https://blog.grancursosonline.com.br/sistemas-operacionais-gerencia-de-memoria/
- https://www.inf.ufrgs.br/~johann/sisop1/aula19.substituindo.pdf
- https://www.soescola.com/glossario/o-que-e-memory-protection