Universidad Tecnológica Nacional - Facultad Regional Bahía Blanca

Ingeniería Electrónica

 

Cátedra: Software de Tiempo Real

Profesor:

Mag. Guillermo R. Friedrich < gfried@frbb.utn.edu.ar >

Descripción.

Software de Tiempo Real es una materia que optativa de la orientación "Procesamiento Digital". Se cursa durante el primer cuatrimestre de sexto año. La carga horaria es de cinco horas semanales.

Objetivos.

Dentro del campo de acción del ingeniero en electrónica hay una creciente cantidad de aplicaciones que tienen requerimientos de tiempo real: sistemas de control, sistemas de comunicación, procesamiento de señales, y muchas más. La envergadura de tales sistemas puede ir desde pequeños sistemas embebidos basados en microcontroladores, hasta sistemas basados en varias computadoras de gran porte trabajando en red.

A partir de estos antecedentes, la materia tiene los siguientes objetivos:

– Introducir al alumno en los fundamentos de los sistemas de tiempo real y las bases teóricas sobre las que se apoya esta disciplina.

– Estudiar un sistema operativo de tiempo real, a fin de analizar las características que lo hacen ventajoso para este tipo de aplicaciones, y hacer algunas experiencias prácticas de desarrollo de aplicaciones de tiempo real sobre el mismo.

– Introducir al alumno en algunas técnicas y metodologías utilizadas para el análisis y diseño de sistemas de tiempo real.

– Aplicar e integrar los conocimientos obtenidos en la realización de un pequeño proyecto.

 Programa analítico (PDF)

 Planificación (PDF)

Contenidos.

– Conceptos básicos. Que es un sistema de tiempo real. Definiciones. Clasificación de los sistemas de tiempo real; diversos criterios de clasificación.

Apunte (PDF: 80 KB) (Comprende también la primera parte de la unidad siguiente)

– Conceptos de planificación de procesos. Algoritmos estáticos: Primero en entrar, primero en ser servido (PEPS), Prioridades Monotónicas Crecientes (PMC): Fórmula de Liu y Layland; Función Trabajo; análisis de la factibilidad de la planificación según el método de Lehoczky y otros. Algoritmos dinámicos: Menor Tiempo al Vencimiento (MTV), Menor Latencia Primero.

Apunte (PDF: 130 KB)

Trabajo Práctico Nş 1 (PDF: 65 KB)

– Planificación de tareas de tiempo real con recursos compartidos: problemas que presenta: inversión de prioridades; soluciones: protocolo básico de herencia de prioridad, protocolo de techo de prioridad.

Apunte (PDF: 150 KB)

Trabajo Práctico Nş 2 - Ej. 1 - (PDF: 85 KB)

– Planificación por agrupamiento de tareas en clases de prioridades.

Apunte (PDF: 140 KB)

Trabajo Práctico Nş 2 - Ej. 2 - (PDF: 85 KB)

– Tratamiento de tareas aperiódicas, esporádicas y de no tiempo real.

– Comunicación y sincronización entre procesos; regiones críticas; soluciones con espera ocupada; soluciones con semáforos y pasaje de mensajes; mensajes bloqueantes y no bloqueantes (buzones, proxies).

– Caso de estudio: Sistema Operativo QNX.

Apunte (PDF: 260 KB)

Trabajo Práctico QNX-1 (PDF: 65 KB)

Trabajo Práctico QNX-2 (PDF: 66 KB)

Trabajo Práctico QNX-3 (PDF: 76 KB)

Trabajo Práctico QNX-4 (PDF: 81 KB)

– Análisis del funcionamiento de las redes basadas en pasaje de testigos (Token Ring, Token Bus, FDDI), desde la óptica de los sistemas de tiempo real. Analogías con los algoritmos para planificación de tareas.

– Que es un sistema distribuido; definiciones; conceptos generales; objetivos deseados de transparencia. Sincronización en los sistemas distribuidos; soluciones para la ausencia de un único reloj: algoritmos de Berkeley y de Lamport.

– Planificación de tareas en sistemas distribuidos. Algoritmos estáticos; conceptos; análisis de un método para la asignación de tareas a procesadores. Algoritmos dinámicos; conceptos. Caso de estudio: Spring Kernel.

Transparencias (PDF: 167 KB)

– Caso de estudio: programación de aplicaciones distribuidas, en base al modelo cliente-servidor, utilizando la interface Socket de Unix..

Apunte (PDF: 230 KB)

– Métodos formales y semi-formales. Conceptos de model-checking utilizando herramientas especializadas (Por ej.: Kronos, Uppaal). Conceptos básicos de lógica temporal y TCTL.

– Casos de estudio: DARTS, Redes de Petri Temporizadas, Autómatas Temporizados.

Simulador para Redes de Petri Temporales (.ZIP: 141 KB) (Ejecutables y manual en PDF).

Ejemplos con Redes de Petri y Autómatas Temporizados (PDF: 110 KB)

Model-checking: un caso de estudio usando UPPAAL (PDF: 184 KB)

Trabajos Prácticos y de Laboratorio.

– Comunicación entre procesos (mensajes, semáforos, señales, proxies).

– Interrupciones.

– Planificación de tareas.

– Comunicación entre procesos en distintas máquinas usando la interface Socket.

Bibliografía.

Ultima actualización: 17/07/02