Download Tema 3: Programación de Sistemas de Tiempo Real
Transcript
Tema 3: Programación de Sistemas de Tiempo Real Objetivos: » Analizar: • las técnicas y herramientas que se pueden utilizar para diseñar sistemas de tiempo real • las características principales de los SOTR • las normas POSIX (Interfaz estándar) • los distintos tipos de lenguajes para la programación de STR Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 1 Tema 3: Programación de Sistemas de Tiempo Real Índice: » Desarrollo de sistemas » Lenguajes para sistemas de tiempo real » Sistemas Operativos. Normas POSIX Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 2 Tema 3: Programación de Sistemas de Tiempo Real Referencias: • Transparencias de Juan Antonio de la Puente http://polaris.dit.upm.es/~jpuente/ Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 3 Tema 3: Programación de Sistemas de Tiempo Real Índice: » Desarrollo de sistemas » Lenguajes para sistemas de tiempo real » Sistemas Operativos. Normas POSIX Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 4 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real • Se apoya en conceptos, métodos y herramientas de ingeniería de software Normalmente comprende una serie de actividades: » » » » » Análisis de Requisitos Diseño Estructural Diseño Detallado Realización Pruebas Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 5 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real • Análisis de Requisitos » Análisis de la funcionalidad del sistema y sus propiedades (comportamiento temporal, fiabilidad, comportamiento en caso de averías, etc.) » Modelo del entorno: sistema controlado e interfaz con el mismo y con el operador Resultado: Modelo conceptual (o lógico) del sistema Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 6 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real • Diagrama de Actividades a A x operador A1 b S1 S2 u sensor y Sistemas Informáticos en Tiempo Real z v B1 D1 Marga Marcos, © 2001 pantalla 7 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real • Elementos de los Diagramas de Actividades actividad Flujo de datos Control Flujo de control datos Actividad externa Refinamiento Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 8 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real » Diseño de Sistemas • Descomposición: » consiste en dividir un sistema grande y complejo en módulos de tamaño manejable. Módulos de interés: • objetos abstractos: se definen por las operaciones que se pueden hacer sobre ellos • procesos: son entidades activas que se pueden ejecutar concurrentemente Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 9 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real » Diseño de Sistemas • Abstracción: » consiste en ocultar los detalles que no son relevantes en un momento dado. El resultado de esta actividad es un modelo estructural (ó físico) del sistema. Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 10 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real » Diagramas de estructura • Permiten representar gráficamente un modelo estructural ejemplo: A P B C D Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 11 Tema 3: Programación de Sistemas de Tiempo Real Desarrollo de Sistemas de Tiempo Real • • Las características específicas de los sistemas de tiempo real críticos condicionan los métodos y herramientas que se utilizan para desarrollar el software No todas las técnicas que se usan para construir otros tipos de sistemas sirven para el software de tiempo real crítico » suele haber problemas de fiabilidad y determinismo temporal • Nos centraremos en los lenguajes de programación y sistemas operativos Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 12 Tema 3: Programación de Sistemas de Tiempo Real Índice: » Desarrollo de sistemas » Lenguajes para sistemas de tiempo real » Sistemas Operativos. Normas POSIX Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 13 Tema 3: Programación de Sistemas de Tiempo Real Lenguajes de Programación » debe facilitar la realización de sistemas • concurrente, fiable, comportamiento temporal analizable » lenguajes de interés para STR: • lenguaje ensamblador » flexibles y eficientes pero costoso en desarrollo y poco fiable • lenguaje secuencial (Fortran, C, Pascal,...) » necesita s.o. para concurrencia y tiempo real • lenguaje concurrente (Modula, Ada,...) » concurrencia y tiempo real incluidos en el lenguaje Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 14 Tema 3: Programación de Sistemas de Tiempo Real Lenguajes de Programación: C » muy utilizado para la programación de sistemas » características: • estructurado, con bloques • sin tipado fuerte • muy flexible (a veces poco seguro) » no tiene integrada concurrencia ni tiempo real • se obtiene a través de llamadas al S.O. » No facilita la descomposición en módulos ni la programación con objetos • se puede hacer con C++ Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 15 Tema 3: Programación de Sistemas de Tiempo Real Lenguajes de Programación: Ada » lenguaje específicamente diseñado para STR empotrados • incluye concurrencia, tiempo real, acceso al hw e interrupciones » lenguaje descendiente del pascal • estructura en bloques y fuertemente tipado » pensado para construir sistemas grandes y cambiantes • • • • paquetes (módulos) y esquemas genéricos extensión de tipos con herencia biblioteca jerárquica interfaces a otros lenguajes normalizada Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 16 Tema 3: Programación de Sistemas de Tiempo Real Lenguajes de Programación: Ada95 » la norma define: • un núcleo común a todas las implementaciones • unos anexos especializados para: » » » » » » programación de sistemas sistemas de tiempo real sistemas distribuidos sistemas de información cálculo numérico fiabilidad y seguridad • los anexos definen: » paquetes de biblioteca » mecanismos de implementación Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 17 Tema 3: Programación de Sistemas de Tiempo Real Índice: » Desarrollo de sistemas » Lenguajes para sistemas de tiempo real » Sistemas Operativos. Normas POSIX Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 18 Tema 3: Programación de Sistemas de Tiempo Real Sistemas Operativos » los sistemas operativos convencionales no son adecuados para realizar STR • no tienen comportamiento temporal determinista • no permiten garantizar tiempos de respuesta » un sistema operativo de tiempo real debe ofrecer: • gestión de la concurrencia: procesos ligeros (threads) con memoria común • temporización: medida de tiempos y ejecución periódica • planificación: prioridades fijas con desalojo, acceso a recursos con protocolos de herencia de prioridad • dispositivos de E/S: acceso a hw e interrupciones Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 19 Tema 3: Programación de Sistemas de Tiempo Real Sistemas Operativos: POSIX » Es un conjunto de normas IEEE/ISO que definen interfaces de sistemas operativos » Permiten desarrollar software portable y reutilizable (Portable Operating System Interface) + X » Las normas definen servicios que se pueden incluir o no en un sistema operativo particular » Se definen también perfiles de aplicación con servicios estándar Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 20 Tema 3: Programación de Sistemas de Tiempo Real Sistemas Operativos: POSIX POSIX 1, 1a POSIX 1b,1d,1i,1j POSIX 1c POSIX 1e POSIX 1f POSIX 1g POSIX 1h POSIX 21 Sistemas Informáticos en Tiempo Real interfaz básica (similar a UNIX) extensiones de tiempo real procesos ligeros (threads) seguridad NFS servicios de red (sockets, XTI) tolerancia de fallos comunicaciones de tiempo real Marga Marcos, © 2001 21 Tema 3: Programación de Sistemas de Tiempo Real POSIX: Perfiles de aplicación » definen subconjuntos de servicios para distintos tipos de aplicaciones POSIX 10 POSIX 13 POSIX 14 POSIX 18 supercomputadores sistemas de tiempo real multiprocesadores estación de trabajo Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 22 Tema 3: Programación de Sistemas de Tiempo Real POSIX13: Perfiles para sistemas de tiempo real • PSE50: sistema de tiempo real mínimo » sin gestión de memoria, ficheros ni terminal » solo threads (no procesos pesados) • PSE51: controlador de tiempo real » con sistema de ficheros y terminal • PSE52: sistema de tiempo real dedicado » con gestión de memoria y procesos pesados • PSE53: sistema de tiempo real generalizado » sistema completo con todos los servicios Sistemas Informáticos en Tiempo Real Marga Marcos, © 2001 23