Sistemas Tempo-Real
Ano letivo 2012/2013
Universidade de Aveiro
Disciplina opcional do 5º ano dos Mestrados Integrados em:
- Engª de Electrónica e Telecomunicações
- Engª de Computadores e Telemática
Índice:
- Novidades
- 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 (2011/2012)
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: 50% (projeto: 25%; relatório: 5%; livro de registo: 10%; 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 11 de Janeiro de 2012
- 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:
- 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.
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)
- NUCLEOS RTOS: overview (http://www.mentor.com/embedded-software/nucleus/)
- MARS pathfinder (http://retis.sssup.it/~marko/2009/mars_explorer.pdf)
- "Combining Static and Dynamic Scheduling for Real-Time Systems"
Luis Alejandro Cortes, Petru Eles, and Zebo Peng
Department of Computer and Information Science
Linkoping University, S-581 83 Linkoping, Sweden -
"The End of the Line for Static Cyclic Scheduling?"
N. Audsley, K. Tindell, A. Burns
Proceedings of the 5th Euromicro Workshop on Real-Time Systems, Oulu, Finland.
IEEE Computer Society Press. pp:36-41. June 1993 - A arquitetura OSEK/VDX (link para site)
-
"Rate-Monotonic Analysis for Real-Time Industrial Computing"
Mark H. Klein, John P. Lehoczky, and Ragunathan Rajkumar Carnegie Mellon University
Computer archive / Volume 27 Issue 1, January 1994 / Page 24-33 - "Energy Efficient Voltage Scheduling for Real-Time Operating Systems"
Trevor Pering, Robert Brodersen
EECS Department, University of California, Berkeley 4th IEEE Real-Time Technology and Applications Symposium RTAS'98, Work in Progress Session
Denver, CO, June 1998
Materiais para as aulas práticas
- Serviços tempo-real no GPOS Linux
- O kernel RTAI
- Guia da aula
- Código fonte
- Slides introdução ao RTAI
- Exemplo do uso de "shared memory" (do RTAI showroom)
- Tarefas esporádicas:
- Activação efectuada por "rt_task_resume()"
- Terminação efectuada por "rt_task_suspend()"
- Reduzir a carga computacional das tarefas em "app_defs.h" (e.g. 100ms cada)
Se tal não for feito o CPU fica em overload e o PC aparenta bloquear (o Linux não tem tempo de CPU)
- Informação sobre a API do RTAI pode ser encontrada em https://www.rtai.org/documentation/magma/html/api/
- Manual de programação (antigo)
- Tutorial FreeRTOS: Utilização do kernel FreeRTOS
Mini-projectos
- Simulador de sistema anti-míssil em OCAML - João Bastos
- Pêndulo invertido em robô movel + FreeRTOS - Higino Vieira
- Controlo de plataforma DESIRE + FreeRTOS - Ruben Brites + Luis Neves
- Controlo de caldeira a pellets + FreeRTOS - Nuno Moura + João Capela
- Controlo de posicionador de antena + FreeRTOS - João Matos + Cristóvão Cruz
- Jogo "Pong" em RTAI + Linux - Denis Ryazanov + Pedro Mesquita
- Jogo "Whack-a-mole" e SHaRK - Francisco Vaz
- Osciloscópio digital + FreeRTOS (cooperacao com PSE) - Jorge Costa + André Nunes
- Jogo de matraquilhos em RTAI + Linux - Tiago Silva + Vitor Soares
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 2013 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!