Sistemas Tempo-Real
Ano letivo 2013/2014
Universidade de Aveiro
Disciplina opcional do 5º ano dos cursos:
- Mestrado Integrado em Engª de Electrónica e Telecomunicações
- Mestrado Integrado em Engª de Computadores e Telemática
- Mestrado em Engenharia de Automação Industrial
Índice:
- Docentes
- Enquadramento, objectivos e organização
- Tópicos, planificação e slides das aulas teóricas
- Regras de avaliação
- Avaliação das aulas práticas
- Bibliografia (livros e artigos)
- Temas / artigos para discussão nas aulas teóricas
- Materiais para as aulas práticas
- Mini-projectos
- Indicações para a apresentação do trabalho e relatório
- STR nos anos lectivos anteriores (2012/2013)
Docente
Horário
- Aulas teórico-práticas - Sala 320, 2a.s 13h-16h
- Atendimento: Quartas-feiras, 17H00-18H00, Gab. 321 (DETI)
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, FreeRTOS, SHaRK, VxWorks, ReTMiK) bem como de um conjunto de plataformas para sistemas embutidos (baseadas em microcontroladores PIC18, PIC32 e ARM) e incluirá uma primeira série de trabalhos práticos essencialmente ilustrativos, sendo seguida pelo desenvolvimento de um projecto.
Tópicos, planificação e slides das aulas teóricas
- Aula 0: Apresentação. Funcionamento da disciplina. Outras informações. (slides/pdf)
-
Aula 1: Restrições temporais: origem e caracterização
(slides/pdf)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 8.1- Servidores de prioridades fixas
- 8.2- Servidores de prioridades dinâmicas
-
Aula 9: Outras aspectos do escalonamento tempo-real
(slides/pdf)
- 9.1- Escalonamento sem preempção
- 9.2- Aspectos de implementação prática
-
Aula 10: Optimizações
(slides/pdf)
(Código exemplo (sample.c))
- 10.1 - Técnicas de optimização
- 10.1 - Profiling
- 10.1 - Ferramentas
- Aula 11: Perspectivas de investigação actual sobre sistemas de tempo-real
Regras de avaliação
- Regime de avaliação dicreta
- Época normal
- Exame téorico: 40%
- Trabalho de investigação: 10% (5% docente, 5% pares)
- Mini-projeto: 40% (projeto+relatório: 25%; livro de registo: 5%; apresentação: 10%)
- Trabalho adicional aos tutoriais: 10%
- Exames dos anos anteriores:
- téorica: 40% (exame)
- prática: 60% (nota correspondente a trabalho de investigação, miniprojeto e trabalho adicional aos tutoriais da época normal ou exame prático)
Avaliação das aulas práticas
- Relatório
- Deverá ser entregue até ao dia 8 de Janeiro de 2014
- 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)
Bibliografia
(Todos estes livros existem na biblioteca da UA)
referências preferenciais:
-
Giorgio Buttazzo (2011).
HARD REAL-TIME COMPUTING SYSTEMS: Predictable Scheduling Algorithms and Applications
Third Edition, Springer, 2011. -
Kopetz, H. (1997).
Real-Time Systems Design Principles for Distributed Embedded Applications
Kluwer Academic Publishers. -
Richard Barry (2011).
Using the FreeRTOS Real-Time Kernel – A practical guide
Real-Time Engineers, Ltd., 2011. -
Doug Abbott (2006).
Linux for Embedded and Real-time Applications
Second Edition. Newnes, 2006;
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.
Temas / artigos para discussão nas aulas teóricas
- Embedded Linux: With friends like these, who needs enemies? (http://www.ghs.com/download/articles/GHS_with_friends_like_these_may1_08.pdf)
- Overview of RTOS (http://jla.sagepub.com/content/12/1/40.full)
- Xu e Parnas, "Priority Scheduling versus Pre-run-time Scheduling", Journal of Real-Time Systems,18:7-23, 2000 (http://www.cse.yorku.ca/~jxu/RTS00.pdf)
- Mars Pathfinder: the priority inversion problem (http://home.eng.iastate.edu/~zzhang/teaching-materials/cpre211-s07/lectures/mars_robot.pdf; http://retis.sssup.it/~marko/2009/mars_explorer.pdf)
- Uso de Xenomai em aplicações médicas (http://www.denx.de/en/pub/News/Xum2009AbstractsAndPresentations/Linux-Xenomai_for_Magnetic_Resonance_Scanners.pdf)
- Reinhold Heckmann Christian Ferdinand, "Worst-Case Execution Time Prediction by Static Program Analysis", AbsInt Angewandte Informatik GmbH (http://www.absint.com/aiT_WCET.pdf)
- O RTOS Erika (http://www.evidence.eu.com/products/erika-enterprise.html)
- M. Barr. Embedded, Apr 2010. "Five Top Causes of Nasty Embedded Software Bugs" (http://www.embedded.com/design/prototyping-and-development/4008917/Five-top-causes-of-nasty-embedded-software-bugs)
Materiais para as aulas práticas
- Serviços tempo-real no GPOS Linux
- Tutorial FreeRTOS: Utilização do kernel FreeRTOS
- Tutorial Xenomai: Utilização do kernel Xenomai
- Guia da aula
- Código fonte (xenomai 2.5)
- Código fonte (xenomai 2.6)
- Breve introdução ao Xenomai (slides)
- Guia de instalação do Xenomai 2.6 em Ubunto 12.04
- Imagem do Xenomai (VirtualBox) User:lab Password:xenomai
- Guia de instalação do Xenomai 2.6 em Linux Mint 15, por Gonçalo Pardal
- Makefile alterada para eliminar erro relaccionado com incompatibilidade entre versões de user e kernel space (thanks to Gonçalo Pardal)
Mini-projectos
Artigo colectivo
Lista de mini-projectos
- 1- Pêndulo invertido em robô movel (DETPIC32 + FreeRTOS)
- 2- Jogo "Parede" em Xenomai + Linux
- 3 - Jogo "Whack-a-mole" em Xenomai + Linux
- 4 - Bola no plano * 2 (DETPIC32 + FreeRTOS)
- 5 - Bola na calha (DETPIC32 + FreeRTOS)
- 6 - Plotter 2D (DETPIC32 + FreeRTOS)
- 7 - Interface tempo-real para sensores inerciais + demonstrador (DETPIC32 + FreeRTOS + Xenomai + Linux)
Materiais de apoio para os mini-projectos
- Projectos-exemplo de FreeRTOS em DETPIC32
- Informação sobre "touch-pannels" resitivos de 5 fios
- Informação sobre servos
- Informação sobre interface ao Wii Nunchuck
Nota: não negligenciar o livro de registos
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 deverá 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 8 de Janeiro de 2014 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!