Pasar al contenido principal

Sistemas de Tiempo Real

Créditos
6
Tipos
Complementaria de especialidad (Ingeniería de Computadores)
Requisitos
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 (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 - 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.
  • 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.
  • 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
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Prueba de conocimientos 2


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

    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

    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.