Profesorado
Responsable
- Antonio Camacho Santiago (antonio.camacho.santiago@upc.edu)
Otros
- Enric X. Martin Rull (enric.xavier.martin@upc.edu)
- Joan Aranda López (joan.aranda@upc.edu)
- Manuel Vinagre Ruiz (manuel.vinagre.ruiz@upc.edu)
Horas semanales
Teoría
1.5
Problemas
0.5
Laboratorio
2
Aprendizaje dirigido
0.4
Aprendizaje autónomo
5.6
Competencias
Competencias técnicas comunes
- CT5.6 - Demostrar conocimiento y capacidad de aplicación de los principios fundamentales y de las técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
Razonamiento
- G9.3 - Capacidad crítica, capacidad de evaluación.
Especialidad ingeniería de computadores
- CEC1.1 - Diseñar un sistema basado en microprocesador/microcontrolador.
- CEC2.3 - Desarrollar y analizar software para sistemas basados en microprocesadores y sus interfícies con usuarios y otros dispositivos.
- CEC2.5 - Diseñar e implementar sistemas operativos.
- CEC3.1 - Analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.
- CEC3.2 - Desarrollar procesadores específicos y sistemas empotrados; desarrollar y optimizar el software de estos sistemas.
Objetivos
-
Entender el concepto de plataforma de tiempo real
Competencias relacionadas: G9.3, CEC3.1, -
Determinar cuando hace falta una plataforma de tiempo real.
Competencias relacionadas: G9.3, CEC3.1, CT5.6, -
Planificar una ejecución cíclica
Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CT5.6, -
Sistema de tiempo real con prioridades fijas
Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CEC3.1, CT5.6, -
Sistema de tiempo real con prioridades dinámicas
Competencias relacionadas: CEC2.5, CEC3.2, CT5.6, -
Migrar un sistema operativo de tiempo real a un microprocesador concreto
Competencias relacionadas: G9.3, CEC2.3, CEC2.5, CEC3.2, CEC1.1, CT5.6, -
Entender la división del tiempo en un STR para implementar servidores de banda
Competencias relacionadas: CEC2.5, CT5.6, -
Entender el funcionamiento de los sistemas de tiempo real multi-core
Competencias relacionadas: CEC2.3, CEC3.1, -
Observar las ventajas de usar un STR mediante ejemplos
Competencias relacionadas: CEC2.3,
Contenidos
-
Introducción a los sistemas de tiempo real
Explicación de diferentes ejemplos en los que se hace imprescindible el análisis y uso de las técnicas de tiempo real -
Sistemas de tiempo real cíclicos
Ejemplos de sistemas de tiempo real en los que no se dispone de capacidad de cómputo para poder resolver los posibles problemas de concurrencia.
- redes de tiempo real
- ascensores
- baterias
- cruces de carreteras o vias de tren
- otros ejemplos que amplien la visión del estudiante
- planificaciones óptimas -
Sistemas de tiempo real con prioridades fijas o dinàmicas
Planificación en línea y preempción.
- Planificadores Óptimos
- Rate Monotonic
- Deadline Monotonic
- Earliest Deadline First -
Implementación de un SOTR en un microprocesador
Detalles a tener en cuenta en el momento de migrar o implementar un sistema operativo de tiempo real en un microprocesador -
Sistemas de alto nivel. Servidores de Banda
Implementación de servidores de banda -
Multi-core en los sistemas de tiempo real
Introducción a los sistemas de tiempo real en sistemas de más de un microcontrolador
Actividades
Actividad Acto evaluativo
Planificación
Necesidad e implementación de los algoritmos para el análisis de planificabilidadObjetivos: 3
Contenidos:
Teoría
5h
Problemas
2.5h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
15h
Multi-core
Selección de la arquitectura multicore más adecuada a una aplicación específicaObjetivos: 8
Contenidos:
Teoría
4h
Problemas
2h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Prácticas de sistemas de tiempo real
Parte relevante de la asignatura encaminada a ver los detalles de implementación de los sistemas de tiempo real. Especial interés hacia aplicaciones que requieren tiempos de respuesta estrictas y comunicaciones.Objetivos: 3 4 5 6 7 9 2 1 8
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
22h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Miniproyecto
Breve trabajo de investigación, implementación, profundización, reto... relacionado con los sistemas de tiempo real. Habrá una búsqueda previa de documentación para dirigir, tutorizar y apoyar el trabajo. Se hará un debate crítico abierto para la selección de las soluciones más adecuadas. Se presentarán los resultados obtenidos en público, y se aplicará un método de coevaluación.
Teoría
4h
Problemas
0h
Laboratorio
8h
Aprendizaje dirigido
6h
Aprendizaje autónomo
15h
Metodología docente
La metodología docente será de carácter deductivo.El planteamiento será siempre el mismo:
- proponer un problema
- intentar resolverlo
- añadir las piezas de teoría necesarias para poder solucionarlo de manera adecuada
El laboratorio docente del departamento en la FIB será el lugar en el que se desarrolle tanto la práctica como la teoría.
Método de evaluación
La evaluación de la asignatura se hará mediante controles parciales, problemas, prácticas del laboratorio y miniproyecto, pudiéndose aprobar la asignatura sin tener que hacer un examen final. La evaluación se realiza siguiendo los siguientes porcentajes:- Teoría 40%
- Problemas 10%
- Prácticas 25%
- Miniproyecto 25%
Teoría: se harán dos controles online, CT1 y CT2, cada uno contando un 25% sobre la nota global de la asignatura
Problemes: se harán problemas durante el curso con un peso del 10%
Prácticas: se harán varias entregas de prácticas, cada una contando por igual sobre la notal global de la asignatura
Miniproyecto: se desarrollará brevemente un trabajo libre para profundizar en algún aspecto relacionado con los sistemas de tiempo real
La nota final NF será:
NF=CT1(20%)+CT2(20%)+PRO(10%)+PRA(25%)+MP(25%)
La competencia "G9.3 - Capacidad crítica, capacidad de evaluación" se evaluará a partir de las tareas realizadas en las clases de teoría y problemas, así como en las tareas realizadas en las prácticas de laboratorio. En todo caso no tiene ningún peso en la nota final de la asignatura.
Bibliografía
Básico
-
Hard real-time computing systems: predictable scheduling algorithms and applications
- Buttazzo, G.C,
Springer,
2011.
ISBN: 9781461406754
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003999659706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Real-time systems and programming languages: Ada, Real-Time Java and C/Real-Time POSIX
- Burns, A.; Wellings, A.J,
Addison-Wesley,
2009.
ISBN: 9780321417459
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003601749706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacidades previas
en cuanto a Diseño de Sistemas Basados ​​en microcomputador:Conocer la estructura de los microcomputadores, su lenguaje emsamblador y sus capacidades de gestión de interfaces de entrada / salida.
en cuanto a Sistemas Operativos:
Conocer los aspectos básicos de la gestión de procesos, la gestión de memoria y de la entrada / salida.