Accesos directos a las distintas zonas del curso

Ir a los contenidos

Ir a menú navegación principal

Ir a menú pie de página

SISTEMAS EN TIEMPO REAL (I. ELECTRÓNICA)

Curso 2018/2019 Subject code6802306-

SISTEMAS EN TIEMPO REAL (I. ELECTRÓNICA)

SUBJECT NAME
SISTEMAS EN TIEMPO REAL (I. ELECTRÓNICA)
CODE
6802306-
SESSION
2018/2019
DEPARTMENT
SISTEMAS DE COMUNICACIÓN Y CONTROL, INGENIERÍA ELÉCTRICA, ELECTRÓNICA, CONTROL, TELEMÁTICA Y QUÍMICA APLICADA A LA INGENIERÍA
DEGREE IN WHICH IT IS OFFERED
GRADO EN ING. EN ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
TYPE
OBLIGATORIAS
COURSE
TERCER CURSO
ECTS
5
HOURS
125.0
PERIOD
SEMESTRE  2
LANGUAGES AVAILALBLE
CASTELLANO

PRESENTACIÓN Y CONTEXTUALIZACIÓN

La programación de sistemas en tiempo real es una disciplina compleja ya que el desarrollo de código para este tipo de sistemas requiere una especificación de los “límites” de los sistemas en cuanto a temporización de las tareas y las facilidades de comunicación y sincronización entre procesos del sistema. Adicionalmente es muy relevante  la consideración sobre la restricción de ejecución de las tareas y sus prioridades, es decir, la capacidad de decidir que tareas deben ejecutarse, ya que la falta de tiempo para estas puede provocar estados de emergencia en el propio sistema (imagine que falla el software de navegación de un avión). Para resolver estos problemas se introducen conceptos como fiabilidad y tolerancia a fallos, que permiten diseñas sistemas en tiempo real fiables y no propensos a fallos en el propio software. La asignatura pretende mostrar dichos mecanismos y las diferentes estructuras software que permiten la implementación de estos objetivos básicos, en cuanto a: temporización estricta de la ejecución de las tareas de proceso, facilidad de comunicación sin bloqueo de procesos y estabilidad del software.

La programación de sistemas en tiempo real es una disciplina específica de cierto tipo de sistemas que tienen una serie de restricciones temporales en cuanto a la ejecución planificada de procesos. Estas restricciones de desarrollan en base a la “importancia” del proceso que se debe ejecutar en unos instantes predeterminados y predecibles, de forma que se sepa de manera fiable que dichos procesos realizan su función dentro de los límites temporales establecidos. Para realizar esta función, lo primero es conocer que es lo que se entiende pro sistema en tiempo real y las diferentes categorías en las que se pueden dividir, de forma que se disponga de una separación clara entre procesos prioritarios y no prioritarios, en cuanto a ejecución temporal se refieren.

Como consecuencia de la prioridad de las tareas, es muy importante definir el concepto de fiabilidad, que nos permita asegurar que las tareas se ejecutan en tiempo y forma, haciendo este sistema en tiempo real seguro y solvente a fallos. La tolerancia a fallos permite describir la forma de manejar posibles fallos y las posibles acciones que se deben realizar bajo distintos tipos de fallos, con el objetivo de que el sistema en tiempo real puede seguir realizando su función.

Sin embargo, no solo se debe asegurar que las tareas se ejecuten de un manera específica y predecible, sino que tampoco existan interferencias entre los procesos de comunicación de información entre dichas tareas. Esto es, las tareas deben intercambiar información entre ellas y por tanto se crea un escenario de concurrencia que debe ser resuelto con los mecanismos conocidos (variables compartidas, semáforos, mensajes, monitores, etc.) y teniendo en cuenta las propias restricciones de la planificación de sistemas de tiempo real.

Una vez que se tienen en cuenta los aspectos anteriores se pueden usar diversos tipos de estrategias de planificación, de acuerdo a los requerimientos del sistema en tiempo real que se desea desarrollar. Todas estos tipos de planificación requieren de la definición de un mecanismo de temporización, denominado reloj, que se usa como base para el desarrollo de los distintos tipos de planificación y que el sistema operativo que ejecuta el software debe proporcionar.

Teniendo en cuenta lo anterior, se pretende que esta asignatura sirva como curso introductorio a la programación de sistemas en tiempo real y tiene como objetivo principal que el alumno pueda adquirir los conocimientos y habilidades necesarias para poder desarrollar ejemplos sencillos de planificaciones temporales basadas en restricciones de tiempo real y que sea capaz de disponer de información suficiente para analizar las diferentes alternativas de programación de sistemas de tiempo real.