Questão de Sistemas Operacionais — Kernel — Quadrix 2024
- Código
- qg347370
- Banca
- Quadrix
- Órgão
- CFP
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista Técnico/TI/Suporte
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: letra E (Errado). O parâmetro kernel.shmmax define o tamanho máximo de um único segmento de memória compartilhada (System V IPC), e não o número máximo de descritores de arquivo. O limite de descritores de arquivo é controlado por outros parâmetros, como fs.file-max e ulimit -n. Portanto, a afirmação está incorreta.
O kernel Linux é o núcleo do sistema operacional, responsável por gerenciar recursos como memória, processos e dispositivos de entrada/saída. Para ajustar seu comportamento, o Linux expõe uma série de parâmetros configuráveis através do sistema de arquivos virtual /proc/sys ou do comando sysctl. Esses parâmetros são organizados em categorias: kernel.* (comportamento geral do núcleo), vm.* (gerência de memória virtual), fs.* (sistema de arquivos e descritores), net.* (rede), entre outros.
O parâmetro kernel.shmmax pertence à categoria kernel.* e controla o tamanho máximo, em bytes, de um único segmento de memória compartilhada criado pelas chamadas de sistema POSIX shmget()/shmat() (memória compartilhada do System V). Esse valor é crucial para aplicações que usam memória compartilhada, como bancos de dados (PostgreSQL, Oracle) e servidores de mensageria. Alterá-lo é útil quando uma aplicação precisa alocar segmentos maiores que o limite padrão (geralmente 32 MB ou 128 MB, dependendo da distribuição).
Já o número máximo de descritores de arquivo que o kernel pode alocar é controlado por fs.file-max (limite global do sistema) e fs.nr_open (limite por processo). Além disso, cada processo tem um limite próprio, definido por ulimit -n (limite suave e rígido). Em servidores com alta carga de arquivos abertos, o ajuste correto é aumentar fs.file-max e/ou o ulimit do processo, não kernel.shmmax.
A confusão entre esses parâmetros é uma pegadinha clássica em provas: a banca troca a função de um parâmetro de memória por um de descritores de arquivo. Para não cair, lembre-se: shm = memória compartilhada (shared memory); file-max = descritores de arquivo. O prefixo shm já entrega a função.
A afirmação está errada porque atribui a kernel.shmmax uma função que não é dele. O parâmetro kernel.shmmax especifica o tamanho máximo de um segmento de memória compartilhada (em bytes), e não o número máximo de descritores de arquivo. O limite de descritores de arquivo é definido por fs.file-max (global) e ulimit -n (por processo). Portanto, alterar kernel.shmmax não tem efeito sobre a capacidade de abrir arquivos; seria útil, sim, para aplicações que precisam de segmentos de memória compartilhada maiores.
A banca troca a função de um parâmetro de memória (shmmax) por um de descritores de arquivo (file-max). O prefixo shm indica "shared memory" — memória compartilhada. Quando vir shm, pense em memória; quando vir file, pense em arquivos. Essa distinção resolve a questão na hora.
Para memorizar os principais parâmetros do kernel, agrupe por categoria: kernel.* (comportamento geral, como shmmax), fs.* (sistema de arquivos, como file-max), vm.* (memória virtual, como swappiness). Em provas, a banca costuma inverter as funções entre essas categorias — fique atento ao prefixo.
Gabarito: letra E (Errado).
Link permanente: /questoes/qg347370