Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — Avança SP 2024

Sistemas OperacionaisGeral
Código
qa633052
Banca
Avança SP
Órgão
CM Itapecerica Serra
Ano
2024
Cargo
Tec ( )
O Linux Kernel possui um sistema de gerenciamento de memória que evoluiu ao longo dos anos e incluiu cada vez mais funcionalidades para suportar uma variedade de sistemas. O OOM killer é um dos recursos para a otimização de memória. Qual sua principal funcionalidade?
  1. AIntroduzir um scanner para encontrar atividades suspeitas.
  2. BEliminar uma tarefa do sistema quando reconhecer que a memória se esgotou.
  3. CDeletar cache e arquivos temporários do sistema.
  4. DApagar o excesso de lixo eletrônico para instalação de drivers específicos.
  5. EResetar o sistema para retornar à configuração padrão.
Revelar gabarito e comentário

GabaritoB — Eliminar uma tarefa do sistema quando reconhecer que a memória se esgotou.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

OOM Killer no Linux

Gabarito: letra B. O OOM Killer (Out-Of-Memory Killer) é o mecanismo do kernel Linux que, quando a memória RAM se esgota e o sistema não consegue mais alocar páginas, seleciona e elimina (mata) uma tarefa/processo para liberar memória e evitar que o sistema inteiro trave ou entre em colapso. Essa é a sua principal funcionalidade, conforme o próprio nome sugere: matar o processo que está causando ou sofrendo a falta de memória.

O gerenciamento de memória do Linux é sofisticado: ele usa memória virtual, paginação, swap e técnicas de cache para otimizar o uso da RAM. Porém, em situações extremas, quando todos os mecanismos de recuperação falham e a memória disponível chega a zero, o kernel precisa de uma "última cartada" para manter o sistema operacional funcionando. É aí que entra o OOM Killer.

Imagine um servidor rodando várias aplicações. De repente, um processo mal comportado (por exemplo, um navegador com milhares de abas) começa a consumir toda a memória RAM. O kernel tenta usar a área de swap (disco como memória), mas ela também enche. Sem o OOM Killer, o sistema entraria em um estado de thrashing (paginação excessiva) e ficaria praticamente inoperante, ou até travaria por completo. O OOM Killer resolve isso de forma drástica: ele escolhe um processo para matar, liberando memória e permitindo que o sistema continue funcionando.

A escolha de qual processo matar não é aleatória. O kernel calcula um score de maldade (oom_score) para cada processo, baseado em fatores como:

  • Consumo de memória: quanto mais memória o processo usa, maior a chance de ser escolhido.

  • Tempo de vida: processos mais antigos tendem a ser preservados.

  • Prioridade: processos com prioridade mais baixa são mais prováveis de serem mortos.

  • Ajuste manual: o administrador pode influenciar a escolha usando o arquivo /proc/<pid>/oom_score_adj ou o comando echo -17 > /proc/<pid>/oom_score_adj para proteger um processo importante (valores negativos diminuem a chance, positivos aumentam).

É importante distinguir o OOM Killer de outros mecanismos de otimização de memória:

Mecanismo

Função

OOM Killer

Mata um processo para liberar memória quando ela esgota.

Swap

Move páginas de memória para o disco para liberar RAM.

Cache

Armazena dados frequentemente usados em memória para acelerar o acesso.

Compressão de memória (zswap/zram)

Comprime páginas para armazenar mais dados na RAM.

A pegadinha desta questão é que o enunciado fala em "otimização de memória", o que pode levar o candidato a pensar em cache ou limpeza de arquivos. Mas o OOM Killer não otimiza memória no sentido de melhorar o desempenho; ele age apenas em situações de emergência, sacrificando um processo para salvar o sistema.

Guarde o critério decisivo: OOM Killer = eliminação de processo em situação de falta de memória. É exatamente isso que a alternativa B descreve.

Alternativa A — ❌ Incorreta

Introduzir um scanner para encontrar atividades suspeitas é função de antivírus ou ferramentas de segurança, não do OOM Killer. O OOM Killer não analisa comportamento de processos para detectar ameaças; ele apenas monitora o consumo de memória e age quando o recurso se esgota.

Alternativa B — ✅ Correta ⟵ GABARITO

Esta é a definição exata do OOM Killer: quando o kernel reconhece que a memória se esgotou (não há mais páginas livres e o swap está cheio), ele elimina uma tarefa para liberar memória e evitar o travamento do sistema. O termo "eliminar" é a palavra-chave — o OOM Killer mata o processo, não o suspende nem o move para o disco.

Alternativa C — ❌ Incorreta

Deletar cache e arquivos temporários é uma função de utilitários de limpeza de disco (como bleachbit ou cleanmgr no Windows), não do OOM Killer. O OOM Killer não lida com arquivos; ele lida com processos e memória.

Alternativa D — ❌ Incorreta

Apagar "lixo eletrônico" para instalação de drivers é um conceito totalmente fora do contexto de sistemas operacionais. O OOM Killer não tem relação com hardware, drivers ou lixo eletrônico. Essa alternativa é um distrator absurdo, provavelmente incluído para testar se o candidato sabe o que o OOM Killer realmente faz.

Alternativa E — ❌ Incorreta

Resetar o sistema para a configuração padrão é uma função de restauração do sistema (como o system restore do Windows ou o factory reset de celulares), não do OOM Killer. O OOM Killer não reinicia o sistema; ele apenas mata um processo específico, mantendo o sistema operacional em execução.

NÃO CAIA NESSA!

A banca tenta confundir o candidato associando "otimização de memória" a ações como limpar cache (alternativa C) ou resetar o sistema (alternativa E). Mas o OOM Killer não otimiza memória no sentido de melhorar o desempenho — ele age apenas em emergências, matando um processo. Lembre-se: OOM = Out Of Memory = falta de memória = matar processo.

PEGA ESSA DICA!

Para questões sobre OOM Killer, foque no nome: "Out Of Memory" já diz tudo. Se a alternativa falar em "eliminar tarefa", "matar processo" ou "encerrar processo" quando a memória esgota, é a correta. Desconfie de alternativas que mencionam cache, arquivos temporários ou reset — essas são funções de outros mecanismos.

Gabarito: letra B

Link permanente: /questoes/qa633052