DOI:

https://doi.org/10.14483/22484728.3749

Publicado:

2012-08-13

Número:

Vol. 6 Núm. 1 (2012)

Sección:

Visión de Caso

Requisitos para adoção de sistemas operacionais embarcados

Requirements for embedded operating systems adoption

Autores/as

  • Maiko R Moroz Universidade Tecnológica Federal do Paraná.
  • Ricardo P. Jasinski Universidade Tecnológica Federal do Paraná.
  • Volnei A. Pedroni Universidade Tecnológica Federal do Paraná

Palabras clave:

Embedded Systems, Real-time Systems, RTOS, Operating System Selection (en).

Palabras clave:

Sistemas embarcados, Sistemas de tempo real, seleção de sistemas operacionais (es).

Biografía del autor/a

Maiko R Moroz, Universidade Tecnológica Federal do Paraná.

Mestrando em EngenhariaElétrica e InformáticaIndustrial

Ricardo P. Jasinski, Universidade Tecnológica Federal do Paraná.

Pesquisador do Laboratóriode Microeletrônicada UTFR e doutorandoem Engenharia Elétricae Informática Industrialna Universidade TecnológicaFederal do Paraná.

Volnei A. Pedroni, Universidade Tecnológica Federal do Paraná

Professor Associado daUniversidade TecnológicaFederal do Paraná,doutor em Electrical Engineringpelo CaliforniaInstitute of Technlogy -Caltech.

Referencias

EETimes Group. 2010. Disponible en: http://www.eetimes.com/electricalengineers/education-training/webinars/4006580/2010-Embedded-Market-Study.

S. Baskiyar y N. Meghanathan. “A Survey of Contemporary Real-time Operating Systems”. Informatica (2005): 233-240,.

Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 2 ed. Sao Pablo: Prentice Hall, 2003.

T. N. B. Anh y Su-Lim Tan. “Realtime operating systems for small microcontrollers”. Micro, 29(5) (sept.-oct.2009): 30-45. IEEE.

Ian Sommerville. Engenharia de Software. 8 ed. Sao Pablo: Pearson Addison-Wesley, 2007.

Luís F. Friedrich. “A Survey on Operating System Support for Embedded Systems Properties”. Anais do Workshop de Sistemas Operacionais, VI (julio 2009):2393-2404.

Michael Pont. Embedded C. Londres: Addison Wesley, 2002.

Wikibooks. Marzo de 2011. Disponible en: http://en.wikibooks.org/wiki/ Embedded_Systems/ Super_Loop_Architecture

Cómo citar

APA

Moroz, M. R., Jasinski, R. P., y Pedroni, V. A. (2012). Requisitos para adoção de sistemas operacionais embarcados. Visión electrónica, 6(1), 89–97. https://doi.org/10.14483/22484728.3749

ACM

[1]
Moroz, M.R. et al. 2012. Requisitos para adoção de sistemas operacionais embarcados. Visión electrónica. 6, 1 (ago. 2012), 89–97. DOI:https://doi.org/10.14483/22484728.3749.

ACS

(1)
Moroz, M. R.; Jasinski, R. P.; Pedroni, V. A. Requisitos para adoção de sistemas operacionais embarcados. Vis. Electron. 2012, 6, 89-97.

ABNT

MOROZ, Maiko R; JASINSKI, Ricardo P.; PEDRONI, Volnei A. Requisitos para adoção de sistemas operacionais embarcados. Visión electrónica, [S. l.], v. 6, n. 1, p. 89–97, 2012. DOI: 10.14483/22484728.3749. Disponível em: https://revistas.udistrital.edu.co/index.php/visele/article/view/3749. Acesso em: 5 nov. 2024.

Chicago

Moroz, Maiko R, Ricardo P. Jasinski, y Volnei A. Pedroni. 2012. «Requisitos para adoção de sistemas operacionais embarcados». Visión electrónica 6 (1):89-97. https://doi.org/10.14483/22484728.3749.

Harvard

Moroz, M. R., Jasinski, R. P. y Pedroni, V. A. (2012) «Requisitos para adoção de sistemas operacionais embarcados», Visión electrónica, 6(1), pp. 89–97. doi: 10.14483/22484728.3749.

IEEE

[1]
M. R. Moroz, R. P. Jasinski, y V. A. Pedroni, «Requisitos para adoção de sistemas operacionais embarcados», Vis. Electron., vol. 6, n.º 1, pp. 89–97, ago. 2012.

MLA

Moroz, Maiko R, et al. «Requisitos para adoção de sistemas operacionais embarcados». Visión electrónica, vol. 6, n.º 1, agosto de 2012, pp. 89-97, doi:10.14483/22484728.3749.

Turabian

Moroz, Maiko R, Ricardo P. Jasinski, y Volnei A. Pedroni. «Requisitos para adoção de sistemas operacionais embarcados». Visión electrónica 6, no. 1 (agosto 13, 2012): 89–97. Accedido noviembre 5, 2024. https://revistas.udistrital.edu.co/index.php/visele/article/view/3749.

Vancouver

1.
Moroz MR, Jasinski RP, Pedroni VA. Requisitos para adoção de sistemas operacionais embarcados. Vis. Electron. [Internet]. 13 de agosto de 2012 [citado 5 de noviembre de 2024];6(1):89-97. Disponible en: https://revistas.udistrital.edu.co/index.php/visele/article/view/3749

Descargar cita

Visitas

473

Dimensions


PlumX


Descargas

Los datos de descargas todavía no están disponibles.

VISIÓN DE CASO

Visión Electrónica, 2012-06-01 Volumen:6, Año:1 pág: 89–97

REQUISITOS PARA ADOÇÃO DE SISTEMAS OPERACIONAIS EMBARCADOS

REQUIREMENTS FOR EMBEDDED OPERATING SYSTEMS ADOPTION



Maiko R. Moroz

Mestrando em Engenharia Elétrica e Informática Industrial na Universidade Tecnológica Federal do Paraná. Correo: maikomoroz@ gmail.com

Ricardo P. Jasinski

Pesquisador do Laboratório de Microeletrõnica da UTFR e doutorando em Engenharia Elétrica e Informática Industrial na Universidade Tecnológica Federal do Paraná. Correo: jasinski@ solvis.com.br

Volnei A. Pedroni

Professor Associado da Universidade Tecnológica Federal do Paraná, doutor em Electrical Enginering pelo California Institute of Technlogy - Caltech. Correo: pedroni@ utfpr.edu.br

ABSTRACT

Embedded systems are part of numerous applications, most of which include real-time or specialized operating systems. The operating system must be chosen taking into account functional and technical characteristics of the embedded product. This paper presents a survey on the main requirements to help determine whether an operating system should be used in an embedded design, further we show how these requirements may be used for assessing the operating system selection.

Key Words

Embedded Systems, Real-time Systems, RTOS, Operating System Selection.

Resumo

Os sistemas embarcados compõem a grande maioria dos dispositivos eletrõnicos. A decisão de usar um sistema operacional é umas das mais importantes em um projeto embarcado. Para auxiliar nestas decisões, este artigo apresenta os principais requisitos que podem ser considerados em um projeto embarcado. Em seguida apresentamos os critérios para decisão sobre o uso ou não de um sistema operacional e os requisitos técnicos e comerciais utilizados na escolha de um sistema operacional embarcado.

Palavras chave

Sistemas embarcados, Sistemas de tempo real, seleção de sistemas operacionais.


Introdução

Sistemas embarcados estão presentes em, praticamente, todos os dispositivos eletrõnicos, sendo encontrados em eletrodomésticos, carros e aviões. Estes dispositivos desempenham funções de controle ou monitoramento no ambiente ou equipamento em que estão inseridos.

Os sistemas embarcados podem ser implementados com ou sem a utilização de um sistema operacional, porém a pesquisa re alizada pelo site EETimes em 2010 [1] revelou que em 70% dos projetos embarcados pesquisados foi utilizado um sistema operacional. Sendo este um dos principais componente em um projeto embarcado. Mas, apesar da sua importância para o projeto, não há uma abordagem consistente ou um método para auxiliar na decisão de adoção de um sistema operacional e em como selecionar um. Frequentemente a escolha por um sistema operacional é baseada apenas em critérios não técnicos como experiência prévia com determinado produto.

Este artigo aborda o assunto de sistemas embarcados com o objetivo de suprir a carência de material sobre adoção e seleção de sistemas operacionais. Apresentamos os requisitos dos sistemas embarcados que podem ser utilizados na decisão de utilização de um sistema operacional. Em seguida apresentamos como estes requisitos influenciam a escolha do sistema operacional, quando decidido pela utilização de um.

Sistemas Embarcados

Um sistema embarcado é um sistema computacional projetado para um propósito específico e geralmente parte de uma aplicação maior [2]. Frequentemente, estes sistemas operam em tempo real e sem intervenção do usuário.

Sistemas embarcados são compostos por hardware (processador, memórias e periféricos) e software. Um esquema representando um sistema embarcado é mostrado na Figura 1. Dependendo da aplicação podem incluir interfaces de comunicação, sensores e atuadores.

Figura 1. Esquema representativo de um sistema embarcado.

Geralmente, sistemas embarcados não existem isolados, mas precisam se comunicar com outros dispositivos (I2C, SPI, USB, Ethernet, Bluetooth e ZigBee) e/ou usuários (botões, teclados, vídeo e som).

São exemplos de aplicações de sistemas embarcados os roteadores sem fio, câmeras fotográficas digitais, console de videogame, GPS automotivo e injeção eletrõnica.

Sistemas Operacionais de Tempo Real

O sistema operacional é uma camada de software que oculta os detalhes do hardware e disponibiliza aos desenvolvedores de software uma melhor interface de programação [3]. As principais funções dos sistemas operacionais são fornecer serviços aos programas, abstrair os detalhes do hardware e coordenar acesso ao mesmo.

Os sistemas operacionais de tempo real possuem relação intrínseca com o tempo e são construídos para permitirem o cumprimento de requisitos temporais específicos. Eles podem ser classificados em hard real-time e soft real-time. No primeiro, uma falha grave poderá acontecer se um deadline for perdido, enquanto no segundo a única penalidade é a degradação na performance. Hard real-time e soft real-time são dois pontos extremos no espectro de classificação dos sistemas operacionais quanto ao seu desempenho de tempo real. Na prática, os sistemas operacionais de tempo real estão entre estes dois pontos.

Para suportar múltiplas tarefas em aplicações de tempo real, o escalonador deve ser preemptivo baseado em prioridades [2]. Neste caso, o escalonador deve ser capaz de interromper qualquer tarefa para permitir a execução de outra com maior prioridade. Além disto, também deve possuir vários níveis de interrupção para permitir tratamento de interrupções com diferentes níveis de prioridade.

Para permitir que várias tarefas se comuniquem entre si em um tempo hábil, é necessário que a sincronização e a comunicação entre os processos sejam previsíveis. O tempo para iniciar uma tarefa, latência entre troca de tarefas e latência de interrupção devem ser bem definidos e consistentes mesmo com o aumento da carga do sistema [4].

Requisitos dos Sistemas Embarcados

Cada projeto possui uma série de requisitos que guiam a escolha de cada componente individual no sistema embarcado. Os requisitos fornecem descrições dos serviços fornecidos pelo sistema e suas restrições; podem ser classificados em funcionais e não funcionais [5].

  1. Os requisitos funcionais definem a utilidade do sistema, são descrições das atividades que o sistema deve ser capaz de executar. De maneira geral, requisitos funcionais especificam o que o sistema deve fazer.
  2. Os requisitos não funcionais especificam as restrições e limitações do sistema. Eles se relacionam com as características e detalhes de implementação do sistema. Geralmente, requisitos não funcionais definem as qualidades do sistema, ou como este deve ser.
  3. Os principais requisitos não funcionais [6], os quais podem influenciar na escolha de cada componente do sistema embarcado são listados a seguir.
  1. Limitação de recursos. Sistemas embarcados frequentemente são projetados com recursos limitados de hardware, assim devem utilizar eficientemente os recursos disponíveis.
  2. Tempo real. Muitas aplicações possuem requisitos temporais que devem ser cumpridos para garantia do seu correto funcionamento.
  3. Confiabilidade. As aplicações de sistemas embarcados geralmente exigem alta disponibilidade, que é o funcionamento contínuo por longos períodos de tempo. O sistema deve ser confiável para garantir a disponibilidade.
  4. Robustez. Algumas aplicações são sujeitas a operação em condições adversas. A robustez é a habilidade de o sistema funcionar aceitavelmente quando estiver fora das suas condições nominais. Por exemplo, vibração, altas temperaturas ou flutuações na fonte de alimentação.
  5. Estabilidade. Em muitas aplicações críticas, o sistema não pode ser contaminado por uma falha isolada. A estabilidade está relacionada a habilidade do sistema manter falhas contidas.
  6. Gerenciamento de falhas. Algumas aplicações precisam continuar produzindo resultados coerentes mesmo na presença de falhas. Por exemplo, um sistema de navegação em uma aeronave. O gerenciamento de falhas compreende detecção, confinamento, recuperação e tratamento das falhas.
  7. Proteção. Algumas aplicações lidam com dados que devem ser mantidos em segredo, por exemplo, um sistema eletrõnico de pagamentos. A proteção é a capacidade de o sistema evitar o acesso não autorizado às informações sigilosas.
  8. Segurança. Algumas aplicações podem oferecer riscos em caso de falhas, para serem consideradas seguras devem prevenir danos à vida, às pessoas, aos equipamentos e ao ambiente. Por exemplo, uma usina nuclear.
  9. Privacidade. Algumas aplicações necessitam permanecerem anõnimas mesmo em um ambiente público. A privacidade é a habilidade de o sistema isolar informações sobre si mesmo e as revelar seletivamente.
  10. Escalabilidade. Muitas aplicações são projetas para uma determinada carga de trabalho, mas em algumas situações precisam lidar com uma sobrecarga de trabalho. A escalabilidade está relacionada com o sistema continuar funcionando normalmente nestas situações de sobrecarga.
  11. Atualização. O tempo de vida de algumas aplicações é longo e o sistema embarcado deve ser capaz de ser atualizado ao longo do tempo. A atualização ocorre pela adição ou substituição de componentes do sistema.
  12. Consumo de energia. Em muitas aplicações o consumo de energia deve ser minimizado ao máximo, sendo um fator crítico na escolha de cada componente. Por exemplo, redes de sensores sem fio.
  13. Custo. Muitos custos estão envolvidos em um projeto, sendo este um fator importante para a maioria das aplicações. Produtos produzidos em larga escala costumam ser sensível ao custo, devendo este ser minimizado para garantir a viabilidade do produto.
  14. Manutenção. A manutenção é a substituição de componentes defeituosos de hardware ou partes do software.
  15. Usabilidade. Aplicações que interagem com o usuário precisam ser de fácil utilização. A usabilidade do sistema é a facilidade de uso de um determinado sistema.
  16. Portabilidade. A portabilidade é a migração do sistema para outra plataforma de hardware ou software.

Necessidade de um Sistema Operacional

Antes de se escolher um sistema operacional deve-se avaliar a sua necessidade no projeto. Não é clara a divisão entre projetos que necessitam ou não sistemas operacionais, sendo que muitos projetos aceitam ambas as soluções. A experiência dos desenvolvedores com determinada solução possui grande peso na escolha, mas algumas considerações podem ajudar neste processo.

De forma geral, sistemas modelados em uma ou poucas tarefas não necessitam de um sistema operacional. Estes podem ser implementados utilizando a arquitetura conhecida como Super Loop [7], que consiste em um laço infinito contendo todas as tarefas a serem executadas. Um exemplo do Super Loop é mostrado na Figura 2; a rotina Initialization é executada apenas uma vez, enquanto as demais rotinas são executadas infinitamente.

Figura 2. Exemplo de tratamento de eventos pelo método Super Loop [8].

A execução de um sistema operacional consome recursos do sistema, como ciclos de CPU e memórias de programa e dados. Desta forma, sistemas operacionais não são adequados em projetos cujo hardware previamente definido é muito restritivo, embora existam sistemas operacionais projetados especificamente para microcontroladores com pouca disponibilidade de recursos. Por exemplo, o microcontrolador AT89S51 da Atmel cujas características relevantes estão reproduzidas na Tabela 1; devido aos poucos recursos oferecidos por este microcontrolador, não é recomendável a utilização de um sistema operacional.

Tabla 1. Características do microcontrolador AT89S51.

A utilização de um sistema operacional pode encarecer um produto à medida que exige mais recursos de hardware. Em produtos onde o custo é um fator crucial na escolha dos componentes pode ser preferível optar pela não utilização de um sistema operacional, visto que além do custo do hardware há o custo de aquisição do sistema operacional e, em alguns casos, royalty por unidade produzida.

Tabla 2. Serviços oferecidos por sistemas operacionais.

Apesar das exigências impostas pela utilização de um sistema operacional, estes oferecem muitas vantagens aos desenvolvedores e ao processo de desenvolvimento. Os benefícios mais evidentes são a modularização, reutilização de código fonte e facilidade de integração de partes de software.

Adicionalmente, a maioria dos sistemas operacionais oferece alguns dos serviços listados na Tabela 2. Quando algum destes serviços estiver presente nos requisitos do projeto é recomendável sua implementação utilizando um sistema operacional.

Seleção de sistemas operacionais

A escolha de um sistema operacional é uma das decisões mais importantes no projeto de um sistema embarcado. Se após as considerações da seção 5 foi decidido pela utilização de um sistema operacional, ainda é necessário escolher qual o mais adequado para o projeto. Os requisitos apresentados nas seções 4.1 e 4.2 a seguir são usados para este processo de seleção.

Requisitos técnicos

Os requisitos técnicos dizem respeito às propriedades e limitações dos sistemas operacionais. Os principais requisitos técnicos estão listados na Tabela 3.

Em projetos onde a migração entre diferentes processadores é uma possibilidade, o suporte a diferentes famílias de processadores é considerado um requisito de portabilidade. Nestes casos, é importante que o sistema operacional suporte diferentes processadores.

Os sistemas operacionais necessitam de memórias de código e de dados. A quantidade requerida destas memórias aumenta com o número de funcionalidades providas pelo sistema operacional. Caso as quantidades disponíveis de memória sejam uma limitação do projeto, estas podem impedir a adoção de um sistema operacional com mais funcionalidades. Porém a maioria dos sistemas operacionais é altamente configurável, o que permite a inclusão de apenas os componentes necessários para o sistema embarcado, originando uma imagem otimizada do sistema operacional.

Tabla 3. Requisitos técnicos dos sistemas operacionais.

O desempenho do sistema operacional está relacionado à sua capacidade de lidar com tarefas de tempo real, o tempo gasto para troca entre tarefas e a latência no atendimento de interrupções. Tudo isto influencia na capacidade do sistema atender aos requisitos temporais especificados no projeto.

O escalonamento de processos é uma das principais vantagens da utilização de um sistema operacional. Está relacionado a esta função o algoritmo de escalonamento, a quantidade de tarefas simultâneas suportadas, a quantidade de níveis de prioridade, a possibilidade de criação e remoção de tarefas dinamicamente e o mecanismo para prevenção da inversão de prioridades.

Além do escalonamento de tarefas, os sistemas operacionais também oferecem outros recursos e serviços. Como por exemplo, suporte a processadores com vários núcleos, gerenciamento de memória, mecanismos de comunicação e sincronização entre processos, sistemas de arquivos, protocolos de comunicação e interface gráfica com o usuário.

Os protocolos de comunicação são regras para permitir a troca de informações entre sistemas. Muitos protocolos de comunicação são suficientemente complexos para desencorajar o seu uso sem a presença de um sistema operacional. Nestes casos, a utilização de um sistema operacional que possua os requeridos protocolos embutidos é altamente recomendada.

As ferramentas de desenvolvimento são softwares e hardwares utilizados no processo de desenvolvimento. Apesar do grande impacto que estas ferramentas causam na produtividade, em muitos casos sua importância é negligenciada. As ferramentas de desenvolvimento mais comuns são ambiente integrado de desenvolvimento (IDE), compiladores, profilers, debuggers, simuladores e emuladores.

Requisitos comerciais

Os requisitos comerciais dizem respeito às regras de negócio, ao orçamento disponível e aos demais fatores não técnicos. Os principais fatores comerciais estão listados na Tabela 4.

Tabla 4. Requisitos comerciais dos sistemas operacionais.

A reputação do sistema operacional é importante em alguns projetos, especialmente aqueles projetos críticos ou de longa duração. Um fator geralmente considerado é o fabricante, ou seja, quem é responsável pelo desenvolvimento e manutenção do sistema operacional. Além disso, políticas corporativas podem exigir que os softwares utilizados sejam de empresas confiáveis. Finalmente, são considerados os prêmios e certificações recebidos pelo sistema operacional.

O sistema operacional pode ser distribuído sob uma licença comercial ou livre (free software ou open source). No caso de uma licença livre, restrições sobre o uso, modificação ou redistribuição podem ser impostas ao produto que a utilize. Por exemplo, a licença GNU General Public License (GPL) exige que modificações feitas ao código fonte sejam disponibilizadas para outros desenvolvedores. Em contrapartida, algumas licenças comerciais permitem acesso ao código fonte sem necessidade de redistribuição das modificações.

Os principais custos envolvidos na adoção de um sistema operacional comercial são o licenciamento inicial e em alguns casos royalties por unidade produzida. De forma geral, o fabricante fornece, juntamente com o sistema operacional adquirido, suporte técnico por um tempo limitado, o qual pode ser ampliado posteriormente. Por outro lado, no caso de sistemas operacionais livres, o suporte pode ser contratado de consultores, o que pode ser considerado um risco adicional para o projeto.

A fim de possibilitar melhor portabilidade do código fonte entre diferentes sistemas operacionais algumas interfaces padrão de programação (API) foram padronizadas, por exemplo, POSIX e ITRON. A compatibilidade com padrões pode obrigatória para algumas aplicações comerciais e contratos com o governo, devendo ser considerados nestes casos.

Conclusão

Neste artigo abordamos os requisitos dos sistemas embarcados e sistemas operacionais, os quais podem auxiliar no processo de decisão pela utilização ou não de um sistema operacional embarcado. No caso de um projeto baseado em um sistema operacional, mostramos como selecionar o sistema operacional mais adequado, baseando-se nos requisitos deste projeto.

Referencias

  1. EETimes Group. 2010. Disponible en: http://www.eetimes.com/electricalengineers/education-training/webinars/4006580/2010-Embedded-Market-Study.
  2. S. Baskiyar y N. Meghanathan. “A Survey of Contemporary Real-time Operating Systems”. Informatica (2005): 233-240
  3. Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 2 ed. Sao Pablo: Prentice Hall, 2003.
  4. T. N. B. Anh y Su-Lim Tan. “Realtime operating systems for small microcontrollers”. Micro, 29(5) (sept.-oct.2009): 30-45. IEEE.
  5. Ian Sommerville. Engenharia de Software. 8 ed. Sao Pablo: Pearson Addison-Wesley, 2007.
  6. Luís F. Friedrich. “A Survey on Operating System Support for Embedded Systems Properties”. Anais do Workshop de Sistemas Operacionais, VI (julio 2009):2393-2404.
  7. Michael Pont. Embedded C. Londres:Addison-Wesley, 2002.
  8. Wikibooks. Marzo de 2011. Disponible en:http://en.wikibooks.org/wiki/ Embedded_Systems/ Super_Loop_Architecture

Creation date: Junio de 2012

Artículos más leídos del mismo autor/a

Loading...