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

estudo sobre o sistema operacional de tempo real free rtos