Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — FGV 2024

Sistemas OperacionaisGeral
Código
fg165645
Banca
FGV
Órgão
INPE
Ano
2024
Cargo
Tecno Jr ( )

Em um sistema embarcado, o hardware e o software cooperam de forma integrada, sendo utilizados em uma ampla variedade de produtos, desde os mais simples até os mais complexos. A seleção do sistema operacional é um aspecto crucial que influencia significativamente o desenvolvimento de uma solução embarcada, pois afeta não apenas a facilidade de operação em tempo real, mas também a facilidade de desenvolvimento e o desempenho. Entre os diversos sistemas operacionais disponíveis para sistemas embarcados, destacam-se o FreeRTOS, Android e Linux embarcado. Acerca desses três sistemas operacionais, analise os itens a seguir.

 

I. O sistema operacional Android é completamente fechado (closed-source), sem nenhuma parte do seu código-fonte disponível para o público.

 

II. Uma das vantagens do FreeRTOS é a previsibilidade. Entre os três sistemas operacionais, ele é o mais indicado para aplicações em tempo real que exigem um comportamento determinístico.

 

III. O Linux embarcado proporciona uma flexibilidade superior à do FreeRTOS, pois durante o desenvolvimento de um sistema embarcado, é mais viável localizar um driver para o hardware, muitas vezes disponibilizado pelo fabricante.

 

Está correto o que se afirma em

  1. AI, apenas.
  2. BI e II, apenas.
  3. CI e III, apenas.
  4. DII e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoD — II e III, apenas.

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

Sistemas Operacionais Embarcados: FreeRTOS, Android e Linux

Gabarito: letra D. Estão corretos os itens II e III: o FreeRTOS é um RTOS (sistema operacional de tempo real) projetado para comportamento determinístico e previsível, sendo mais indicado que Android e Linux para aplicações de tempo real crítico; e o Linux embarcado oferece maior flexibilidade que o FreeRTOS, especialmente pela vasta disponibilidade de drivers para hardware, muitas vezes fornecidos pelos fabricantes. O item I é falso, pois o Android é um sistema de código aberto (open-source), baseado no núcleo Linux, com grande parte do seu código-fonte disponível publicamente através do Android Open Source Project (AOSP).

Para entender a questão, é preciso primeiro compreender o que caracteriza cada um desses sistemas no contexto de sistemas embarcados. Um sistema embarcado é um sistema computacional dedicado a uma função específica, integrado ao hardware que controla, com recursos limitados de processamento, memória e energia. A escolha do sistema operacional (SO) para esse ambiente é crítica, pois define o equilíbrio entre determinismo temporal, facilidade de desenvolvimento, suporte a hardware e desempenho.

O FreeRTOS é um sistema operacional de tempo real (RTOS) de código aberto, projetado para ser pequeno, eficiente e previsível. Sua principal característica é o comportamento determinístico: o escalonador é projetado para garantir que tarefas críticas sejam executadas dentro de prazos estritos, com latência mínima e previsível. Isso o torna ideal para aplicações de tempo real crítico (hard real-time), como controle de freios ABS, sistemas de injeção eletrônica e equipamentos médicos, onde a perda de um prazo pode ter consequências graves. O Android e o Linux, por serem sistemas de propósito geral, priorizam a produtividade e a interatividade, mas não oferecem o mesmo nível de garantia temporal.

O Linux embarcado é uma versão do kernel Linux adaptada para rodar em dispositivos com recursos limitados. Sua grande vantagem é a flexibilidade: por ser um sistema maduro e amplamente utilizado, existe uma enorme comunidade de desenvolvedores e uma vasta gama de drivers para praticamente qualquer hardware. Os fabricantes de componentes (como processadores, sensores e periféricos) frequentemente disponibilizam drivers Linux prontos, o que acelera e facilita o desenvolvimento. Essa disponibilidade de drivers é um diferencial enorme em relação ao FreeRTOS, que, por ser mais simples e específico, exige que o desenvolvedor escreva drivers para muitos dispositivos.

O Android, por sua vez, é um sistema operacional móvel baseado no núcleo Linux, desenvolvido pela Google. Embora seja amplamente utilizado em smartphones e tablets, também é usado em sistemas embarcados como painéis de automóveis, smart TVs e dispositivos de IoT. Uma característica fundamental do Android é que ele é open-source: o código-fonte do sistema é disponibilizado publicamente através do Android Open Source Project (AOSP). Isso permite que fabricantes e desenvolvedores modifiquem e adaptem o sistema às suas necessidades. A afirmação de que o Android é completamente fechado é, portanto, incorreta.

A distinção crucial entre os três sistemas está no trade-off entre determinismo e flexibilidade. O FreeRTOS prioriza o determinismo temporal, sacrificando a flexibilidade e a facilidade de desenvolvimento. O Linux embarcado prioriza a flexibilidade e a riqueza de recursos, sacrificando o determinismo temporal estrito. O Android, por ser baseado no Linux, herda essa flexibilidade, mas adiciona uma camada de abstração e serviços que o tornam ainda mais pesado e menos previsível em termos de tempo real.

A pegadinha da banca está no item I, que inverte a realidade do Android. Muitos candidatos podem associar o Android à Google e pensar que ele é proprietário, mas a verdade é que o núcleo do sistema é aberto. A banca explora essa confusão comum entre "sistema operacional de uma empresa" e "código-fonte fechado".

Guarde a fronteira entre determinismo (FreeRTOS) e flexibilidade (Linux/Android): é exatamente nela que os itens II e III se sustentam, enquanto o item I cai por desconhecer a natureza open-source do Android.

Critério

FreeRTOS

Linux Embarcado

Android

Natureza do código

Open-source

Open-source

Open-source (AOSP)

Previsibilidade (tempo real)

Alta (determinístico)

Média (propósito geral)

Baixa (propósito geral)

Flexibilidade (drivers)

Baixa (exige escrita de drivers)

Alta (vasta disponibilidade)

Alta (herdada do Linux)

Indicação principal

Aplicações de tempo real crítico

Sistemas com necessidade de drivers e recursos

Dispositivos móveis e IoT com interface rica

Item I — ❌ Incorreto

A afirmação de que o Android é completamente fechado (closed-source) é falsa. O Android é um sistema operacional de código aberto, baseado no núcleo Linux. A Google disponibiliza o código-fonte do sistema através do Android Open Source Project (AOSP), permitindo que qualquer pessoa ou empresa o utilize, modifique e distribua. Embora alguns aplicativos e serviços da Google (como o Google Play Services) sejam proprietários, o sistema operacional em si é aberto. A banca inverte a realidade para confundir o candidato.

Item II — ✅ Correto

A afirmação está correta. O FreeRTOS é um sistema operacional de tempo real (RTOS) projetado para oferecer previsibilidade e comportamento determinístico. Seu escalonador é otimizado para garantir que tarefas críticas sejam executadas dentro de prazos estritos, com latência mínima e previsível. Entre os três sistemas (FreeRTOS, Android e Linux), o FreeRTOS é o mais indicado para aplicações de tempo real que exigem esse comportamento, pois o Android e o Linux são sistemas de propósito geral que priorizam a produtividade e a interatividade, mas não oferecem garantias temporais tão rígidas.

Item III — ✅ Correto

A afirmação está correta. O Linux embarcado oferece uma flexibilidade superior à do FreeRTOS. Isso se deve, em grande parte, à vasta disponibilidade de drivers para hardware. Por ser um sistema maduro e amplamente utilizado, os fabricantes de componentes frequentemente disponibilizam drivers Linux prontos, o que facilita e acelera o desenvolvimento de sistemas embarcados. No FreeRTOS, por ser mais simples e específico, o desenvolvedor muitas vezes precisa escrever drivers para muitos dispositivos, o que torna o desenvolvimento mais trabalhoso.

Conclusão: Corretos os itens II e III → portanto, a alternativa é a letra D.

Gabarito: letra D

Link permanente: /questoes/fg165645