STR - Sistemas de Tempo-Real
2006/2007 - 1º Semestre
|
Universidade de Aveiro
Disciplina opcional do 5º ano das Licenciaturas em:
- Engª de Electrónica e Telecomunicações
- Engª de Computadores e Telemática
Código da disciplina:
11475
- Relatório
- Deverá ser entregue até ao dia 8 de Janeiro de 2007
- O respectivo formato deverá obedecer às seguintes indicações: folha
de capa com nome da disciplina, do docente, do ano lectivo, do trabalho e dos
autores; corpo até quatro páginas; texto em coluna simples, espaçamento simples entre linhas, tipo de
letra TimesNewRoman tamanho 11 ou 12, margens laterais de 2,5cm; indicação
do número de página no rodapé.
- Quando se justificar poderão existir anexos técnicos (e.g. esquemáticos, notas sobre questões de instalação, etc.)
- Pacote a entregar : conjuntamente com a versão impressa do relatório deverá também ser entregue um ficheiro compactado (formatos zip ou tgz) com: apresentação em pdf; relatório em pdf; código fonte do software; anexos (esquemáticos, etc)
Topo
Topo
Horário e salas
- teóricas (sala 130), 2ªs 14h-16h
- turma P1 (lab. 214), 2ªs 16h-18h
- atendimento: Quartas-feiras, 14H00-18H00, gab. 321 (DETI)
Topo
Enquadramento, objectivos e organização
Os sistemas de tempo-real desempenham um papel crucial nas sociedades modernas,
suportando áreas aplicacionais tais como controlo de centrais nucleares,
controlo de indústrias químicas, sistemas aviónicos, sistemas de controlo de
tracção, motor e travagem em automóveis, controlo de tráfego aéreo, marítimo,
ferroviário e rodoviário, sistemas de telecomunicações, automação
industrial, robótica, sistemas de defesa militar, missões espaciais, etc..
Embora o leque de aplicações seja vasto, muitas das quais são aplicações críticas
em termos de segurança, as abordagens tipicamente usadas no desenvolvimento de
sistemas de tempo-real baseiam-se em técnicas de programação empíricas e de
baixo nível, sem o suporte de uma metodologia científica precisa. A consequência
desse facto é uma menor fiabilidade que, em tais aplicações críticas, pode
causar sérios danos a equipamento, ambiente e até mesmo a vidas humanas.
Por outro lado, a recente grande difusão de aplicações interactivas, como os
sistemas de realidade virtual ou genericamente os sistemas multimedia, veio
alargar substancialmente o leque de aplicabilidade dos sistemas de tempo-real.
Emboras estas aplicações não sejam críticas em termos de segurança, o
cumprimento das respectivas restrições temporais tem um impacto directo no
respectivo desempenho.
Esta proliferação de aplicações com restrições temporais veio aumentar
significativamente o interesse nos sistemas operativos de tempo-real, sendo hoje
comum encontrar referências por exemplo a sistemas como Real-Time Linux.
A disciplina que se propõe foca quatro aspectos essenciais:
- a origem e caracterização das restrições
impostas pelo ambiente ao comportamento temporal do sistema computacional;
- a forma como o sistema computacional mantém o
conhecimento do estado do ambiente que o rodeia;
- a teoria de escalonamento de actividades
concorrentes associadas a processos de tempo-real;
- e a constituição e construção de sistemas
operativos / executivos de tempo-real.
A organização proposta está baseada em duas componentes, teórica e prática. A
primeira será essencialmente expositiva mas recorrendo a exemplos práticos e
momentos de discussão. A segunda fará uso de vários sistemas operativos e/ou
executivos tempo-real de domínio público ou disponíveis para ensino (e.g.
RT-Linux, RTAI, KURT, RT-Mach, SHaRK, SMX, ReTMiK) bem como de um conjunto de
plataformas para sistemas embutidos (baseadas no uC 80C188, 68HC11, 80C51,
PIC16F876) e incluirá uma primeira série
de trabalhos práticos essencialmente ilustrativos, sendo seguida pelo
desenvolvimento de um pequeno projecto.
Topo
Tópicos, planificação e slides das aulas teóricas
-
Aula 0: Apresentação. Funcionamento da disciplina. Outras informações.
(slides/pdf-333KB)
-
Aula 1: Restrições temporais: origem e caracterização
slides/pdf-336KB)
- 1.1- O conceito de tempo-real e a origem das restrições temporais
- 1.2- Caracterização de restrições temporais
- 1.3- Requisitos dos sistemas de tempo-real
-
Aula 2: Modelos computacionais
(slides/pdf-285KB)
- 2.1- Modelos de tarefas com restrições temporais explícitas
- 2.2- Questões de implementação
- 2.3- Controlo lógico versus controlo temporal
- 2.4- Caracterização dos paradigmas de controlo por eventos (ET) e por tempo (TT)
-
Aula 3: Executivos de tempo-real
(slides/pdf-312KB)
- 3.1- Os estados de uma tarefa
- 3.2- Arquitectura genérica de um executivo (kernel) de tempo-real
- 3.3- Estruturas e funções típicas do executivo
-
Aula 4: Conceitos básicos de escalonamento
(slides/pdf-216KB)
- 4.1- Escalonamento de tarefas, taxonomia básica
- 4.2- Alguns métodos básicos de escalonamento
- 4.3- Escalonamento estático cíclico
-
Aula 5: Escalonamento de tarefas periódicas
(slides/pdf-245KB)
- 5.1- Escalonamento baseado em prioridades fixas (RM, DM, outros)
- 5.2- Análises de escalonabilidade baseadas em utilização e tempo de resposta
-
Aula 6: Escalonamento de tarefas periódicas, cont.
(slides/pdf-276KB)
- 6.1- Escalonamento baseado em prioridades dinâmicas (EDF, LSF, outros)
- 6.2- Análises de escalonabilidade baseadas em utilização e carga de CPU
- 6.3- Comparação entre prioridades fixas e dinâmicas
-
Aula 7: Acesso a recursos partilhados
(slides/pdf-265KB)
- 7.1- O problema da inversão de prioridades
- 7.2- Herança de prioridades
- 7.3- Protocolo de tecto de prioridades (Priority-Ceiling Protocol)
- 7.4- Protocolo de pilha de recursos (Stack Resource Protocol)
-
Aula 8: Processamento de tarefas aperiódicas
(slides/pdf-283KB)
- 8.1- Servidores de prioridades fixas
- 8.2- Servidores de prioridades dinâmicas
-
Aula 9: Outras aspectos do escalonamento tempo-real
(slides/pdf-239KB)
- 9.1- Escalonamento sem preempção
- 9.2- Aspectos de implementação prática
-
Aula 10: Revisão dos conceitos e técnicas fundamentais
-
Aula 11: Perspectivas de investigação actual sobre sistemas de tempo-real
Topo
Regras de avaliação
- Época normal
- téorica: 50% (40% teste único, 10% participação nas sessões de discussão)
- prática: 50% (projecto: 35% relatório, 5% livro de registo, 10% apresentação)
- recorrência (apenas para o teste teórico, conta a melhor nota)
- Exames dos anos anteriores:
- Época de recurso
- téorica: 50% (teste único, conta a melhor nota em relação à época normal)
- prática: 50% (nota correspondente da época normal ou teste prático)
- NOTA MÍNIMA: 7 valores em qualquer das duas componentes.
- A nota final será calculada usando a nota prática sem arredondamento.
- Exercícios
Topo
Bibliografia
(Todos estes livros existem na biblioteca da UA)
referências preferenciais:
-
Buttazzo, G.C. (2004). Hard Real-Time Computing Systems (2nd ed.).
Springer.
-
Buttazzo, G.C. (1997). Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications.
Kluwer Academic Publishers.
-
Kopetz, H. (1997). Real-Time Systems Design Principles for Distributed Embedded Applications.
Kluwer Academic Publishers.
outras referências:
-
Veríssimo, P. and L. Rodrigues (2001). Distributed Systems for System Architects.
Kluwer Academic Publishers.
-
Liu, J.W.S. (2000). Real-Time Systems. Prentice Hall.
-
Briand, L. and D.M. Roy (1999). Meeting Deadlines in Hard Real-Time Systems: the Rate-Monotonic Approach .
IEEE Computer Society Press, Los Alamitos (CA), USA.
-
Stankovic, J. et al. (1998). Deadline Scheduling for Real-Time Systems: EDF and Related Algorithms.
Kluwer Academic Publishers.
-
Krishna, C.M. and K. Shin (1997). Real-Time Systems. McGraw-Hill.
-
Laplante, P.A. (1997). Real-Time Systems Design and Analysis - An Engineer’s Handbook (2nd ed.).
IEEE Press.
-
Nissanke, N. (1997). Real-Time Systems. Prentice Hall.
-
Welling, A. and A. Burns (1996). Real-Time Systems and Their Programming Languages (2nd ed.).
Int. Computer Science Series, Addison-Wesley.
-
Motus, L. and M.G. Rodd (1994). Timing Analysis of Real-Time Software. IEEE Press.
-
Klein, M. et al. (1993). A Practitioner’s Handbook for Real-Time Analysis: Guide to
Rate-Monotonic Analysis for Real-Time Systems. Kluwer Academic Publishers.
artigos do grupo, relevantes para os mini-projectos
-
Secção Especial sobre STR (ano lectivo 2003/2004)
Luís Almeida, Paulo Pedreiras (eds)
Electrónica e Telecomunicações, Vol. 4, Nº 2, DETUA, Abril 2004.
-
Sistemas Operativos de Tempo-Real: Utilização em aplicações móveis
por: Jorge Caetano, Marco Gaspar e João Coimbra (NEC-Portugal, Aveiro)
(mais info, slides)
-
Using a Real-Time Kernel to Simulate the Micro-Rato Robotics Contest
J. Capucho, L. Almeida, G. Buttazzo
ROBOTICA 2001, APCA Encontro Científico do Fest. Nac. de Robótica Móvel,
Guimarães, Portugal, Abril 2001.
Software (Shark v1.4) - sources e executável
Seleccionado para publicação:
-
Simulating the Micro-Rato Robotics Contest with a Real-Time Kernel
J. Capucho, L. Almeida, G. Buttazzo
Robótica, nº44, Publindústria, Portugal. Jul-Sept 2001.
-
Modelização de Pequenos Robots Autónomos: Um Exemplo
Luís Almeida
Electrónica e Telecomunicações, Vol. 2, Nº 1, DETUA, Setembro 1997.
Topo
Temas / artigos para discussão nas aulas teóricas
- "Anatomia de um sistema operativo tempo-real"
2/10/2006, Rui Leal e João Figueiredo [Apresentação]
Sugestão: http://en.wikipedia.org/wiki/Real-time_operating_system
- "Qual o melhor "sabor" de RT-Linux?"
9/10/2006, Vitor Hugo e Ricardo Matias [Apresentação]
Sugestão: http://linuxdevices.com/articles/AT3479098230.html
- "Impacto do OS jitter no controlo de motores"
16/10/2006, João Ribeiro e Pedro Amaral [Apresentação] [Filme]
Sugestão: http://www.isd.mel.nist.gov/projects/rtlinux/motor-jitter.pdf
- "Estudo de anomalias de escalonamento" [Apresentação]
23/10/2006, Daniel Castanheira e Helder Cabrita
Sugestão: http://www.cs.hmc.edu/~keller/courses/cs156/s98/slides/399.html
- "O que correu mal na missão Mars Pathfinder? Sabotagem dos Marcianos?"
30/10/2006, Catia Ferreira e Daniel Albuquerque [Apresentação]
Sugestão: http://www.cs.cmu.edu/afs/cs/user/raj/www/mars.html
- "Real-time e voltage-scaling: um namoro conturbado!"
6/11/2006, Ricardo Simões e Hugo Matos [Apresentação]
Sugestão: http://www.cs.bham.ac.uk/~dxp/prism/casestudies/voltage.php
- "Segurança em AGV's"
13/11/2006, Pedro Simão e André Costa
[Apresentação] [Videos] [Artigo "A Review of Design and Control of Automated Guided Vehicle Systems"]
Sugestão: http://www.asse.org/prac_spec_tech2.htm
- "Mecos com navegação autónoma"
20/11/2006, Armando Cavaleiro e Tiago Roque [Apresentação]
Sugestão: Alaapos Qadi Goddard, S. Jiangyang Huang Farritor, S.,
"A performance and schedulability analysis of an autonomous mobile robot",
Proceedings of the 17th Euromicro Conference on Real-Time Systems, 2005.
- "Futebol: uma questão de tempo-real?"
27/11/2006, Pedro Mónica e Hugo Santos
[Apresentação]
Sugestão: Pedreiras, P., F. Teixeira, N. Ferreira, L. Almeida, A. Pinho, F. Santos.
"Enhancing the reactivity of the vision subsystem in autonomous mobile robots using real-time techniques".
RoboCup 2005, Springer-Verlag Lecture Notes in Artificial Intelligence 4020, pp. 371-383, 2006; )
Topo
Materiais para as aulas práticas
- Aula 1: Comportamentos temporais desadequados
- Aula2: Utilização do kernel ReTMiK (Real-Time Micro-mouse Kernel)
- Aula 3: Utilização do sistema operativo SHaRK
- Aula 4: Utilização do sistema operativo Linux/RTAI
Topo
Mini-projectos escolhidos
- G1: Pedro Mónica e Hugo Santos
G2: Cátia Ferreira e Daniel Albuquerque
Cliente para CiberMouse em Shark/RTAI
- G3: Ricardo Simões e Hugo Matos
Mecanismo de recolha e exploração de dados para sistema de monitorização
- Definição de uma base de dados adequada
- Implementação de mecanismo de recolha de dados parametrizável
- Sistema de alertas
- Sistema de configuração e exploração remota
- Avaliação de técnicas tempo-real para exploração dos dados
- G4: Tiago Roque e Armando Cavaleiro
Simulação de plataformas de controlo
- E.g. simulação de bola na calha ou bola no plano
- Análise de desempenho em ambiente multi-tasking
- Impacto de diversos algoritmos de controlo e carga
- G5: João Ribeiro e Pedro Amaral
G6: Helder Cabrita e Daniel Castanheira
Simulação de um veículo com condução autónoma em ambiente com informação passiva
- Construção de um simulador para veículo capaz de navegar autonomamente num ambiente
com informação passiva (e.g. pista delimitada por linhas)
- Estudo de algoritmos de controlo adequados
- Estudo do impacto de carga e algorítmos de escalonamento diversos
- G7: Vitor Silva e Ricardo Matias
Melhoramentos ao robot com pêndulo invertido
- Desmultiplicar o potenciometro para ter melhor resolução na zona central
- Controlo directo dos motores (tirar o futaba)
- Uso de offsets nas tarefas para reduzir a latência
- Usar um ciclo mais curto (e.g. 5ms)
- G8: Pedro Simão e André Costa
Micro-Rato com arquitectura tempo-real (Usando o RTKPIC18)
- Controlo de um Micro-Rato usando uma abordagem de períodos flexíveis
- Uso do RTKPIC18
- Acrescentar uma primitiva para alterar as propriedades de 1 tarefa
- Desenvolver vários comportamentos e variar os períodos das tarefas
- Medir continuamente a utilização de CPU
- G9: Rui Leal e João Figueiredo
Simulação de sistema anti-míssil
- Simulação de um sistema anti-míssil
- Sistema tipo "Patriot"
Nota: não negligenciar o livro de registos
Topo
Indicações para a apresentação dos trabalhos práticos e relatório
As apresentações dos trabalhos práticos decorrerão na última aula
prática e serão organizadas em blocos de 10 min por grupo.
Durante esse tempo, cada grupo deverá efectuar uma breve apresentação,
cerca de 5 min., seguida de demonstração. A apresentação não
poderá ter mais de 4 a 5 slides ou transparências sobre: 1-objectivo/problema,
2-aspectos específicos (e.g. dinâmica do processo, técnica de
controlo), 3-abordagem (e.g. organização em tarefas, tipos,
períodos), 4-resultados, 5-ponto da situação.
O relatório deverá ser entregue até ao dia 3 de Janeiro de 2007 e
está limitado a 4 páginas, excluíndo eventuais anexos técnicos. O
respectivo formato deverá obedecer às seguintes indicações: folha
de capa com nome da disciplina, do docente, do ano lectivo, do trabalho e dos
autores, texto em coluna simples, espaçamento simples entre linhas, tipo de
letra TimesNewRoman tamanho 11 ou 12, margens laterais de 2,5cm e indicação
do número de página no rodapé. A respectiva estrutura deverá seguir
os pontos acima referidos para organizar a apresentação. O objectivo do
relatório é o de explicar a abordagem usada na resolução do problema
proposto bem como os resultados obtidos. Será também o sítio indicado para
salientar os detalhes considerados relevantes e que poderiam ter passado
despercebidos na apresentação.
No caso do trabalho não estar concluído na data da apresentação, esta
deverá mostrar o estado actual podendo haver uma nova apresentação a
realizar perto da data da entrega do relatório.
Conforme prometido (ver regras de avaliação), haverá uma verificação
dos livros de registo!
Topo
Links relacionados
Instituições / Grupos de Investigação
- Lab de Sistemas Electrónicos (LSE) -IEETA (UA, P)
- IEEE-CS Technical Committee on RTS
- EUROMICRO - Technical Committee on RTS
- Navigators group Home Page (FCT-UL, P)
- NavIST Home Page (IST, P)
- IPP-HURRAY Group (ISEP, P)
- Real-Time Systems Research Group (Univ. of York, UK)
- RETIS Lab - Laboratorio di Sistemi Real-Time
(Sc. Sup. Sant'Anna, Pisa - I)
- Equipe TRIO - Temps Réel et InterOperabilité
(LORIA, Nancy - F)
- FORTS group - Fault-tolerant Real-time Systems (Univ. of Pittsburgh, USA)
- Mälardalens Real-Time Research Centre (Västeras - S)
- DIRT - Distributed and Real-Time Systems group (UNC-Chapel Hill, USA)
- Real-Time Computing Lab (Univ. of Michigan, USA)
Kernels / Sistemas Operativos
- SHaRK (RETIS lab, SSSA, I)
- HaRTiK (idem, descontinuado)
- ERIKA (idem)
- MARTE-OS (Univ. de Cantabria, E)
- RT-Linux (FSM Labs, USA)
- RTAI (DIAPM, Polyt. Milano, I)
- KURT (Kansas Univ., USA)
- QNX-Neutrino (commercial, QNX, USA)
- VxWorks (commercial, WindRiver, USA)
- SMX (commercial, Micro Digital, USA), alguns artigos interessantes
- Os nossos kerneis (!): ReTMiK / PicMiK (LSE-UA), OReK (DET-UA)
Eventos científicos
Topo