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:
- 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
Novidades
- [12-Nov-2009] Aviso importante:
Amanhã, Sexta-feira, 13 de Novembro, não poderei leccionar a aula de STR, em virtude da
realização das provas de Doutoramneto do Ricardo Marau, de quem sou orientador.
Entretanto convido-vos a assistirem às provas, pois o trabalho do Ricardo encontra-se intimamente relaccionado com os temas abordados em STR.
As provas irão decorrer na Sexta, a partir das 14H30, na Sala de Actos Académicos (Ed. Reitoria)
A aula será substituída na próxima Quarta-feira, entre as 15H00 e as 18H00, Sala 320. - [17-Nov-2009] Avaliação contínua: trabalhos pesquisa / trabalhos práticos
- [19-Nov-2009] Indicações adicionais para o trabalho 3 / RTAI
(Secção aulas práticas) - [22-Dez-2009] Avaliação contínua (actualização): trabalhos pesquisa / trabalhos práticos
- [8-Jan-2010] Sessão de apresentações Segunda-feira, dia 11/Janeiro, 16H00-18H00, Sala 320.
- [8-Jan-2010] Indicações para o exame:
- O exame é com consulta, mas apenas são permitidos materiais de consulta em papel.
Em particular não será permitido o uso de computadores pessoais, telemóveis ou quaisquer outros dispositivos que permitam comunicação. - Não será permitida a partilha de materiais de consulta.
- Os alunos devem fazer-se acompanhar de uma máquina de calcular
- O exame é com consulta, mas apenas são permitidos materiais de consulta em papel.
- [12-Jan-2010] Atendimento Quarta-feira, 13/Jan, 16H00-18H00, Gabinete 321 ou Lab. 319.
- [14-Jan-2010] Nova sessão de atendimento Sexta-feira, 15/Jan, 11H00-12H00, Gabinete 321 ou Lab. 319.
- [14-Jan-2010] Avaliação global
-
[20-Jan-2010] Avaliação global após exame
Consulta dos exames: Quinta-feira, 21/Jan/2010, 17H00-18H00, Gab. 321 - [21-Jan-2010] Avaliação global após exame (update)
- [26-Jan-2010] Enunciado do exame da época normal
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 in Real-Time" (Slides)
Link - "Ecalonamento em Linux"
Link - "O SHaRK OS" (Slides)
Link - "O FreeRTOS OS" (Slides)
Link - "The Arduino project"
Link - "Xenomai: Real-Time Framework for Linux" (Slides)
Link - "A Real Time Scheduler/Dispatcher"
Link - "The Mars Pathfinder incident" (Slides)
Link
Link 2 - "Real-Time Vision frameworks" (Slides)
Link
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
- RTSS Students Design Competition
- Controlo em RTAI de um pêndulo invertido sobre plataforma móvel
- Documentação, testes e extensão do kernel RTKIC18
- Documentação das primitivas e estruturas de dados
- Medidas de desepenho
- Desenvolvimento de novos módulos
- Jogo "parede" em SHaRK
- Simulador
- Jogadores (tarefas independentes)
- Display gráfico
- Simulador de escalonamento genérico
- Interface gráfica
- Estatísticas, timeline com saída gráfica e em texto
- Suporte a diversos algoritmos de escalonamento (RM, DM, EDF, ...)
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 8 de Janeiro de 2010 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!