artigo so 1ni

8
Sistemas Operacionais de Tempo Real Visão Geral dos RTOS Um Sistema operacional de tempo real ou RTOS – Real Time Operation System - é um sistema como outro qualquer, porém, 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 não cumprimento do prazo para a realização de uma tarefa gera uma falha no sistema. E, dependendo do tipo de RTOS, está falha pode ter consequências catastróficas, ou pode ser tolerável. Podemos definir dois tipos de RTOS, os críticos ou hard, onde o não cumprimento do prazo para a execução de uma determinada tarefa traz consequências catastróficas e uma operação que não cumpra com o prazo é inútil. E os não-críticos ou soft, onde a uma tolerância em relação as tarefas que não cumprem o prazo, elas podem até ser úteis. Diferente do que se pensa, a velocidade no tempo de resposta em um STR não é fator crucial, o que realmente é importante, é o prazo para a execução de uma determinada tarefa. Esses sistemas interagem constantemente com o seu ambiente, recebendo estímulos e tendo que enviar respostas a estes estímulos dentro de um prazo. Portanto não basta apenas o sistema enviar os resultados corretos (correção lógica), também tem de enviar no tempo certo (correção temporal). O tempo para a resposta desses sistemas a estímulos vindos do ambiente externo, vai depender das exigências do ambiente. No caso, se tivermos um ambiente muito crítico o tempo para resposta terá de ser compatível com este ambiente. Já em um ambiente menos crítico 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 estímulos. A comunicação entre esses componentes e o STR, sida através de interfaces de instrumentação (no caso do sistema a controlar) e interface homem-

Upload: luiz-felipe

Post on 08-Nov-2015

217 views

Category:

Documents


3 download

DESCRIPTION

Artigo sobre SOTR.

TRANSCRIPT

Sistemas Operacionais de Tempo Real

Viso Geral dos RTOSUm 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 RTOSNos 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 RealPodemos 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 TempoOs 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 TarefasPara 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 TarefasO 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 TarefasPara 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

VxWorksSistema 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-tempo-real-rtos

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