Questão de Sistemas Operacionais — Conceitos Básicos em Sistemas Operacionais — Quadrix 2025
- Código
- qg598466
- Banca
- Quadrix
- Órgão
- CRM-ES
- Ano
- 2025
- Nível
- Médio
- Cargo
- Técnico de TI
- Apipe.
- Bprocesso.
- Cthread.
- Ddriver.
- EPID (process identifier).
GabaritoC — thread.
Gabarito: letra B. A entidade descrita — instância autônoma de um programa em execução, com código, dados, registradores e informações de controle — é o processo, conceito central da gerência de tarefas do sistema operacional. A alternativa C (thread) é o distrator clássico: a thread é a unidade de execução dentro do processo, compartilhando seu espaço de endereçamento, e não uma instância autônoma completa.
O sistema operacional moderno distingue dois conceitos que a banca adora confundir: programa e processo. O programa é um conjunto estático de instruções armazenado em disco — um arquivo, algo passivo. O processo é a execução ativa desse programa: quando você dá duplo clique num executável, o SO carrega o código na memória, aloca recursos, cria o contexto de execução e passa a gerenciar aquela atividade. É essa atividade dinâmica que o enunciado descreve.
O processo carrega consigo tudo o que define seu estado de execução: o código (as instruções), os dados (variáveis globais e estáticas), a pilha, os registradores da CPU (incluindo o contador de programa, que aponta para a próxima instrução), e as informações de controle do SO (como prioridade, estado, identificador). Cada processo tem um PID (Process Identifier) — número único que o identifica no sistema — e pode se comunicar com outros processos por mecanismos de IPC (Interprocess Communication), como pipes, filas de mensagens e memória compartilhada.
O ciclo de vida do processo é gerenciado pelo SO: ele pode ser criado (fork/exec no Linux, CreateProcess no Windows), suspenso (bloqueado aguardando E/S ou recurso), retomado (volta à fila de prontos) e finalizado (exit). Essa é a essência da gerência de tarefas — o SO alterna a execução entre processos, dando a ilusão de que todos rodam simultaneamente (multiprogramação).
A distinção que importa aqui é processo × thread. A thread é uma linha de execução dentro do processo: um processo pode ter várias threads, que compartilham o mesmo espaço de endereçamento (código, dados, heap) mas têm pilha e registradores próprios. Enquanto o processo é a "unidade de propriedade de recursos", a thread é a "unidade de despacho" — é a thread que efetivamente executa na CPU. O enunciado fala em "instância autônoma" com "código, dados, variáveis, registradores e informações de controle" — isso descreve o processo completo, não a thread, que compartilha código e dados com suas irmãs.
A pegadinha da banca está exatamente aí: o candidato que confunde os dois conceitos marca thread (C), mas o texto é claro ao dizer que a entidade inclui código e dados próprios — característica do processo. A thread não tem código e dados próprios; ela herda os do processo que a criou. Guarde essa fronteira: processo = instância completa e autônoma; thread = linha de execução dentro do processo.
Pipe é um mecanismo de comunicação entre processos (IPC), não uma entidade de execução. Ele é um canal unidirecional de dados que conecta a saída de um processo à entrada de outro (ex.: ls | grep txt). Não possui código, registradores nem informações de controle — é apenas um buffer de comunicação. A banca o coloca aqui para testar se você sabe que pipe é um mecanismo, não uma unidade de trabalho.
O processo é exatamente o que o enunciado descreve: a instância autônoma de um programa em execução, com seu próprio código, dados, variáveis, registradores e informações de controle do SO. É tratado como unidade de trabalho — pode ser criado, suspenso, retomado e finalizado — e tem identificador único (PID). A definição clássica de Tanenbaum e Maziero: o processo é a "atividade dinâmica" resultante da execução de um programa, distinguindo-se do programa estático. É a unidade fundamental da gerência de tarefas.
Thread é a unidade de execução dentro do processo. Um processo pode conter várias threads, que compartilham o mesmo espaço de endereçamento (código, dados, heap) e os recursos do processo. Cada thread tem sua própria pilha e registradores, mas não é uma "instância autônoma" com código e dados próprios — ela usa os do processo. O enunciado descreve a entidade completa e autônoma, o que aponta para processo, não thread. A banca explora exatamente essa confusão conceitual.
Driver (ou controlador de dispositivo) é um componente de software que permite ao SO comunicar-se com um dispositivo de hardware específico (impressora, placa de rede, disco). Ele abstrai as particularidades do hardware e oferece uma interface padronizada ao núcleo. Não é uma unidade de execução com código, dados e registradores próprios — é um módulo de software de baixo nível, parte da camada de abstração de hardware do SO.
PID (Process Identifier) é o identificador numérico único atribuído a cada processo pelo SO. Ele é uma característica do processo — mencionada no enunciado ("identificador único") — mas não é a entidade em si. O PID é usado pelo SO e pelos usuários para referenciar e controlar processos (ex.: comando kill 1234 no Linux). Confundir o identificador com a entidade é um erro comum: o PID é um atributo, não a unidade de trabalho.
A banca coloca thread (C) como distrator principal justamente porque é o conceito mais próximo de processo. A armadilha: o enunciado diz "instância autônoma" com "código, dados, variáveis" — isso é processo. A thread compartilha código e dados com o processo que a contém; ela não é autônoma nesse sentido. Se a questão falasse em "linha de execução" ou "unidade de despacho", aí sim seria thread. Fique atento a essas palavras-chave: autônoma + código/dados próprios = processo; compartilha recursos + linha de execução = thread.
Para não errar mais, monte o quadro mental: Programa (estático, em disco) → Processo (instância em execução, com recursos próprios) → Thread (linha de execução dentro do processo). Na prova, leia o enunciado procurando por "instância autônoma" (processo) ou "linha de execução" (thread). E lembre: PID é o número do processo, não o processo em si.
Gabarito: letra B
Link permanente: /questoes/qg598466