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.

Profesores

Responsable

  • Antonio Camacho Santiago ( )

Otros

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

Horas semanales

Teoría
1
Problemas
1
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. Identificar claramente la necesidad de una planificación on-line
    Competencias relacionadas: G9.3, CEC3.1,
  4. Identificar la necesidad de utilizar un STR
    Competencias relacionadas: G9.3, CEC3.2, CEC3.1,
  5. Planificar una ejecución cíclica
    Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CT5.6,
  6. Entender la función de la pila en un microprocesador
    Competencias relacionadas: CEC2.3, CEC3.2, CEC1.1, CT5.6,
  7. Desalojar un proceso de la pila de un microprocesador
    Competencias relacionadas: CEC2.5, CEC3.2, CT5.6,
  8. 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,
  9. Entender la división del tiempo en un STR para implementar servidores de banda
    Competencias relacionadas: CEC2.5, CT5.6,
  10. 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 pasivos o sin capacidad de cómputo
    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 activos o con capacidad de cómputo
    Planificación en línea y preenció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


¿Por qué no puedo resolver este problema?

Esta actividad pondrá de manifiesto las ventajas y los inconvenientes de una programación de tareas concurrentes sin una planificación previa. En concreto se seleccionará un problema y se resolverá (hasta donde sea posible), a lo largo de la solución veremos como aparecen de manera natural las técnicas de STR.
Objetivos: 4 1
Contenidos:
Teoría
1.5h
Problemas
1h
Laboratorio
3h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Un ejecutivo cíclico y las dificultades de planificar a mano.

La manera más sencilla de programar un conjunto de tareas és usar una planificación cíclica, pero, ¿es esta la mejor solución desde un punto de vista de diseño?. En esta actividad pondremos de manifiesto las dificultades con las que nos podemos encontrar al generar un ejecutivo cíclico. En esta misma actividad pondremos de manifiesto algunas necesidades de uso de un SOTR.
Objetivos: 4 5 2 3
Contenidos:
Teoría
2.5h
Problemas
1.5h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Introducción a arduino, la plataforma de trabajo del resto del curso

Actividad orientada a introducir al alumno los secretos de arduino. Esta será la plataforma que utilizaremos durante el resto del curso.
Objetivos: 6
Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
2h
Aprendizaje autónomo
5h

Desalojar una tarea de la pila de ejecución y volver a alojarla. Introducción a los SOTR

En esta actividad suspenderemos la ejecución de un proceso y lo eliminaremos completamente de la pila de ejecución. A continuación lo volveremos a introducir en la pila y reiniciaremos la ejecución en el punto en el que la habiamos dejado. De esta manera abrimos la puerta a comprender el funcionamiento de los SOTR con desalojo de tareas
Objetivos: 6 7
Contenidos:
Teoría
2h
Problemas
1h
Laboratorio
5h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

FreeRTOS, un SOTR para múltiples arquitecturas. Migración de un SOTR en el arduino Mega.

En esta actividad abriremos, analizaremos, y comprenderemos un SOTR.
Objetivos: 8
Contenidos:
Teoría
3h
Problemas
2h
Laboratorio
8h
Aprendizaje dirigido
0h
Aprendizaje autónomo
39h

Ejemplos de aplicación, control de un motor de corriente continua

En esta actividad tomaremos un ejemplo clásico de control, el control de un motor de corriente continua y veremos como el hecho de utilizar un SOTR simplifica de manera significativa la implementación y el mantenimiento.
Objetivos: 10
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0.5h
Aprendizaje autónomo
2h

Servidores de banda

En esta actividad veremos las maneras en las que es posible implementar un servidor de banda en un dispositivo empotrado como el arduino
Objetivos: 9
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Prueba de conocimientos

Prueba de conocimientos
Objetivos: 4 5 6 7 8 9 10
Semana: 2
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Prueba de conocimientos

Prueba de conocimientos

Semana: 6
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Prueba de conocimientos

Prueba de conocimientos

Semana: 8
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Prueba de conocimientos

Prueba de conocimientos

Semana: 14
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Miniproyecto

Breve trabajo de investigación, implementación, profundización, ... relacionado con los STR

Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
5h
Aprendizaje autónomo
6h

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, 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 50%
- 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)
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 (25%) + CT2 (25%) + PR (25%) + MP (50%)

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.

Adenda

Contenidos

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Metodología docente

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Método de evaluación

NO HI HA CANVIS RESPECTE LA INFORMACIÓ PUBLICADA A LA GUIA DOCENT

Plan de contingencia

Modificacions del treball de laboratori i adequació d'aquest als recursos existents