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
-
0- (05/09/12) Apresentação. Funcionamento da disciplina. Outras informações.
-
1- (05/09/19) Restrições temporais: origem e caracterização (slides/pdf-149KB)
-
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
-
2- (05/09/26) Modelos computacionais (slides/pdf-74KB)
-
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)
-
3- (05/10/3) Executivos de tempo-real (slides/pdf-59KB)
-
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
-
4- (05/10/10) Conceitos básicos de escalonamento (slides/pdf-59KB)
-
4.1- Escalonamento de tarefas, taxonomia básica
-
4.2- Alguns métodos básicos de escalonamento
-
4.3- Escalonamento estático cíclico
-
5- (05/10/17) Escalonamento de tarefas periódicas (slides/pdf-60KB)
-
5.1- Escalonamento baseado em prioridades fixas (RM, DM, outros)
-
5.2- Análises de escalonabilidade baseadas em utilização e tempo de resposta
-
6- (05/10/24) Escalonamento de tarefas periódicas, cont. (slides/pdf-65KB)
-
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
-
7- (05/10/31+05/11/07) Acesso a recursos partilhados (slides/pdf-64KB)
-
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)
-
8- (05/11/14+05/11/21) Processamento de tarefas aperiódicas (slides/pdf-74KB)
-
9- (05/11/28) Outras aspectos do escalonamento tempo-real (slides/pdf-47KB)
-
10- (05/12/05) Revisão dos conceitos e técnicas fundamentais
-
11- (??/??/??) Perspectivas de investigação actual sobre sistemas de tempo-real
Exercícios sobre a matéria das aulas teóricas
|
Topo
|
Avaliação
- Época normal
- É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.
|
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
|
Topo
|
Materiais para as aulas práticas
-
1- (05/09/19) Comportamentos temporais desadequados
-
2- (05/09/26) Utilização do kernel ReTMiK (Real-Time Micro-mouse Kernel)
-
3- (05/10/3) Utilização do sistema operativo SHaRK
-
4- (05/10/10) Instalação e utilização do sistema operativo Linux/RTAI
-
5-12 (05/10/17-05/12/19) mini-projecto
-
12- (05/12/19) apresentação dos mini-projectos
|
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 10 de Janeiro de 2005 e
está limitado a 10 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
|
De volta a Aulas...
|