Vous êtes sur la page 1sur 40

Universidade Federal do Amazonas Programa de Ps-graduao em Engenharia Eltrica (PPGEE)

Sistemas de Tempo Real

Lucas Cordeiro lucascordeiro@ufam.edu.br

Alan Burns and Andy Wellings, 2001

Notas de Aula
Estes slides so baseados nos livros:
Prof. Alan Burns da Universidade de York : http://wwwusers.cs.york.ac.uk/~burns/ Prof. Alan Shaw da Universidade de Washington: http://www.cs.washington.edu/people/faculty/shaw/ Prof. Joost-Pieter Katoen da Universidade de Aachen: http://www-i2.informatik.rwth-aachen.de/~katoen/

Os slides esto disponveis em: http://users.ecs.soton.ac.uk/lcc08r/disciplinas/str/

Objetivo do Curso
Fornecer aos alunos, conhecimento terico para a elaborao de projetos e verificao de sistemas de tempo real Dominar as peculiaridades destes sistemas, sendo capazes de analisar e projetar de forma confivel sistemas de hardware e software que possuam tais caractersticas

Ementa do Curso (1)


Introduo: o mundo dos sistemas de tempo real Arquiteturas de software para sistemas de tempo real Especificaes de requisitos e de projeto de tempo real Sistemas de mquinas de estados Especificaes declarativas Predio de tempo de execuo do pior caso (WCET) Escalonamento de tarefas em sistemas em tempo real Sincronizao de processos concorrentes Acesso a perifricos Gerenciamento de entrada e sada (E/S) Linguagens de programao que atendem s especificidades de tempo-real

Ementa do Curso (2)


Introduo a Verificao de modelos Verificao explcita e simblica Lgica temporal linear e de rvore de computao Grafos de fluxo de controle Semntica de programas Satisfao booleana Teorias do mdulo da satisfao Exemplo de aplicaes

Contedo da Avaliao
Lista de exerccios: Ao final de cada captulo Prova parcial: Introduo aos sistemas de tempo real; projetando sistemas de tempo real; desenvolvimento de pequenos sistemas de tempo real; desenvolvimento de grandes sistemas de tempo real; escalonamento; algoritmos clssicos; tarefas peridicas; excluso mtua e programao concorrente Seminrios: Apresentao de seminrios referente a um artigo recente relacionado ao tpico de sistemas de tempo real Projetos: Desenvolvimento de uma aplicao realstica de tempo real

Contedo da Avaliao
Prova Final: Todo o contedo da disciplina incluindo os seminrios.

2 NPP + NS + NP + NL Mdia Parcial (MP) = 5 2 MP + PF Mdia Final (MF) = 3 NPP = Nota da Prova Parcial NS = Nota dos Seminrios NP = Nota dos Projetos NL = Nota das Listas de Exerccios

Referncias Bibliogrficas (1)


Burns, Alan e Wellings, Andrew J., Real-Time Systems And Programming Languages, Addison Wesley, 2009 Shaw, Alan C., Sistemas e Software De Tempo Real, Bookman Companhia Ed, 2003 Kopetz, Hermann, Real-Time Systems : Design Principles for Distributed Embedded Applications, Kluwer Academic, 1997 Cooling, J.E., Software Engineering For Real-Time Systems, Addison Wesley, 2002 Jean J. Labrosse, MicroC/OS II: The Real Time Kernel, CMP Books, 2002 John Barnes, Programming in Ada95, Second Edition, Addison Wesley, 1998

Referncias Bibliogrficas (2)


Baier, C. and Katoen, J.-P. Principles of Model Checking. The MIT Press, 2008 Berard, B.; Bidoit, M.; Finkel, A. and F. Laroussinie Systems and Software Verification: Model-Checking Techniques and Tools. Springer, 2001 Clarke. E.; Grumberg, O. and Peled, A. Model Checking. The MIT Press, 2000

Referncias Bibliogrficas (3)

Referncias Bibliogrficas (4)

Referncias Bibliogrficas (5)

O que um Sistema de Tempo Real?


Um sistema de tempo real qualquer sistema de processamento de informao que deve:
responder a um estmulo de entrada gerado externamente dentro de um perodo de tempo finito e especfico
A corretude depende no somente dos resultados lgicos, mas como tambm do tempo que o resultado foi entregue Falha para responder to ruim quanto uma resposta errada!

O computador um componente dentro um sistema maior de engenharia => EMBEDDED COMPUTER SYSTEM 99% de todos os processadores so destinados para o mercado de sistemas embarcados

Definio (1)

Young (1982) define um sistema de tempo real como: any information processing activity or system which has to respond to externally input stimuli within a finite and specified period Uma outra definio (Randell et al., 1995): A real-time system is a system that is required to react to stimuli from the environment (including the passage of physical time) within time intervals dictated by the environment

Definio (2)
by Alan Shaw So sistemas que monitoram, respondem ou controlam um ambiente externo Ambiente conectado ao sistema de computao (SC) atravs de sensores, atuadores e outras interfaces de E/S. O SC deve satisfazer a vrias restries, principalmente as impostas a ele pelo comportamento de tempo-real do mundo externo Pode ser chamado de sistema reativo (se reagir a eventos externos) ou sistema embarcado (se estiver dentro de um sistema maior)

Terminologia
Hard real-time sistemas onde absolutamente imperativo que as respostas ocorram dentro de prazo de entrega solicitado (sistema de controle de vo) Soft real-time sistemas onde os prazos de entrega so importantes, mas continuaro funcionando corretamente se os prazos no forem atendidos ocasionalmente (sistema de aquisio de dados) Real real-time sistemas que so hard real-time e que os tempos de respostas so curtos (sistema de guia de mssil) Firm real-time sistemas que so soft real-time mas que no existe benefcio de entregas de servio com atraso. Um nico sistema pode ter sub-sistemas hard, soft e real real-time (funo custo associada com cada prazo de entrega)

Sistema de Controle de Fludo


Deve responder em um perodo de tempo especfico para no sobrecarregar o equipamento conectado no fim do tubo
Leitura do fluxo de entrada Interface Tubo

Medidor de fluxo

Processamento

Pode envolver uma computao complexa para calcular o novo ngulo


Vlvula

ngulo de sada da vlvula Tempo Computador

Planta de Torrefao de Gro

Caixa

Fornalha Tanque de combustvel Gro Tubo

Combustvel

Estao de Empacotamento

Chave Computador

Chave Linha de montagem

Campainha Controlador de linha 0 = para 1 = roda Caixa

Sistema de Controle de Processo


Transdutor gera um sinal eltrico proporcional a quantidade fsica sendo medida
Computador do controle de processo

Conversores A/D e D/A podem ser inseridos no processo

Atuador Vlvula Materiais Qumicos Transdutor de temperatura Misturador Produto acabado

Sensor Planta

Sistema de Controle de Produo


Uso de computadores para reduo de custos de produo e aumento da produtividade

Sistema de controle de produo

Produto finalizado Partes correia transportadora

Mquinas

Manipuladores

Precisam ser controlados e coordenados pelo computador

Sistema de Controle e Comando


Consiste de um conjunto complexo de polticas, dispositivos de coleta de informaes e proc. administrativos para habilitar tomadas de deciso
Comando

Controle de trfego areo, reserva de assentos de avies, etc

Computador de Controle e Comando

Temperatura, Presso, Potncia, Corrente, Tenso Terminais Sensores/Atuadores

Monitor de Usina Nuclear


Sistema opera com redundncia e eleio sobre os resultados

Mantm o tempo decorrido reconfigura o hardware

FG
Timer (T) Falhas (F) despachante

BG
B

Processamento (P) Teste e exbio Processa o fluxo de lquido de resfriamento

Outros Exemplos...
Sistemas de controle de veculos para automveis, metrs, aeronaves, ferrovias e navios Controle de trfego para auto-estradas, espao areo, trilhos de ferrovias e corredores de navegao martima Controle de processo para usinas de energia, indstrias qumicas e para produtos de consumo, como refrigerantes e cerveja Sistemas mdicos para radioterapia, monitoramento de pacientes e desfibrilamento Uso militares como controle de tiro, rastreamento e sistemas de comando e controle Sistema de manufatura com robs

Outros Exemplos...
Telefone, rdio e comunicao por satlite Jogos por computador Sistemas de multimdia que provm interfaces textuais, grficas, de udio e de vdeo Sistemas domsticos para monitoramento e controle de eletrodomsticos Sistemas de automao predial que controlam temperatura ambiental, iluminao, portas e elevadores

Um Sistema Embarcado Tpico


Relgio de Tempo Real

Algoritmos para Controle Digital

Interface

Sistema de Engenharia

Log de dados

Sistema de monitoramento remoto

Banco de Dados Recuperao de dados e display Dispositivos de display Computador de Tempo Real (as aes so geralmente executadas de modo seqencial, mas dando a iluso de serem simultneos)

Console do operador

Interface do operador

Um Sistema Embarcado Distribudo (1)


Nodo Nodo

Nodo

Rede genrica

Um Sistema Embarcado Distribudo (2)


Memria Memria

...

Memria Barramento

Relgio de Tempo Real

Cache Processador Memria privada

...

Controlador Tipos de interrupo: polling e prioridade Dispositivos E/S Atuadores, sensores e vdeos

LPC3250
Principais caractersticas:
ARM9 208MHz 64MB DRAM 64MB SRAM Ethernet 10/100 USB OTG LCD touchscreen 3.2''

Caractersticas de um STR (1)


Grandes e complexos variam de algumas centenas de linhas em assembly ou C para milhes de linhas de ADA estimado para o Space Station Freedom
Tamanho do sistema est relacionado a variedade (nmero de instrues, esforo de desenvolvimento, responder a eventos externos)

Controle concorrente dos componentes do sistema dispositivos que operam em paralelo no mundo real (melhor modelar este paralelismo atravs de entidades concorrente no programa) Facilidade de interagir com o hardware de propsito especial precisa ser capaz de programar os dispositivos em uma maneira abstrata e confivel

Caractersticas de um STR (2)


Extrema confiabilidade e segurana sistemas embarcados tipicamente controlam o ambiente no qual eles operam; falha para controlar pode resultar em perda de vidas, danos ao meio ambiente e perda econmica Garantia nos tempos de resposta ns precisamos ser capazes de prever com confidncia o tempo de resposta no pior caso para os sistemas; eficincia importante mais previso essencial Nem todo STR exibe todas estas caractersticas, porm as linguagens e SOs usados para desenvolver STR devem fornecer facilidades que suportem estas caractersticas

Manipulao de Nmeros Reais (1)


Um Simples Controlador Analgico
Sinal de referncia Sinal de erro Vetor de variveis de entrada Entidade controlada Vetor de variveis de sada

Feedback

necessrio ter um modelo matemtico da planta usando equaes diferenciais de primeira ordem (teoria de controle)

Manipulao de Nmeros Reais (2)


Um Simples Controlador Computadorizado

Dentro do computador, as equaes diferencias podem ser resolvidas atravs de tcnicas numricas

So Sistemas de Tempo Real?


Um sistema de folha de pagamento que produz contracheques de empregados a cada duas semanas? Um sistema de cadastro esportivo que registra, mantm e exibe resultados durante eventos esportivos, tais como jogos de beisebol ou provas de atletismo? Um controlador de cancela em uma interseo de trilhos de ferrovia com uma rodovia, o qual controla a abertura e o fechamento do acesso ao cruzamento, para assegurar que a rodovia fique bloqueada sempre que um trem esteja na rea de interseo? Um sistema de registro mdico que mantm os histricos mdicos de pacientes numa clnica?

Por qu Garantir Confiabilidade do Cdigo? (1)


Funcionalidade demanada aumentou de forma significativa
teste e reviso em pares

Processadores multi-core com memria compartilhada escalvel


void *threadA(void *arg) { void *threadB(void *arg) { lock(&mutex); lock(&mutex); x++; y++; if (x == 1) lock(&lock); if (y == 1) lock(&lock); (CS2) unlock(&mutex); (CS1) unlock(&mutex); Deadlock (CS3) lock(&mutex); lock(&mutex); x--; y--; if (x == 0) unlock(&lock); if (y == 0) unlock(&lock); unlock(&mutex); unlock(&mutex); } }

Por qu Garantir Confiabilidade do Cdigo? (2)


Buffer Circular usando FIFO:
static char buffer[BUFFER_MAX]; void initLog(int max) { buffer_size = max; first = next = 0; } int removeLogElem(void) { first++; return buffer[first-1]; } void insertLogElem(int b) { if (next < buffer_size) { buffer[next] = b; next = (next+1)%buffer_size; } }

Caso de Teste: Checar se as mensagens so adicionadas e removidas do buffer circular


static void testCircularBuffer(void) { int senData[] = {1, -128, 98, 88, 59, 1, -128, 90, 0, -37}; int i; initLog(5); for(i=0; i<10; i++) insertLogElem(senData[i]); for(i=5; i<10; i++) ASSERT_EQUAL_INT(senData[i], removeLogElem()); }

Por qu Garantir Confiabilidade do Cdigo? (3)


Buffer Circular usandi FIFO:
static char buffer[BUFFER_MAX]; void initLog(int max) { buffer_size = max; first = next = 0; } int removeLogElem(void) { first++; return buffer[first-1]; } void insertLogElem(int b) { if (next < buffer_size) { buffer[next] = b; next = (next+1)%buffer_size; } }

Mas: implementao falha!


O array buffer do tipo char

Atribui uma varivel inteira Typecast overflow

Linguagens de Programao de Tempo Real


Linguagem Assembly Linguagens de sistemas sequnciais p.e. RTL/2, Coral 66, Jovial, C
Ambas normalmente requerem suporte de SO

Linguagens concorrentes de alto nvel. Ao da crise do software. p.e. Ada, Chill, Modula-2, Mesa, Java.
No requerem suporte do SO!

Ns consideraremos:
Java/Real-Time Java C e Real-Time POSIX Ada 95

Linguagens de Tempo Real e SO

Programas do usurio Sistema

Programa do usurio Incluindo SO

Hardware

Hardware

Operacional

Componentes do sistema

Configurao de um SO Tpico

Configurao Tpica Embarcada

Resumo
Duas principais classes podem ser identificadas:
sistemas de tempo real crtico sistemas de tempo real brando

As caractersticas bsicas de um sistema embarcado ou de tempo real so:


tamanho e complexidade manipulao de nmeros reais extrema confiabilidade e segurana controle concorrente de componentes isolados do sistema controle de tempo real interao com as interfaces do hardware implementao eficiente

Vous aimerez peut-être aussi