sistemas de tempo real - ufamhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... ·...
TRANSCRIPT
![Page 1: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/1.jpg)
© Alan Burns and Andy Wellings, 2001
Sistemas de Tempo Real
Lucas [email protected]
Universidade Federal do AmazonasDepartamento de Eletrônica e Computação
![Page 2: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/2.jpg)
Notas de Aula
� Estes slides são baseados nos livros: – Prof. Alan Burns da Universidade de York : http://www-
users.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 estão disponíveis em: http://home.ufam.edu.br/lucascordeiro/ptr/
![Page 3: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/3.jpg)
Objetivo do Curso
� Fornecer aos alunos, conhecimento teórico para a elaboração de projetos e verificação de sistemas de tempo real
� Dominar as peculiaridades destes sistemas, sendo capazes de analisar e projetar, de forma confiável, sistemas de hardware e software que possuam tais características
![Page 4: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/4.jpg)
Ementa do Curso (1)
� Introdução: o mundo dos sistemas de tempo real� Arquiteturas de software para sistemas de tempo real� Especificações de requisitos e de projeto de tempo real � Sistemas de máquinas de estados� Especificações declarativas� Predição de tempo de execução do pior caso (WCET)� Escalonamento de tarefas em sistemas em tempo real� Sincronização de processos concorrentes� Acesso a periféricos � Gerenciamento de entrada e saída (E/S)� Linguagens de programação que atendem às
especificidades de tempo-real
![Page 5: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/5.jpg)
Ementa do Curso (2)
� Introdução a Verificação de modelos� Verificação explícita e simbólica� Lógica temporal linear e de árvore de computação� Grafos de fluxo de controle� Semântica de programas� Satisfação booleana� Teorias do módulo da satisfação� Exemplo de aplicações
![Page 6: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/6.jpg)
Conteúdo da Avaliação
� Lista de exercícios: Ao final de cada capítulo� Prova parcial: Introdução 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 clássicos; tarefas periódicas; exclusão mútua e programação concorrente
� Seminários: Apresentação de seminários referente a um artigo recente relacionado ao tópico de sistemas de tempo real
� Projetos: Desenvolvimento de uma aplicação realística de tempo real
![Page 7: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/7.jpg)
Conteúdo da Avaliação
� Prova Final: Todo o conteúdo da disciplina incluindo os seminários.
Projetos dos Nota NP
Seminários dos Nota NS
Parcial Prova da Nota NPP3
2(MF) Final Média
4
NPNSNPP2 (MP) Parcial Média
==
=
+×=
++×=
PFMP
![Page 8: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/8.jpg)
Referências Bibliográficas (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
![Page 9: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/9.jpg)
Referências Bibliográficas (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
![Page 10: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/10.jpg)
Referências Bibliográficas (3)
![Page 11: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/11.jpg)
Referências Bibliográficas (4)
![Page 12: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/12.jpg)
Referências Bibliográficas (5)
![Page 13: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/13.jpg)
O que é um Sistema de Tempo Real?
� Um sistema de tempo real é qualquer sistema de processamento de informação que deve:
– responder a um estímulo de entrada gerado externamentedentro de um período de tempo finito e específico
• A corretude depende não somente dos resultados lógicos ,mas como também do tempo que o resultado foi entregue
• Falha para responder é tão ruim quanto uma resposta errada!
� O computador é um componente dentro um sistema maiorde engenharia => EMBEDDED COMPUTER SYSTEM
� 99% de todos os processadores são destinados para omercado de sistemas embarcados
![Page 14: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/14.jpg)
Definição (1)
� Young (1982) define um sistema de tempo real como:
“any information processing activity or system which has to respond to externally input stimuliwithin a finite and specified period ”
� Uma outra definição é (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 intervalsdictated by the environment”
![Page 15: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/15.jpg)
Definição (2)
� São sistemas que monitoram , respondem ou controlam um ambiente externo
� Ambiente conectado ao sistema de computação (SC) através de sensores , atuadores e outras interfaces de E/S.
� O SC deve satisfazer a várias restrições , 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)
by Alan Shaw
![Page 16: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/16.jpg)
Terminologia
� Hard real-time — sistemas onde é absolutamente imperativo queas respostas ocorram dentro de prazo de entrega solicitado(sistema de controle de vôo)
� Soft real-time — sistemas onde os prazos de entrega sãoimportantes, mas continuarão funcionando “corretamente” se osprazos não forem atendidos ocasionalmente (sistema de aquisiçãode dados)
� Real real-time — sistemas que são hard real-time e que os temposde respostas são curtos (sistema de guia de míssil)
� Firm real-time — sistemas que são soft real-time mas que nãoexiste benefício de entregas de serviço com atraso.
Um único sistema pode ter sub-sistemas hard, soft e real real-time(função custo associada com cada prazo de entrega)
![Page 17: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/17.jpg)
Sistema de Controle de Fluído
Tubo
Medidor de fluxo
Válvula
Interface
ComputadorTempo
Leitura do fluxode entrada
Processamento
Ângulo de saídada válvula
Deve responder em um períodode tempo específico para não sobrecarregar o equipamento conectado no fim do tubo
Pode envolver uma computação complexa para calcular o novo ângulo
![Page 18: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/18.jpg)
Planta de Torrefação de Grão
Tanque de combustível
Fornalha
Caixa
Tubo
Combustível
Grão
![Page 19: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/19.jpg)
Estação de Empacotamento
Controlador de linha
ComputadorChave
Linha de montagem
Caixa
0 = para
1 = roda
Campainha
Chave
![Page 20: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/20.jpg)
Sistema de Controle de Processo
Computadordo controlede processo
MateriaisQuímicos
VálvulaTransdutor
de temperaturaMisturador
Produtoacabado
Planta
Atuador
Sensor
Transdutor gera um sinal elétrico proporcional a quantidade física sendo medida
Conversores A/D e D/A podem ser inseridos no processo
![Page 21: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/21.jpg)
Sistema de Controle de Produção
Sistema de controlede produção
Partes
Máquinas Manipuladorescorreiatransportadora
Produtofinalizado
Precisam ser controlados e coordenados pelo computador
Uso de computadores para redução de custos de produção e aumento da produtividade
![Page 22: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/22.jpg)
Sistema de Controle e Comando
Temperatura, Pressão, Potência, Corrente, Tensão
Terminais
Computador deControle e Comando
Comando
Sensores/Atuadores
Consiste de um conjunto complexo de políticas, dispositivos de coleta de informações e proc. administrativos para habilitar tomadas de decisão
Controle de tráfego aéreo, reserva de assentos de aviões, etc
![Page 23: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/23.jpg)
Monitor de Usina Nuclear
despachante
Timer (T)
Falhas (F)
Processamento (P)
FG BG
B
Teste e exbição
Mantém o tempo decorrido
Processa o fluxo de líquido de resfriamento
reconfigura o hardware
Sistema opera com redundância e eleição sobre os resultados
![Page 24: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/24.jpg)
Outros Exemplos...
� Sistemas de controle de veículos para automóveis, metrôs, aeronaves, ferrovias e navios
� Controle de tráfego para auto-estradas, espaço aéreo, trilhos de ferrovias e corredores de navegação marítima
� Controle de processo para usinas de energia, indústrias químicas e para produtos de consumo, comorefrigerantes e cerveja
� Sistemas médicos para radioterapia, monitoramentode pacientes e desfibrilamento
� Uso militares como controle de tiro, rastreamento e sistemas de comando e controle
� Sistema de manufatura com robôs
![Page 25: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/25.jpg)
Outros Exemplos...
� Telefone, rádio e comunicação por satélite
� Jogos por computador
� Sistemas de multimídia que provêm interfaces textuais, gráficas, de áudio e de vídeo
� Sistemas domésticos para monitoramento e controlede eletrodomésticos
� Sistemas de automação predial que controlamtemperatura ambiental, iluminação, portas e elevadores
![Page 26: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/26.jpg)
Um Sistema Embarcado Típico
Algoritmos paraControle Digital
Log de dados
Recuperação dedados e display
Interface dooperador
InterfaceSistema deEngenharia
Sistema de monitoramentoremoto
Relógio de Tempo
Real
Banco deDados
Console dooperador
Dispositivosde display
Computador de Tempo Real(as ações são geralmente executadas de modo seqüencial, mas dando a ilusão de serem simultâneos)
![Page 27: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/27.jpg)
Um Sistema Embarcado Distribuído (1)
Nodo
Nodo
Nodo
Rede genérica
![Page 28: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/28.jpg)
Um Sistema Embarcado Distribuído (2)
Relógio de Tempo
Real
Barramento
Memória Memória ... Memória
Cache
Processador
Memóriaprivada
Controlador
Dispositivos E/S
Atuadores, sensores e vídeos
...
Tipos de interrupção: polling e prioridade
![Page 29: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/29.jpg)
LPC3250
� Principais características:
� ARM9 208MHz
� 64MB DRAM
� 64MB SRAM
� Ethernet 10/100
� USB OTG
� LCD
� touchscreen 3.2''
![Page 30: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/30.jpg)
Características de um STR (1)
� Grandes e complexos — variam de algumas centenas de linhas em assembly ou C para milhões de linhas de ADA estimado para o Space Station Freedom
– Tamanho do sistema está relacionado a variedade (número de instruções, esforço de desenvolvimento, responder a eventos externos)
� Controle concorrente dos componentes do sistema —dispositivos que operam em paralelo no mundo real (melhor modelar este paralelismo através de entidades concorrente no programa)
� Facilidade de interagir com o hardware de propósito especial — precisa ser capaz de programar os dispositivos em uma maneira abstrata e confiável
![Page 31: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/31.jpg)
Características de um STR (2)
� Extrema confiabilidade e segurança — 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 econômica
� Garantia nos tempos de resposta — nós precisamos ser capazes de prever com confidência o tempo de resposta no pior caso para os sistemas; eficiência é importante mais previsão é essencial
Nem todo STR exibe todas estas características, porém as linguagens e SOs usados para desenvolver STR devem fornecer facilidades que suportem estas características
![Page 32: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/32.jpg)
Manipulação de Números Reais (1)
Um Simples Controlador Analógico
Entidade controlada Vetor de
variáveis desaída
Sinal de referência
Sinal de erro
Vetor devariáveis deentrada
Feedback
É necessário ter um modelo matemático da planta usando equações diferenciais de primeira ordem (teoria de controle)
![Page 33: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/33.jpg)
Manipulação de Números Reais (2)
Um Simples Controlador Computadorizado
Dentro do computador, as equações diferencias podem ser resolvidas através de técnicas numéricas
![Page 34: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/34.jpg)
São Sistemas de Tempo Real?
� Um sistema de folha de pagamento que produz contra-cheques de empregados a cada duas semanas?
� Um sistema de cadastro esportivo que registra, mantém e exibe resultados durante eventos esportivos, tais comojogos de beisebol ou provas de atletismo?
� Um controlador de cancela em uma interseção 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 interseção?
� Um sistema de registro médico que mantém os históricos médicos de pacientes numa clínica?
![Page 35: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/35.jpg)
• Funcionalidade demanada aumentou de forma significativa
– teste e revisão em pares
• Processadores multi-core com memória compartilhadaescalável
void *threadA(void *arg) {lock(&mutex);x++;if (x == 1) lock(&lock);unlock(&mutex);lock(&mutex);x--;if (x == 0) unlock(&lock);unlock(&mutex);
}
void *threadB(void *arg) {lock(&mutex);y++;if (y == 1) lock(&lock);unlock(&mutex);lock(&mutex);y--;if (y == 0) unlock(&lock);unlock(&mutex);
}
(CS1)(CS2)
(CS3)Deadlock
Por quê Garantir Confiabilidade do Código ? (1)
![Page 36: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/36.jpg)
Por quê Garantir Confiabilidade do Código? (2)
Buffer Circular usando FIFO:
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());}
Caso de Teste:Checar se as mensagens sãoadicionadas e removidas do buffer circular
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;
}}
![Page 37: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/37.jpg)
O array buffer é do tipo char e tamanho BUFFER_MAX
Atribui uma variável inteira a um char: typecast overflow
Mas: implementação é falha!
Por quê Garantir Confiabilidade do Código? (3)
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;
}}
Incrementa first sem checar o limite do array: buffer overflow
![Page 38: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/38.jpg)
Linguagens de Programação de Tempo Real
� Linguagem Assembly
� Linguagens de sistemas sequênciais — p.e. RTL/2, Coral 66, Jovial, C
– Normalmente exigem suporte de SO
� Linguagens concorrentes de alto nível. Ação da crise do software. p.e. Ada, Chill, Modula-2, Mesa, Java.
– Não exigem suporte do SO!
� Nós consideraremos:
– Java/Real-Time Java
– C e Real-Time POSIX
– Ada 95
![Page 39: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/39.jpg)
Linguagens de Tempo Real e SO
Hardware
Sistema
Operacional
Programasdo usuário
Configuração de um SO Típico
Hardware
Incluindo SO
Componentes do sistema
Programa do usuário
Configuração Típica Embarcada
![Page 40: Sistemas de Tempo Real - UFAMhome.ufam.edu.br/lucascordeiro/ptr/slides/01-introducao-sistemas... · Os slides estão disponíveis em: Objetivo do Curso Fornecer aos alunos, conhecimento](https://reader030.vdocuments.mx/reader030/viewer/2022020415/5be855c009d3f25b278b4cf6/html5/thumbnails/40.jpg)
Resumo
� Duas principais classes podem ser identificadas:– sistemas de tempo real crítico– sistemas de tempo real brando
� As características básicas de um sistema embarcado ou de tempo real são:– tamanho e complexidade– manipulação de números reais– extrema confiabilidade e segurança– controle concorrente de componentes isolados do
sistema– controle de tempo real– interação com as interfaces do hardware– implementação eficiente