Sistemas Tempo-Real
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:
- 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 (2009/2010)
Docente
Horário
- Aulas teórico-práticas - Sala 320, 6a.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, KURT, RT-Mach, SHaRK, SMX, ReTMiK) bem como de um conjunto de plataformas para sistemas embutidos (baseadas no uC 80C188, 68HC11, 80C51, PIC16F876 e PIC18F258) e incluirá uma primeira série de trabalhos práticos essencialmente ilustrativos, sendo seguida pelo desenvolvimento de um pequeno 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
- Época normal
- téorica: 50% (40% teste único, 10% participação nas sessões de discussão (5% docente, 5% pares))
- prática: 50% (projecto: 25% relatório, 5% livro de registo, 10% apresentação, 10% trabalho adicional aos tutoriais)
- Exames dos anos anteriores:
- téorica: 50% (exame)
- prática: 50% (nota correspondente 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 2010
- 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.
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, No. 2, DETUA, Abril 2004.- Ensaio sobre os Sistemas de Tempo-Real (em português), material essencialmente retirado do livro de Buttazzo (1997); Arnaldo Oliveira, Luis Almeida (integra a Secção Especial)
- OReK: Um Executivo de Tempo-Real Orientado por Objectos (em português), Arnaldo Oliveira, Luis Almeida, Valery Sklyarov (integra a Secção Especial)
-
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, no.44, Publindústria, Portugal. Jul-Sept 2001.
-
Simulating the Micro-Rato Robotics Contest with a Real-Time Kernel
-
Modelização de Pequenos Robots Autónomos: Um Exemplo
Luís Almeida
Electrónica e Telecomunicações, Vol. 2, No. 1, DETUA, Setembro 1997.
Temas / artigos para discussão nas aulas teóricas
- "POSIX 4 Real-Time Extensions" (Slides)
- "GNU Toolchain for Embedded Deve,opment: Build or Buy?" (Slides)
- "Comparative Study on Memory Allocators" (Slides)
- "Tutorial on Real-Time Control Systems" (Slides)
- "OCAML Tutorial" (Slides)
Materiais para as aulas práticas
- Serviços tempo-real no GPOS Linux
- Tutorial RTKPIC: Utilização do kernel RTKPIC18
- 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)
Obrigado Rómulo!
- Informação sobre a API do RTAI pode ser encontrada em https://www.rtai.org/documentation/magma/html/api/
Mini-projectos
- Simulador de misseis em RTAI
- Plataforma "Bola no Plano" baseada em "touch pannel"
- Escalonamento tempo-real para implementa&ccdil;ão wireless do protocolo FTT
- Implementação do jogo "Pong" no RTOS SHaRK
- Controlo em tempo real do set-up "Bola na calha"
- Implementação do jogo "Worm" em OCAML
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 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 10 de Janeiro de 2012 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!