Pular para o conteúdo principal

Questão de Sistemas Operacionais — Kernel — Quadrix 2025

Sistemas OperacionaisKernel
Código
qg603671
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
Acerca da arquitetura de computadores, dos princípios de sistemas operacionais e do sistema operacional Linux, julgue o item seguinte.O mecanismo de chamada de sistema (system call) é utilizado pelos processos para requisitar serviços do sistema operacional, funcionando como interface entre usuário e kernel.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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”.

Chamadas de sistema (system calls) e a interface entre usuário e kernel

Gabarito: letra C (Certo). A afirmativa está correta: a chamada de sistema é o mecanismo pelo qual os processos em modo usuário requisitam serviços ao núcleo do sistema operacional, funcionando como a interface entre as aplicações e o kernel. Esse é um conceito fundamental da arquitetura de sistemas operacionais, presente em qualquer material da área.

Para entender por que a afirmativa está correta, é preciso compreender a estrutura em camadas de um sistema operacional. O kernel (núcleo) é o componente central do sistema, responsável por gerenciar os recursos do hardware — como processador, memória e dispositivos de entrada/saída — e por oferecer serviços às aplicações. As aplicações, por sua vez, executam em um modo de operação do processador chamado modo usuário, que possui privilégios restritos: elas não podem acessar diretamente o hardware nem áreas de memória protegidas. Essa separação é essencial para a estabilidade e a segurança do sistema, pois impede que uma aplicação interfira no funcionamento de outras ou do próprio kernel.

O problema que surge dessa separação é: como uma aplicação, confinada ao modo usuário, pode solicitar ao kernel que execute operações privilegiadas, como ler um arquivo do disco, enviar um pacote pela rede ou alocar memória? A resposta é exatamente o mecanismo de chamada de sistema (system call). Quando um processo precisa de um serviço do kernel, ele executa uma instrução especial do processador (como syscall em arquiteturas x86-64 ou sysenter em x86-32) que comuta o processador do modo usuário para o modo kernel e desvia a execução para uma rotina predefinida do núcleo. Essa rotina realiza a operação solicitada e, ao final, retorna o controle ao processo, com o processador voltando ao modo usuário. Esse mecanismo é também chamado de interrupção de software ou trap, pois funciona de forma análoga a uma interrupção de hardware, mas é disparado por uma instrução do programa.

Na prática, as chamadas de sistema não são invocadas diretamente pelos programadores na maioria dos casos. Elas são oferecidas às aplicações por meio de bibliotecas do sistema (system libraries), como a libc no Linux. Por exemplo, quando um programa em C chama a função write() para imprimir uma mensagem na tela, essa função da biblioteca prepara os parâmetros necessários (como o número da chamada de sistema e o endereço dos dados) e invoca a instrução de syscall. O kernel então executa a operação de escrita e devolve o resultado à biblioteca, que o repassa ao programa. Esse processo é transparente para o programador, que enxerga apenas a função da biblioteca.

A distinção que importa aqui é entre chamada de sistema e shell. O shell (como o bash no Linux) é um programa de interface entre o usuário e o sistema operacional, que interpreta comandos digitados pelo usuário e os executa. Quando o usuário digita um comando como ls, o shell cria um processo e, internamente, esse processo faz chamadas de sistema para listar o diretório. Ou seja, o shell é a interface para o usuário humano, enquanto a chamada de sistema é a interface para os processos (aplicações). A afirmativa da questão fala exatamente da chamada de sistema como interface entre usuário e kernel — e, nesse contexto, "usuário" refere-se ao processo em modo usuário, não ao usuário humano. Essa é a leitura correta e é o que torna a afirmativa verdadeira.

A pegadinha que a banca poderia explorar — e que não aparece aqui — seria trocar o papel da chamada de sistema pelo do shell, afirmando que o shell é o mecanismo usado pelos processos para requisitar serviços do kernel. Isso seria incorreto, pois o shell é apenas um programa de usuário que, para executar suas funções, também faz chamadas de sistema. A chamada de sistema é o mecanismo de mais baixo nível, a porta de entrada para o kernel.

Guarde a fronteira entre chamada de sistema (interface entre processo e kernel, via instrução especial do processador) e shell (interface entre usuário humano e sistema operacional, via interpretação de comandos). É exatamente nessa distinção que as questões sobre este tema costumam se dividir.

  1. 1Processo em modo usuário
  2. 2Instrução especial (syscall)
  3. 3Comuta para modo kernel
  4. 4Kernel executa o serviço
  5. 5Retorna ao modo usuário
LEVEL · soulevel.com.br

Item — ✅ CERTO

A afirmativa está correta. A chamada de sistema é, de fato, o mecanismo utilizado pelos processos para requisitar serviços do sistema operacional, funcionando como a interface entre o modo usuário e o kernel. Quando um processo precisa de uma operação privilegiada, ele executa uma instrução especial que comuta o processador para o modo kernel e invoca a rotina correspondente no núcleo. Esse é o conceito fundamental de system call, presente em toda a literatura de sistemas operacionais.

Gabarito: letra C (Certo).

Link permanente: /questoes/qg603671