Sociologia Múltipla Escolha

As condições de corrida podem causar uma série de problemas, incluindo resultados imprevisíveis, corrupção de dados e falhas no sistema. O que define a “Condição de Corrida”?

As condições de corrida podem causar uma série de problemas, incluindo resultados imprevisíveis, corrupção de dados e falhas no sistema. O que define a “Condição de Corrida”?

  1. Um método de atualização de saída.
  2. O uso de memória compartilhada para armazenar dados.
  3. O fenômeno quando dois ou mais processos acessam dados compartilhados e o resultado depende de quem executa primeiro e quando.
  4. Uma forma de programação concorrente.
  5. Uma falha no sistema operacional.

Resolução completa

Explicação passo a passo

C
Alternativa C

A imagem apresentada contém três questões distintas sobre Sistemas Operacionais, especificamente focadas em concorrência, condições de corrida e funcionamento do Linux. Abaixo, apresento a análise detalhada e a resolução de cada item.

Questão 1: Definição de Condição de Corrida

Alternativa C

Análise Conceitual:
A Condição de Corrida (Race Condition) é um problema clássico em sistemas concorrentes. Ela ocorre quando dois ou mais processos (ou threads) acessam dados compartilhados simultaneamente e o resultado final da operação depende da ordem específica em que esses acessos ocorrem.

  • Sem sincronização: Se não houver controle de acesso, o sistema não garante quem executa primeiro, levando a resultados inconsistentes ou corrompidos.
  • Comparação com outras opções:
  • Não é apenas um método de atualização de tela (A).
  • O uso de memória compartilhada (B) é o meio pelo qual a condição ocorre, mas não a definição do fenômeno em si.
  • Não é uma forma de programação (D), mas sim um erro de lógica nesse tipo de programação.
  • Não é uma falha genérica do SO (E), mas sim um comportamento esperado se o programador não implementar sincronização adequada.

Questão 2: Threads e Processos no Linux

Alternativa B

Análise Conceitual:
Esta questão aborda mecanismos internos do Kernel do Linux (clone, fork, memória compartilhada). Vamos analisar cada afirmação:

  • I. Verdadeiro. O flag CLONE_VM no sistema de chamada clone (usado para criar threads no Linux) faz com que a nova tarefa compartilhe o mesmo espaço de endereçamento virtual (memória) da tarefa pai. Isso é essencial para que threads tenham memória comum.
  • II. Verdadeiro. O mecanismo Copy-on-Write (Cópia sob Escrita) é usado no fork(). Ele cria o processo filho muito rápido porque não copia imediatamente a memória física; ele só copia os páginas quando um dos processos tenta escrever nelas. Isso otimiza drasticamente o tempo de criação.
  • III. Falso. A comunicação e troca de contexto entre processos (subprocessos) é mais custosa que entre threads. Trocar de processo exige atualizar tabelas de página e limpar cache (TLB), enquanto trocar de thread dentro do mesmo processo mantém o contexto de memória. Além disso, threads usam memória compartilhada para comunicar, enquanto processos requerem IPC (Inter-Process Communication) mais complexo.

Como apenas as afirmações I e II estão corretas, a alternativa correta é a B.

Questão 3: Solução para Condição de Corrida

Alternativa A

Análise Conceitual:
Para resolver a condição de corrida, é necessário garantir que, durante o acesso aos recursos compartilhados, apenas um agente tenha permissão de vez. Esse conceito é chamado de Exclusão Mútua.

  • Região Crítica: É o trecho de código onde variáveis compartilhadas são acessadas. Definir uma regra de que apenas um processo pode executar nessa região por vez elimina a disputa.
  • Por que as outras estão erradas?
  • Separar em threads (B) não resolve o conflito de acesso à memória compartilhada.
  • Diminuir a velocidade (C) não ordena as operações.
  • Eliminar processos (D) altera a funcionalidade do sistema, não soluciona a concorrência.
  • Escalonar em diferentes CPUs (E) não impede que elas acessem a mesma memória simultaneamente.

Portanto, a definição de região crítica com exclusão mútua é a solução teórica e prática padrão.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Sociologia

Ver mais Sociologia resolvidas

Tem outra questão de Sociologia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.