Trabalho Submetido para Avaliação - 31/08/2012 09:07:58 ESTUDO SOBRE O SISTEMA OPERACIONAL DE TEMPO REAL FREE RTOS RICARDO FROHLICH DA SILVA ([email protected]) / UFSM, Santa Maria ORIENTADOR: OSMAR MARCHI DOS SANTOS ([email protected]) / UFSM, Santa Maria Palavras-Chave: Sistemas Operacionais, Sistemas Operacionais de Tempo Real, Sistemas Embarcados Sistema operacional é um programa que atua entre o usuário e o hardware de um computador com a função de fornecer um ambiente onde o usuário possa executar aplicativos, tornando assim o uso do sistema computacional conveniente. Outra função é utilizar o hardware do computador de forma eficiente (SILBERSCHATZ; GAGNE; GALVIN, 2000). A maior parte dos computadores encontrados são utilizados para fins específicos. Estes são chamados de sistemas embarcados, pois tem um propósito específico de aplicação. Por exemplo, sistemas embarcados em dispositivos como telefones celulares, centrais telefônicas, decodificadores de tv, eletrodomésticos entre outros. Da mesma forma que um computador de uso geral utiliza um sistema operacional para melhorar a eficiência do sistema, sistemas embarcados utilizam sistemas operacionais que possibilitem implementar sistemas que interajam diretamente com o ambiente, ou seja, e possuem requisitos temporais bem definidos. Esses sistemas são denominados de sistemas operacionais de tempo real e seu estudo é importante para atender as necessidades de mercado, pois é crescente o aumento da complexidade nos sistemas embarcados sendo desenvolvidos (CORRÊA, 2008). Mais especificamente, sistemas operacionais de tempo real são sistemas em que garantir o tempo de execução da tarefa sendo executada é essencial Para executar uma operação o sistema já possui um tempo determinado para finalizar essa operação. Em um sistema de tempo real critico, é necessário que ocorra uma garantia de que uma ação seja executada em um intervalo de tempo, caso não haja uma resposta dentro deste tempo é considerado que houve falha do sistema, podendo causar desastres. Já em um sistema de tempo real não critico, o não cumprimento deste prazo é aceitável até determinada taxas de erro, embora não seja desejado (TENENBAUM, 2010). Um sistema operacional de tempo real é utilizado quando existem requisitos rígidos de tempo na operação de um processador ou no fluxo de dados. Normalmente é utilizado para efetuar o controle de um aplicativo dedicado, como experimentos científicos, sistemas de imagens medicas, sistemas de controle industrial entre outros (SILBERSCHATZ; GAGNE; GALVIN, 2000). Com o aumento da velocidade computacional pode-se alcançar uma melhoria no desempenho e assim minimizando o tempo de resposta de uma tarefa. Mas um tempo menor de resposta não fornece garantia que os requisitos temporais serão atendidos. Em um sistema de tempo real o que importa é a previsibilidade da resposta e não desempenho (FARINES; FRAGA; OLIVEIRA, 2000). Free RTOS O Free RTOS (Free Real-Time Operating System) é um sistema operacional de tempo real com código aberto (open source) escrito em na linguagem C, que disponibiliza suporte para diversas arquiteturas de sistemas embarcados diferentes, como ARM, PIC, X86, 8051 entre outros. O objetivo do Free RTOS é disponibilizar um sistema operacional de tempo real que fornecesse facilidade para implantar e desenvolver aplicativos. Uma das facilidades é a possibilidade da simulação do sistema Free RTOS no sistema operacional Windows, com intuito de efetuar testes no sistema que está sendo desenvolvido (Site FreeRTOS). Possui suporte a tarefas e sub-rotinas em tempo real. As tarefas podem assumir quatro estados diferentes: (i) em execução, (ii) pronta, (iii) bloqueada e (iv) suspensa. Já a sub-rotina é opcional e, diferentemente das tarefas, sua pilha de execução é compartilhada com outras sub-rotinas. Para a comunicação e sincronização entre as tarefas são fornecidas filas, semáforos binários, semáforos de contagem e semáforos recursivos. Além disso, o FreeRTOS fornece opções para a detecção de estouro de pilha e não possui restrição de números de tarefas criadas. (Site FreeRTOS) O escalonador é responsável por gerenciar o processador, implementando uma politica de escalonamento baseado em prioridades, ordenando um conjunto de tarefas para execução. Para o tratamento de compartilhamento de recursos entre tarefas o Free RTOS possui suporte aos Protocolo de Herança de Prioridades e Prioridade Teto, que impedem que uma tarefa de maior prioridade seja bloqueada enquanto uma tarefa de menor prioridade executa o processador (Site FreeRTOS). O Protocolo de Herança de Prioridades impede o bloqueio por inversão fazendo com que a tarefa de menor prioridade herde a prioridade da tarefa de maior prioridade querendo acessar o recurso compartilhado. Já o Protocolo de Prioridade Teto assume como prioridade teto a prioridade da tarefa com maior prioridade, assumindo a prioridade da tarefa de menor prioridade no momento que ela entra no recurso compartilhado (FARINES; FRAGA; OLIVEIRA, 2000). Trabalhos Futuros Diante do estudo realizado, o próximo passo do trabalho é realizar uma análise mais aprofundada no sistema de tempo real para embarcados FreeRTOS, através de testes de sobrecarga do sistema com intuito de avaliar a eficiência na execução de tarefas de tempo real. REFERÊNCIAS: CORRÊA, Luiz Antonio Coelho; Seleção de sistemas operacionais de tempo real para sistemas embarcados; Simpósio de Excelência em Gestão e Tecnologia (SEGeT); 1; 1-5; 2008. FARINES, Jean-Marie; FRAGA, Joni da Silva; OLIVEIRA, Rômulo Silva de; ; Sistemas de Tempo Real; Florianópolis; Departamento de Automação e Sistemas UFSC; 2000. FREERTOS; Site Oficial Free RTOS; http://www.freertos.org/; 23/08/2012. SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter;; Sistemas Operacionais – Conceitos e aplicações; São Paulo; Editora Campus; 2000. TENENBAUM, Andrew S.; ; Sistemas Operacionais Modernos; São Paulo; Editora LTC; 2010.