• No se han encontrado resultados

Sistemas de Tiempo-Real

N/A
N/A
Protected

Academic year: 2023

Share "Sistemas de Tiempo-Real "

Copied!
4
0
0

Texto completo

(1)

Sistemas de Tiempo-Real

Cuadro Resumen de materia para Despacho

Materia Planta Docente Hs Cré-

ditos Área Cuatrimestre Correlativas Plan 95

Vige ncia Sistemas de

Tiempo-Real

Nelson ACOSTA

Claudio ACITI 60 4

Arquite ctura y control

segundo de 2010 2

años

Información Resumida

Materia: Sistemas de Tiempo-Real

Planta Docente: Nelson ACOSTA Claudio ACITI

Horas: 3T+3P (3h de teoría y 3h de práctica)

Créditos: 4 (cuatro)

Área:

Correlativas Plan 95: ---

Régimen de Aprobación: Con promoción y con trabajo.

Régimen de Cursada: Intensiva.

(2)

Curso Optativo:

Sistemas de Tiempo Real

Resumen de la propuesta:

En este curso se presenta una introducción práctica a los sistemas de Tiempo- Real utilizando Linux, Real-Time Linux (RTL) y RTAI. Se describen brevemente los fundamentos y las diferencias de los núcleos de los sistemas operativos orientándose hacia el diseño y programación de drivers. Las prácticas se realizarán utilizando material disponible en el INTIA.

1) Organización del curso

Docentes:

• Dr. Nelson ACOSTA

• Mg. Claudio ACITI

Correlativas:

• Introducción a la Arquitectura de Sistemas

• Electrónica Digital

Área:

• Hardware y Control

Duración:

• 3 Horas (Teórico - Práctico).

• 3 Horas de prácticas (especiales).

Total de Horas:

• 60 horas.

Vigencia:

• 2010 - 2012.

Forma de evaluación:

• Cursada: Trabajos prácticos.

• Examen final: Trabajos especiales.

Fecha de dictado:

• Del 16 de Septiembre al 27 de agosto de 2010.

Objetivos:

• Aprender la arquitectura Linux y RTL.

• Entender como las aplicaciones y servicios acceden a los dispositivos externos (I/O programada, interrupciones y DMA).

• Aprender las técnicas de diseño de drivers.

• Introducir al alumno en los problemas asociados con la programación de aplicaciones de tiempo real.

(3)

2) Programa

1. Introducción a los sistemas de tiempo real. Definición de un sistema de tiempo real. Ejemplos de sistemas de tiempo real. Características de los sistemas de tiempo real. Teoría de control.

2. Administración de Tiempo. Capacidades de tiempo real. La noción de tiempo. Acceso a un reloj.

Retraso de un proceso. Programación de tiempos límite de espera. Especificación de requisitos de temporización. Ámbitos temporales. Facilidades de tiempo real. Medida del tiempo. Retardos. Tareas periódicas y esporádicas. Programación de bajo nivel. Dispositivos de entrada y salida. Manejadores de interrupciones. Análisis temporal. Diagramas de estado. Manejo de dispositivos. Sensores.

Metodología de modelado: simulación.

3. Programación concurrente. La noción de proceso. Ejecución concurrente. Espera ocupada.

Suspender y reanudar. Regiones críticas condicionales. Sincronización de procesos. Estructura de mensajes. Planificación de tareas. Planificación dinámica. Modelo de proceso simple. El enfoque del ejecutivo cíclico. Construcción de ejecutivos cíclicos. Planificación basada en procesos. Tiempo de ejecución en el peor caso. Procesos esporádicos y aperiódicos. Prioridades. Asignación de prioridades. Programación de sistemas basados en prioridad.

4. Código del kernel. Driver como un Módulo. Ubicación y tipos de módulos. (Des)conexión de un módulo. Interfaz por llamadas al sistema y '/proc'. Símbolos del kernel vía '/proc'. Interfaz entre:

kernel, hardware y drivers de dispositivos. Manejo de interrupciones de los drivers. Requerimientos de un driver. Versiones de kernel y módulos. Resguardando recursos en 'init_module'. Memoria, prueba y consideraciones especiales. Acceso al dispositivo. Testing usando 'printk()'. Control del display de 'printk()'. Transferencia de mensajes del kernel. Control de los mensajes de creación del kernel. Entradas en '/proc' e 'ioctl()'.

5. Drivers de caracteres y bloques. Drivers típicos de caracteres. Registración. Archivos especiales y números de dispositivos. Métodos de caracteres. Transferencia de datos (procesos y driver). I/O, Bloqueo VS Sin-Bloqueo. Sleep VS Wakeup. poll(). llseek(). Características de los drivers de bloques. Drivers de bloques VS caracteres. Variables y funciones. Estructura blk_dev_struct y request_fn(). Problema de montaje. 'ioctl()' y drivers de bloques. Particiones. Dispositivos particionables.

6. Manejo de recursos. Manejo del tiempo. Timers. Colas del kernel, de espera y de tareas.

'task_queue', funciones. Acceso a memoria. Uso de puertos de I/O. Acceso a memoria de dispositivos ISA y PCI. Manejo de interrupciones. Registración. IRQs, autodetectado. (Des)Habilitación de interrupciones. Partiendo el manejo de interrupciones.

7. REAL-TIME Linux. Breve historia. Núcleos de sistemas de tiempo real (Polling, código dirigido por fase, código dirigido por estados, corrutinas, sistemas dirigidos por interrupciones, sistemas foreground/background). Desempeño del sistema de entrada y salida. Instalación. Características generales. Núcleo de tiempo real. Modificaciones propuestas por RTL. Técnicas para el diseño de aplicaciones con restricciones temporales. Funciones de librería. Polling e interrupciones. Técnicas para el diseño de aplicaciones con restricciones temporales.

8. Diseño de Sistemas de Control Asistido por Computadora: Surgimiento y desarrollo. Estado del Arte. Consolidación. Herramientas Libres y Privativas. Software de Cálculo Numérico: Scilab, historia e introducción. Entorno. Comandos y Operadores. Gráficos 2D y 3D. Programación. Las herramientas.

9. Software de Sistemas Dinámicos: Scicos, historia e introducción. Entorno. Tipos de bloques.

Herencia y Dependencia Temporal. Construcción de nuevos bloques.

10. Drivers de dispositivos Comedi. Políticas y mecanismos. DAQ. Señales y funciones. Programas Comedi. Funciones de adquisición y configuración. Drivers Comedi

11. Introducción a RTAI. Módulos y tareas. Sincronización. Región critica, semáforos, fifos, mensajes, mailbox. RTAI=Lab. Entorno. Componentes. Superbloques. Osciloscopio XRTAILAB.

(4)

Bibliografía:

• “A prototyping environment for fuzzy controllers”, T. Hollstein, A. Kirschbaum y M. Glesner., pp:482-490, Lecture Notes in Computer Science 1304, Ed. Springer, FPL, London, Sep 1997.

• “Advanced Bash-Scripting Guide”, Mendel Cooper.

• “Device drivers”, Michael K. Johnson. 1996.

• “Handel-C: language reference manual. V.2.0”, Mattew Bowen. Embedded Solutions Limited, 1998.

• “Linux Consultants Guide”, Joshua Drake.

• “Linux device Drivers Demystified”, James Andrews. Net LinuxPlanet. 2001.

• “Linux Device Drivers”, Alessandro Rubini. Ed. O’Reilly. Feb. 1998.

• “Linux From Scratch”, Gerard Beekmans, [email protected].

• “Linux Installation and Getting Started Guide”, Matt Welsh and others.

• “Linux Kernel 2.4 Internals”, Tigran Aivazian, [email protected].

• “Linux kernel module programming guide”, Ori Pomerantz. 2001.

• “Linux System Administration Made Easy”, Steve Frampton.

• “Network Design Consideration for Distributed Control Systems”, Lian F., Moyne J. and Tilbury D.. IEEE Transactions on Control Systems Technology, Vol. 10, No. 2, pp. 297-307, 2002..

• “Pthreads Programming A POSIX Standard for Better Multiprocessing”, Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell, Addison-Wesley, 1996.

• “Real-Time Systems”, Liu, Jane W. S., Prentice Hall, 2000..

• “Securing and Optimizing Linux Red Hat Edition - A Hands on Guide”, Gerhard Mourani, [email protected].

• “Sistemas de tiempo real y lenguajes de programación”, BURNS, A. Addison Wesley 2003..

• “The linux 2.4 parallel port subsystem”, Tim Waugh. 2000.

• “The Linux Kernel Hackers' Guide”, Michael K. Johnson.

• “The Linux Kernel Module Programming Guide”, Ori Pomerantz.

• “The Linux Kernel”, David A. Rusling. [email protected]. 1999.

• “The Linux Network Administrator's Guide, Second Edition”, Olaf Kirch and Terry Dawson.

ISBN: 1-56592-400-2.

• “The Linux Programmer's Guide”, B. Scott Burkett, Sven Goldt, John D. Harper, Sven van der Meer and Matt Welsh.

• “The Linux System Administrators' Guide”, Lars Wirzenius, Joanna Oja, and Stephen Stafford.

• “The Linux Users' Guide”, Larry Greenfield.

• “Write a linux hardware device driver”, Andrew O’Shaughnessy. UnixWorld. 2001.

• “Writing linux device drivers”, Michael K. Johnson. Spring of DECUS’95, Washington DC, 1995.

• Comedi Sitio Oficial. www.comedi.org.

• Computer Aided Control System Design. Rimvall, C.M. and Jobling, C.P. IEEE Control Systems Magazine, volumen=13, pag=14, 1993, IEEE.

• Computer aided control systems design. Cellier, F.E. and Rimvall, M. Proceedings of the First European Simulation Congress, pag=2, 1983, Springer-Verlag.

• Computer-aided control-systems design in undergraduate education at ETH Zurich. Rimvall, M.

and Mansour, M. and Schaufelberger, W., Transactions of the Institute of Measurement and Control,volumen=7, nro=2, pag=90--6, 1985.

• RTAI Sitio Oficial. www.rtai.org.

• RTAI-Lab Sitio Oficial. www.rtai.org/RTAILAB

• Scicos Sitio Oficial. www-rocq.inria.fr/scicos.

• Scilab Sitio Oficial. www.scilab.org.

• System Modeling and Computer Simulation. Edited by Nahim Kheir. 2nd Ed. Electrical Engineering and Electronics; 94. ISBN:0-8247-9421-4..

Referencias

Documento similar

RTAI considera a Linux como un sistema de apoyo para correr tareas cuando no hay actividades de tiempo real.. Módulos