Pular para o conteúdo principal

Questão de Sistemas Operacionais — Algoritmo de Escalonamento — FGV 2024

Sistemas OperacionaisAlgoritmo de Escalonamento
Código
fg077385
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
O analista Zeferino está trabalhando em um sistema operacional que necessita de melhorias em seu algoritmo de escalonamento e nas primitivas de sincronização para otimizar o processamento de tarefas em um ambiente de múltiplos processadores.Visando à otimização do sistema em questão, a abordagem que deve ser adotada é:
  1. Aimplementar o algoritmo de escalonamento Round-Robin com quantuns fixos para todos os processos, independentemente de suas prioridades;
  2. Butilizar semáforos binários para todas as operações de sincronização, aplicando o mesmo valor de inicialização para todos os semáforos;
  3. Cutilizar o algoritmo de escalonamento de Múltiplas Filas com Feedback, ajustando dinamicamente as prioridades dos processos baseado em suas características de execução;
  4. Dimplementar um único lock global para gerenciar o acesso a todas as seções críticas, independentemente de sua relevância ou frequência de acesso;
  5. Epriorizar a implementação de algoritmos de escalonamento baseados exclusivamente em prioridades fixas, sem considerar a possibilidade de inversão de prioridades.
Revelar gabarito e comentário

GabaritoC — utilizar o algoritmo de escalonamento de Múltiplas Filas com Feedback, ajustando dinamicamente as prioridades dos processos baseado em suas características de execução;

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

Escalonamento e Sincronização em Multiprocessadores

Gabarito: letra C. A abordagem de Múltiplas Filas com Feedback (Multilevel Feedback Queue) ajusta dinamicamente as prioridades com base no comportamento dos processos, sendo a mais flexível e eficiente para ambientes multiprocessados, pois combina capacidade de resposta para processos interativos com justiça para processos longos. As demais alternativas apresentam limitações clássicas: quantuns fixos ignoram prioridades, semáforos uniformes não atendem diferentes necessidades, lock global gera contenção severa, e prioridades fixas sem tratamento de inversão de prioridades podem causar starvation.

A questão exige conhecimento dos algoritmos de escalonamento e das práticas de sincronização em sistemas operacionais. O contexto fornecido (e) descreve a evolução da multitarefa, o papel do escalonador e diferentes algoritmos. Embora não seja citado explicitamente o Múltiplas Filas com Feedback, a lógica por trás é a de ajuste dinâmico, comum em sistemas modernos.

Alternativa A — ❌ Incorreta

Round-Robin com quantuns fixos para todos os processos ignora prioridades. Em um ambiente multiprocessado, processos com diferentes importâncias precisam de tratamento diferenciado para otimizar o uso da CPU. Quantuns fixos podem desperdiçar tempo em processos pouco relevantes ou prejudicar a resposta de processos interativos.

Alternativa B — ❌ Incorreta

Utilizar semáforos binários com o mesmo valor de inicialização para todas as operações de sincronização é inadequado. Semáforos binários (mutex) controlam acesso a recursos, mas diferentes recursos podem exigir diferentes estados iniciais ou contadores. Além disso, semáforos binários não resolvem problemas como leitores-escritores de forma eficiente.

Alternativa C — ✅ Correta ⟵ GABARITO

O algoritmo de Múltiplas Filas com Feedback (Multilevel Feedback Queue) é amplamente usado em sistemas operacionais modernos, como o Linux (Completely Fair Scheduler é uma variação). Ele permite que processos sejam movidos entre filas de diferentes prioridades com base em seu comportamento (ex.: processos I/O-bound ganham prioridade, CPU-bound perdem). Essa dinâmica melhora a responsividade e o throughput em multiprocessadores, sendo a opção mais equilibrada.

Alternativa D — ❌ Incorreta

Um único lock global para todas as seções críticas gera alta contenção, reduzindo o paralelismo real em multiprocessadores. Cada recurso deve ter seu próprio mecanismo de sincronização para permitir que diferentes threads avancem simultaneamente.

Alternativa E — ❌ Incorreta

Prioridades fixas sem considerar inversão de prioridades podem causar deadlock ou starvation. A inversão de prioridades ocorre quando um processo de baixa prioridade segura um recurso necessário por um de alta prioridade, e a solução clássica é a herança de prioridade, ausente em sistemas com prioridades estritamente fixas.

NÃO CAIA NESSA!

A banca tenta confundir o candidato ao listar opções que parecem razoáveis (Round-Robin, semáforos) mas que são inflexíveis demais para um ambiente multiprocessado otimizado. A chave é perceber que a palavra "otimização" exige adaptabilidade — exatamente o que o Múltiplas Filas com Feedback oferece.

PEGA ESSA DICA!

Em questões de escalonamento, lembre-se: sistemas modernos usam filas múltiplas com realimentação para equilibrar justiça e eficiência. Fixos demais (A, E) ou excessivamente simplificados (B, D) são sempre piores.

Link permanente: /questoes/fg077385