Sistemas de Tiempo Real

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Ingeniería de Computadores)
Requisitos
  • Prerrequisito: CI
  • Prerrequisito: SO
Departamento
ESAII
Un sistema se dice de tiempo real cuando interactúa con el mundo real (proceso físico) dentro de unos requerimientos temporales. En un Sistema de Tiempo Real (STR) la respuesta no sólo debe ser correcta sino que debe llegar en el tiempo adecuado o se considera que el sistema ha fallado. Es el caso de la activación del airbag o del ABS en un coche para poner dos ejemplos críticos, pero también el de un robot que tiene que coger una pelota al vuelo. Al finalizar la asignatura el alumno entenderá la diferencia entre un sistema rápido y de tiempo real, así como la distinción entre un sistema de tiempo real duro, blando o crítico. Sabrá analizar, diseñar e implementar sistemas basados en microcomputadores con requerimientos de criticidad temporal, fiabilidad y coste.

Profesorado

Responsable

  • Antonio Camacho Santiago ( )

Otros

  • Enric X. Martin Rull ( )
  • Joan Aranda López ( )
  • Manuel Vinagre Ruiz ( )

Horas semanales

Teoría
1.5
Problemas
0.5
Laboratorio
2
Aprendizaje dirigido
0.4
Aprendizaje autónomo
5.6

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
    • 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.

Competencias Transversales

Razonamiento

  • G9 [Avaluable] - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.
    • G9.3 - Capacidad crítica, capacidad de evaluación.

Competencias Técnicas de cada especialidad

Especialidad ingeniería de computadores

  • CEC1 - Diseñar y construir sistemas digitales, incluyendo computadores, sistemas basados en microprocesadores y sistemas de comunicaciones.
    • CEC1.1 - Diseñar un sistema basado en microprocesador/microcontrolador.
  • CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
    • 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 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
    • 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

  1. Entender el concepto de plataforma de tiempo real
    Competencias relacionadas: G9.3, CEC3.1,
  2. Determinar cuando hace falta una plataforma de tiempo real.
    Competencias relacionadas: G9.3, CEC3.1, CT5.6,
  3. Planificar una ejecución cíclica
    Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CT5.6,
  4. Sistema de tiempo real con prioridades fijas
    Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CEC3.1, CT5.6,
  5. Sistema de tiempo real con prioridades dinámicas
    Competencias relacionadas: CEC2.5, CEC3.2, CT5.6,
  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,
  7. Entender la división del tiempo en un STR para implementar servidores de banda
    Competencias relacionadas: CEC2.5, CT5.6,
  8. Entender el funcionamiento de los sistemas de tiempo real multi-core
    Competencias relacionadas: CEC2.3, CEC3.1,
  9. Observar las ventajas de usar un STR mediante ejemplos
    Competencias relacionadas: CEC2.3,

Contenidos

  1. 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
  2. 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
  3. 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
  4. 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
  5. Sistemas de alto nivel. Servidores de Banda
    Implementación de servidores de banda
  6. 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


Necesidad de los sistemas de tiempo real

Análisis y entendimiento de las herramientas necesarias para dar respuesta temporal a las tareas de un sistema complejo
Objetivos: 2 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Necesidad de cálculo del peor tiempo de ejecución de una tarea

Cómo encontrar el peor caso de ejecución del código de una tarea
Objetivos: 2 1
Contenidos:
Teoría
2h
Problemas
2h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Planificación

Necesidad e implementación de los algoritmos para el análisis de planificabilidad
Objetivos: 3
Contenidos:
Teoría
5h
Problemas
2.5h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
15h

Servidors de banda

Funcionamiento y características de los servidores de banda
Objetivos: 4 5 7
Contenidos:
Teoría
3.5h
Problemas
1h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Multi-core

Selección de la arquitectura multicore más adecuada a una aplicación específica
Objetivos: 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

Prueba de conocimientos 1


Objetivos: 3 4 5 2 1
Semana: 7
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

Prueba de conocimientos 2


Objetivos: 4 5 6 7 9 8
Semana: 14
Tipo: examen de teoría
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h

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ásica:

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.