Sistema operacional integrado

Um sistema operacional integrado é um sistema operacional que pode ser instalado em um sistema integrado . Este sistema operacional é projetado com especificidades a serem gerenciadas de forma a atender às necessidades específicas do tipo de sistema embarcado.

Definição

Um sistema operacional é um programa que gerencia hardware. Ele atua como um intermediário entre o aplicativo de software e o hardware do computador (periféricos, sensores, motores, etc.). A diversidade de sistemas operacionais disponíveis oferece construções e propriedades particulares que permitem atingir uma ampla variedade de objetivos. Exceto para tarefas muito simples (agendamento, comutação de tarefas, entradas / saídas, etc.), um aplicativo on-board precisa de um sistema operacional apropriado que atenda às restrições para ser instalado no sistema on-board (espaço de memória, por exemplo). O sistema operacional também deve ter a funcionalidade necessária para a tarefa que deverá executar. Os sistemas operacionais para PC são projetados com uma interface homem-máquina específica (tela-teclado-mouse). No contexto de um sistema operacional de bordo, a interface homem-máquina para poder interagir com ele pode ser específica (teclado, telas de smartphone, etc.), ou mesmo inexistente (cartões de crédito, cartões SIM, etc. .), caso em que uma máquina intermediária (terminais, telefones) é usada. Estando quase sempre fora do alcance humano, um sistema operacional embutido deve ter um nível de robustez bem acima dos requisitos de um sistema operacional de desktop. Os sistemas operacionais incorporados exigem confiabilidade muito alta, bem como bom desempenho.

Especificidades

Os sistemas embarcados são usados ​​em uma ampla variedade de campos, como telefonia móvel, eletrodomésticos, equipamentos médicos, aeronáutica, automóveis, terminais automáticos, etc. Além do relógio do sistema, as funcionalidades do sistema operacional no qual serão baseados serão heterogêneas. E com um conjunto de dispositivos igualmente heterogêneo, esses dispositivos não oferecem suporte a todas as variações dos sistemas operacionais existentes. Por estar em um sistema restrito, o sistema operacional deve atender às necessidades do dispositivo. A adaptação, portanto, é feita encontrando o meio-termo certo entre tamanho e desempenho para otimizar o sistema operacional. Os sistemas operacionais preferenciais são, portanto, aqueles com apenas os drivers de dispositivo necessários.

Tempo real

Os sistemas incorporados podem ter restrições de tempo. Para suportar essas restrições, existem sistemas operacionais em tempo real que fornecem serviços e primitivos que podem garantir os tempos de execução desejados.

Para um sistema operacional ser um RTOS, ele deve atender a 4 requisitos:

O comportamento de sincronização do sistema operacional deve ser previsível. O sistema operacional deve garantir que pode concluir cada serviço em execução dentro de um tempo máximo fixo. A programação é, portanto, determinística para um gerenciamento ideal das tarefas. O sistema operacional deve gerenciar o agendamento de tarefas. O agendamento pode ser orientado por evento (também falamos de agendamento por prioridade): o agendador só muda de tarefa quando um evento de maior prioridade precisa de serviço. Também pode ser por compartilhamento de tarefas: O agendador muda a tarefa nas interrupções do relógio, o que o torna mais multitarefa no sentido de que as tarefas não são mais executadas uma a uma aos olhos do usuário. O sistema operacional deve gerenciar o tempo para agendar as tarefas da melhor forma possível de acordo com o seu prazo. Esta gestão é obrigatória se o processamento interno estiver atrelado a um tempo absoluto no ambiente físico. A sincronização do relógio global é realizada (conforme desejado) por meio de 2 padrões: UTC ou TAI . Se o sistema for usado em uma rede, ele é sincronizado regularmente para que todos os sistemas sejam coordenados. O sistema operacional deve ser rápido. Um sistema operacional que atenda a todos os requisitos mencionados até agora seria inútil se fosse muito lento.

Sistema de arquivo

Um sistema embarcado nem sempre precisa de um sistema de arquivos. Um sensor de rede recupera informações e as transmite imediatamente pela rede. O cartão bancário ou o crachá de acesso são contraexemplos, pois devem conter dados do usuário na memória. O sistema de arquivos pode ser integrado ao sistema operacional, permitindo que os aplicativos leiam e gravem arquivos em um espaço de memória não volátil no sistema físico.

segurança

Abaixo está uma lista de requisitos de segurança típicos que podem ser encontrados em sistemas incorporados que um sistema operacional pode fornecer:

Identificação do usuário Processo de validação do usuário antes de conceder acesso ao sistema. O sistema em questão pode ser físico (abertura de porta por crachá de acesso) ou informatizado (conta e senha antes de poder interagir com o software). Conexão de rede segura Fornece uma conexão de rede apenas se o dispositivo for autorizado. Permite, em caso de intrusão, limitar seu impacto na rede e nos sistemas conectados. No caso de redes de sensores sem fio, isso reduz as chances de um falso sensor invadir as redes para recuperar os dados coletados. Comunicação segura Inclui a autenticação de entidades comunicantes, o que garante a confidencialidade e integridade dos dados transmitidos e protege a identidade das entidades comunicantes. Dois PLCs que desejam sincronizar se autenticarão mutuamente e, em seguida, trocarão suas informações, garantindo a confidencialidade e integridade por meios criptográficos. Armazenamento seguro Confidencialidade e integridade dos dados armazenados no sistema. Segurança de conteúdo Restrição de uso de conteúdo digital de leitura e gravação no sistema. Ao proteger o conteúdo, ele garante um nível de segurança em todo o uso deste sistema. Disponibilidade O sistema deve ser capaz de executar sua (s) função (ões) em todos os casos. O ABS de um carro é um bom exemplo, deve estar disponível sempre que solicitamos para garantir a segurança dos seus ocupantes.

API / biblioteca

Para desenvolvedores, é desejável que o dispositivo possua APIs para facilitar o desenvolvimento do aplicativo.

A Java Virtual Machine inclui interfaces e outras bibliotecas nativas que permitem sua fácil integração em um RTOS. Escrita em C, a máquina virtual Java é compilada com o RTOS e interpreta os códigos de bytes Java para que o aplicativo seja executado. Graças a isso, o dispositivo pode interpretar byte-code Java e aproveitar as APIs disponíveis (exemplo: java.net para as funcionalidades tcp / ip, java.io para as entradas / saídas, ...).

Comunicação

Um sistema embarcado pode ter que se comunicar com um ou mais outros sistemas (no caso de sistemas embarcados trabalhando de forma colaborativa) ou periféricos. Para esses casos, o sistema operacional pode fornecer as primitivas para estabelecer uma comunicação de acordo com o meio utilizado:

Virtualização

A principal vantagem da virtualização é a garantia de que dois aplicativos concorrentes no mesmo sistema não interfiram um com o outro. O uso da virtualização permite impor em cada máquina virtual limitações de acesso a recursos e dispositivos de acordo com as necessidades da aplicação.

A vantagem da virtualização é também fazer com que dois sistemas operacionais diferentes coexistam (inclusive tempo real) no mesmo processador e, portanto, fornecer a cada processo as especificações necessárias para a execução de sua tarefa.

A virtualização também torna possível fornecer um nível de segurança para evitar danos entre processos. Como cada processo é iniciado por uma máquina virtual separada, se um deles tiver um problema, não haverá impacto nos outros processos em execução em outras máquinas virtuais.

Consumo de energia

Para sistemas de bordo independentes de energia, faz sentido escolher um sistema operacional que limite o consumo de energia. Para limitar o consumo, existem hardware (escolha de componentes, circuitos reconfiguráveis), software (otimização de código, uso de instruções específicas) e técnicas híbridas (colocar periféricos não utilizados em standby). O sistema operacional só pode atuar em soluções híbridas e de software.

Áreas de aplicação

As restrições para escolher e usar um sistema operacional para um sistema embarcado dependem do campo de aplicação em que o sistema será encontrado. Dos nossos objetos do dia a dia (Smartphone, Eletrodomésticos ...) aos sistemas de controle de um avião ou Curiosity, sem falar nos equipamentos médicos, de telecomunicações (satélite, antena relé ...) e militar (drone, sistema de monitoramento). Orientação de mísseis. etc.), os campos de aplicação são amplos e extensos e seus objetivos são diversos.

Os campos de aplicação que se seguem porão em prática as especificidades acima indicadas.

Aeronáutica e Aeroespacial

Para satisfazer as principais restrições de tempo real, os algoritmos dos sistemas de controle de aeronaves são executados em sistemas operacionais de tempo real. Essa necessidade decorre do grande número de sensores presentes no dispositivo e do elemento controlável.

Automotivo

No setor automotivo, os sistemas de bordo começaram a ser implantados desde que os equipamentos de assistência à direção foram integrados em nossos veículos (ABS, ESP, etc.), mas também para controlar os componentes do veículo (faróis, limpadores de pára-brisa, janelas, fechaduras, ferramentas de navegação, ...). Para isso, os fabricantes de automóveis estão se voltando para sistemas operacionais em tempo real a fim de centralizar a gestão de todos os elementos eletrônicos e poder administrar a prioridade das tarefas (a fim de poder privilegiar o tratamento dos elementos de segurança antes aqueles de conforto). O sistema operacional escolhido também deve ser capaz de se comunicar com os componentes eletrônicos do veículo por barramento de dados.

Um exemplo de uso no campo automotivo é o Windows Embedded Automotive  (in), que usa a tecnologia Ford Sync  (in) .

Parcerias entre fabricantes de automóveis e empresas privadas estão em andamento para trazer sistemas operacionais mais conhecidos do público em geral para uso em automóveis. É o caso da Apple com iOS in the Car  (en) . E o projeto Open Automotive Alliance do Google .

Grupos de fabricantes existem com o objetivo de ter um RTOS comum, como AUTOSAR , OSEK / VDX .

Robótica

As restrições vinculadas ao desenvolvimento robótico são as interações com periféricos (sensores, webcam, motores de passo, etc.). Por exemplo, RoBIOS é um sistema operacional destinado ao desenvolvimento robótico e tem em seu código binário uma grande biblioteca de funções do sistema e drivers de dispositivo para controlar e acessar todos os tipos de hardware.

Rede de sensores

A função do sistema operacional é gerenciar a alocação de recursos de maneira ordenada e controlada. O programador pode usar chamadas do sistema para acessar os serviços fornecidos pelo sistema operacional.

Como as redes de sensores têm cada vez mais dados para coletar, processar e transmitir, as restrições significam que o sistema operacional deve ser multiencadeado para atender às necessidades. Ao entrelaçar tarefas complexas e sensíveis, o sistema pode aliviar o problema produtor-consumidor.

Tabela comparativa de SO dedicado a redes de sensores
Sistema operacional Arquitetura Modelo de programação Agendamento Gerenciamento e proteção de memória Protocolo de comunicação compatível Compartilhamento de recursos Suporta aplicativos em tempo real
TinyOS Monolítico. Programação de eventos. FIFO . Gerenciamento de memória estática com proteção de memória. Mensagem ativa. Virtualização e conclusão de eventos. Não.
Contiki Modular. Protothreads e evento. O código é executado quando o evento associado é disparado. Programação por prioridade WRT (Worst Response Time). Gerenciamento e vinculação de memória dinâmica. Sem proteção do espaço de endereço do processo. uIP e Rime. Acesso a dados serializados. Não.
LOUVA A DEUS Modular. Tópicos. Cinco níveis de prioridade, cada um com vários níveis de prioridade internos. Gerenciamento de memória dinâmica possível (mas não recomendado). Sem proteção de memória. Mensagem ativa. Memória compartilhada com semáforos. Até certo ponto, no nível de sequenciamento de processos (implementação de planejamento de prioridades em diferentes tipos de processos).
Nano-RK Monolítico. Tópicos. Agendamento monotônico de taxa (RMS). Gerenciamento de memória estática. Sem proteção de memória. Abstração de soquete. Acesso serializado por mutexes e semáforos. Fornece uma implementação do algoritmo de teto de prioridade para evitar reversões de prioridade. sim.
LiteOS Modular. Tópicos e eventos. Prioridade baseada no modelo Round-robin . Gerenciamento de memória dinâmico e fornece proteção de memória de processo. Comunicação de arquivos. Via primitivas de sincronização. Não.

Cartões inteligentes

Os sistemas operacionais de cartão inteligente não possuem uma interface de usuário, pelo menos essas interfaces são limitadas (terminal, sensor, etc.). A principal especificidade exigida em um cartão inteligente é a segurança; outra limitação é o baixo espaço de armazenamento de memória disponível para acomodar o sistema operacional e os dados que serão armazenados nele.

Um sistema operacional de cartão inteligente é construído para fornecer um conjunto de serviços para gerenciamento de dados, controle de acesso e serviços criptográficos. As funções básicas de um sistema operacional comuns a todos os tipos de cartões inteligentes são:

  1. Gestão das trocas entre o cartão e o exterior, principalmente ao nível do protocolo de trocas.
  2. Gerenciamento de arquivos e dados armazenados na memória.
  3. Controle de acesso a informações e funções.
  4. Gestão dos procedimentos de segurança do cartão e algoritmo criptográfico.
  5. Garantia de confiabilidade, principalmente em termos de consistência de dados.

Móvel

Os smartphones são dispositivos com os recursos de um computador. Com o número de smartphones crescendo a cada dia, a qualidade do sistema operacional deve ser essencial para poder rodar o mesmo programa em diferentes modelos de smartphones. O sistema operacional determina as características, desempenho, segurança e complementos dos aplicativos de um smartphone. O sistema operacional deve gerenciar uma interface homem-máquina intuitiva e responsiva para que o usuário possa executar seus aplicativos; também deve ajudar a minimizar o consumo de energia do smartphone .

Veja também

Notas e referências

Notas

  1. Sistema operacional em tempo real
  2. Tempo Universal Coordenado
  3. Horário atômico internacional
  4. Sistema de roda antibloqueio

Referências

  1. Silberschatz 2012 , p.  11
  2. Duquennoy , p.  15-16
  3. Marwedel , p.  178
  4. Rankl , p.  441
  5. Lennon , p.  34
  6. Hisazumi , p.  1
  7. Marwedel , p.  180
  8. Ficheux , p.  12
  9. Marwedel , p.  182-185
  10. Rankl , p.  448
  11. Ravi , p.  4-5
  12. Mulchandani , p.  2
  13. Hristu-Varsakelis , p.  466
  14. Heiser , p.  12
  15. Parain , p.  12
  16. Jin Kim , p.  3
  17. Nabo , p.  1024
  18. Ghangurde
  19. "  Open Automotive Alliance  " , em openautoalliance.net (acessado em 17 de janeiro de 2014 )
  20. Bräunl , p.  377
  21. Farooq , p.  2
  22. Bhatti 2005 , p.  1
  23. Rankl , p.  444
  24. Selimis , p.  146-147
  25. Lin

Bibliografia

Documento usado para escrever o artigo : documento usado como fonte para este artigo.

Sistemas Ciber-Físicos - Sistemas Embarcados - Otimização Multi-Objetivo Enfrente o mundo real dos sistemas operacionais totalmente equipados Novo estudo de caso - Tratado OpenEmbedded Novo estudo de caso - Tratado OpenEmbedded

Documento usado para escrever o artigo