Você está na página 1de 6

Sistemas Operacionais de Tempo Real

Viso Geral dos RTOS


Um Sistema operacional de tempo real ou RTOS Real Time Operation System - um sistema
como outro qualquer, porm, possui como fator determinante o tempo em que cada tarefa ser
executada. Nele, as tarefas devem ser executadas em um determinado prazo (deadline), cada
tarefa possui um prazo diferente. O no cumprimento do prazo para a realizao de uma tarefa
gera uma falha no sistema. E, dependendo do tipo de RTOS, est falha pode ter
consequncias catastrficas, ou pode ser tolervel.
Podemos definir dois tipos de RTOS, os crticos ou hard, onde o no cumprimento do prazo
para a execuo de uma determinada tarefa traz consequncias catastrficas e uma operao
que no cumpra com o prazo intil. E os no-crticos ou soft, onde a uma tolerncia em
relao as tarefas que no cumprem o prazo, elas podem at ser teis.
Diferente do que se pensa, a velocidade no tempo de resposta em um STR no fator crucial,
o que realmente importante, o prazo para a execuo de uma determinada tarefa.
Esses sistemas interagem constantemente com o seu ambiente, recebendo estmulos e tendo
que enviar respostas a estes estmulos dentro de um prazo. Portanto no basta apenas o
sistema enviar os resultados corretos (correo lgica), tambm tem de enviar no tempo certo
(correo temporal).
O tempo para a resposta desses sistemas a estmulos vindos do ambiente externo, vai
depender das exigncias do ambiente. No caso, se tivermos um ambiente muito crtico o tempo
para resposta ter de ser compatvel com este ambiente. J em um ambiente menos crtico o
tempo para resposta poder ser mais ameno.
Podemos ainda distinguir da classe dos sistemas de tempo real, os sistemas a controlar, os
sistemas de controle computacional e o operador. Onde o sistema a controlar e o operador
constituem o ambiente do STR, no qual provem os estmulos. A comunicao entre esses
componentes e o STR, sida atravs de interfaces de instrumentao (no caso do sistema a
controlar) e interface homem-mquina (no caso do operador). A imagem abaixo ilustra esses
elementos.

Sistemas de tempo real crticos, so geralmente usados na rea militar, aviao, controle de
processos industriais, rea mdica e etc, onde o tempo para resposta algo altamente crtico.

J os no-crticos podem ser encontrados em jogos eletrnicos, videoconferncias, bancos de


dados, etc.

Importncia da Previsibilidade nos RTOS


Nos sistemas de tempo real a velocidade no tempo de resposta um fator no importante, pois
o aumento na velocidade dos clculos em um STR no garante a execuo das suas tarefas
dentro das restries de tempo impostas pelo ambiente.
Nesses sistemas h algo mais importante, a previsibilidade. Este conceito diz que, um sistema
previsvel no domnio logico (quando se sabe os resultados) e no domnio temporal (quando
se sabe que os prazos sero cumpridos) quando se antecipa (antes de sua execuo) o seu
comportamento, independente de variaes no hardware, de carga e de falhas. Este conceito
permite que tenhamos uma confirmao de execuo de tarefas em determinado perodo de
tempo.
Ento para podermos garantir a previsibilidade em um STR, e com isso garantir o cumprimento
de suas restries de tempo, dentro de certos limites, teremos que levantar certas hipteses,
como, hipteses de falhas e hipteses de carga em relao ao ambiente externo. Esses e
outros fatores nos permitiram conhecer o sistema e assim tentar garantir sua previsibilidade.
A hiptese de carga, seria a carga mxima gerada pelo ambiente em um intervalo mnimo de
tempo entre cada reao do sistema de tempo real.
A hiptese de falha, seria os tipos e frequncias de falhas com o qual o sistema deve conviver
em tempo de execuo e continuar atendendo seus requisitos funcionais e temporais.
Porm alm destes, outros fatores tambm podem influenciar no comportamento do STR.
Como hardware, linguagem de programao usada e sistema operacional.
Por exemplo, no caso das linguagens de programao, as linguagens de carter geral
apresentam construes no determinsticas e com isso tornam o sistema imprevisvel, alm
de no possurem estruturas que permitam expressar melhor o fator temporal. J linguagens
voltadas para programao temporal possuem construes apropriadas para este tipo de
programao.
Ento a previsibilidade nada mais do que a antecipao do comportamento do sistema,
buscando saber se o STR capaz de executar uma tarefa dentro de um prazo estipulado
mesmo na pior condio que possa a vir ocorrer. Com isso teremos total garantia do
cumprimento do prazo, algo que de suma importncia em sistemas crticos. Se o STR for
capaz de cumprir com todos os prazos, ento ele previsvel (previso determinista).
Temos ainda previso probabilista, onde usando estatsticas e simulaes, conseguimos obter
probabilidades de o STR cumprir com os prazos. Essa abordagem til quando no se sabe a
carga computacional do sistema ou outras informaes. Ela mais utilizada em sistemas de
tempo real no crticos.

Classificaes dos Sistemas de Tempo Real


Podemos usar duas classificaes para os sistemas de tempo real, a classificao do ponto de
vista da segurana, e do ponto de vista da implementao do sistema.
Do ponto de vista da segurana, os sistemas de tempo real podem ser classificados em: STR
No Crticos, onde a no execuo de uma tarefa dentro do prazo estipulado no gerara
consequncias catastrficas para o sistema, podendo ainda a tarefa ser utilizada. E os STR
Crticos, onde a no execuo de uma tarefa dentro do prazo estipulado acarretara
consequncias catastrficas para o sistema. Normalmente, usa-se a previsibilidade
probabilstica para STRs No Crticos e a previsibilidade determinstica para os STRs Crticos.
O grupo dos STR Crticos pode ainda ser subdividido em: STR Crtico Seguros em Caso de
Falha, onde teremos um ou mais estados seguros que podem ser acionados em caso de falha.
E os STR Crtico Operacionais em Caso de Falha, onde em caso de falha parcial esse sistema
poder se degradar fornecendo ainda algum servio mnimo.
Do ponto de vista da implementao, podemos classifica-los em: Sistemas de Resposta
Garantida, onde mesmo em um cenrio de carga mxima e de falhas o sistema garante uma
resposta aos estmulos do ambiente. E o Sistema de Melhor Esforo, onde usa-se estudos
probabilistas sobre a carga e falhas para se poder definir a alocao de recursos no sistema.

Tarefas e Restries de Tempo


Os sistemas de tempo real recebem estmulos (eventos) externos ou internos, e tem de
responder a esses eventos atravs do processamento de tarefas e entrega de sadas. Essas
tarefas devem ser processadas em um determinado tempo (prazo).
As tarefas so pequenos trechos de programa com responsabilidades bem definidas, e de
acordo com a sua importncia, lhe atribuda certa prioridade. atravs desta prioridade entre
as tarefas que o sistema tenta cumprir os prazos dos eventos. As tarefas so executadas de
forma independente, porm precisam se comunicar para que todo o sistema funcione.

Exemplo de Execuo de Tarefas


Para entender a importncia da comunicao entre as tarefas, podemos visualizar o exemplo a
seguir. Onde temos um simples sistema de alarme, com tarefas se comunicando entre si.

Neste exemplo, temos um sensor de movimento e presena que acionado. A tarefa 1, realiza
a leitura do sensor e detecta o acionamento, notificando ento a tarefa 4, atravs do envio de
uma mensagem. Aps analisar o acionamento usando sua lgica, se for um acionamento
vlido, a tarefa 4 notificar as tarefas 2 e 3. A tarefa 2 acionara a sirene e a 3 realizara a
discagem telefnica automtica para a central.
Ento, um sistema de tempo real composto pelo kernel (ncleo) e de vrias pequenas
tarefas, cada uma com sua prioridade definida. Logo necessrio algum mecanismo para o
gerenciamento destas tarefas, possibilitando que as mesmas sejam ordenadas de acordo com
sua prioridade. Isso feito atravs do escalonamento de tarefas.

Escalonamento de Tarefas
O escalonamento de tarefas realizado pelo kernel, onde o mesmo verificara quando uma
tarefa mais importante dever ser executada (escalonada).
Como o sistema de tempo real composto pelo kernel e pelas tarefas, a CPU ou est sendo
usada por alguma tarefa ou pelo kernel. Para que o kernel realize o escalonamento
necessrio que ele esteja no controle da CPU.
O controle da CPU pelo kernel pode ser obtido atravs de um dos seguintes eventos:

Quando uma tarefa envia uma mensagem para outra tarefa. Neste caso, o kernel
assume o controle da CPU, prepara o envio da mensagem e verifica qual a tarefa com
maior prioridade para ser executada no momento.
Quando uma tarefa requisita um tempo de espera (delay) para o kernel. Neste momento
o kernel assume o controle da CPU e pode realizar o escalonamento.
Quando ocorre uma interrupo no timer do sistema. Neste caso, a tarefa em execuo
colocada em espera e o kernel escalona para a tarefa mais importante.
Quando ocorre um evento que uma tarefa de prioridade maior estava esperando
ocorrer, causando a interrupo da tarefa em execuo.

Em uma estrutura de dados chamada TCB (Task Control Block) o kernel mantem informaes
sobre o estado atual de uma tarefa, tambm conhecido como contexto de execuo da tarefa.
O TCB tambm armazena o contedo de alguns dos registradores da CPU salvos no momento
em que a execuo da tarefa suspensa. A troca de tarefas em execuo, feita pelo kernel,
tambm pode ser chamada de mudana de contexto, pois o kernel salva o contexto da tarefa a
ser suspensa no TCB, e o contexto da tarefa a ser executada recuperada do TCB.

Exemplo de Escalonamento de Tarefas


Para ficar mais claro o processo de escalonamento de tarefas, segue o exemplo a seguir.
Uma tarefa de prioridade baixa est sendo executada. Ento um evento externo ao
processador, sendo consequncia de algum hardware externo, enviando um sinal de aviso ao
processador, ocorre, gerando uma interrupo. A unidade de controle verifica que h uma

interrupo e para a execuo da tarefa corrente. O kernel assume o controle, salva o estado
da tarefa atual (contexto de execuo da tarefa) no TCB e chama uma rotina de tratamento de
interrupo adequada com o tipo de interrupo ocorrida.
O fluxo de execuo ento desviado para esta rotina de tratamento, que aps ser completada
chama um servio do kernel. O kernel prepara e escala uma rotina de maior prioridade, que
estava aguardando a ocorrncia deste evento para ser executada.
Esta rotina aps entrar em execuo, chama uma funo do kernel para aguardar por outro
evento. Isso faz com que o kernel seja acionado novamente e realiza outro escalonamento,
desta vez da tarefa de menor prioridade que foi interrompida inicialmente.
Como pode ser visto no exemplo anterior, o kernel fez uso da UCP em trs momentos para
realizar o escalonamento de rotinas (tarefas) a serem executadas.

Sistemas de Tempo Real Disponveis no Mercado

FreeRTOS
um sistema de tempo real free, criado por volta do ano 2000 por Richard Barry, e hoje
mantido pela empresa Real Time Engineers Ltd. Possui cdigo aberto.
Projetado para ser pequeno, simples e fcil de usar. o STR mais utilizado para aplicaes
embarcadas. Suporta mais de 34 arquiteturas diferentes. Possui um mini-kernel de sistemas de
tempo real. Seu kernel pode ocupar de 4KB a 9KB de cdigo e cerca de 200 bytes de dados.
Tem aproximadamente 2.200 linhas de cdigo. Seu cdigo fonte escrito em C com partes em
Assembly, distribudo em quatro arquivos, task.c, queue.c, croutine.c e list.c

VxWorks
Sistema operacional de tempo real parecido com o Unix, produzido e vendido pela Wind River
Systems.
Possui um ncleo (kernel) multitarefa com escalonamento preemptivo, rpida resposta s
interrupes, meios de comunicao entre processos e meios para a sincronizao, e sistema
de arquivos.
Tem como caractersticas a mais o gerenciamento de memria compatvel com POSIX,
facilidades para multiprocessadores, um shell para interao e etc.

LINKS DE PESQUISA

https://www.wikiwand.com/pt/Sistema_operacional_de_tempo-real

http://www.ic.unicamp.br/~islene/2s2007-mo806/slides/rt.pdf

http://sergioprado.org/sistemas-de-tempo-real-part-1/

http://www.mecatronicaatual.com.br/educacao/1871-o-que-um-sistema-operacional-de-temporeal-rtos

https://www.wikiwand.com/pt/VxWorks
http://www.freertos.org/index.html