Tecnología De Sistemas De Tiempo Rea

2y ago
25 Views
2 Downloads
547.25 KB
34 Pages
Last View : 16d ago
Last Download : 3m ago
Upload by : Cade Thielen
Transcription

UPMTecnología de sistemas detiempo realJuan Antonio de la PuenteDIT/UPMCopyright 2007-2008, Juan Antonio de la Puente

Motivación 200-2008 Juan Antonio de la Puente Los métodos, las herramientas y la tecnología que seusan para construir otros tipos de sistemas no sirven paralos sistemas de tiempo real– no son suficientemente fiables– sólo contemplan el tiempo de respuesta medio, no el peor– no garantizan los requisitos temporales Las plataformas de desarrollo y ejecución suelen serdiferentes– es difícil hacer pruebas en la plataforma de ejecución– es difícil medir los tiempos con precisión5/10/09Tecnología de software1

Diseño de sistemas de tiempo real 200-2008 Juan Antonio de la Puente El diseño de un sistema tiene varios aspectos– funcional: relación entre valores de entrada y de salida– concurrente: actividades concurrentes, sincronización,comunicación– temporal: requisitos temporales– arquitectónico: componentes, relaciones entre ellos Cada aspecto se expresa mejor con un tipo de notación.Por ejemplo:– Simulink para el aspecto funcional– UML (con perfiles específicos) para el diseño detallado decomponentes– AADL (Analysable Architecture Description Language) para losaspectos de concurrencia y arquitectura5/10/09Tecnología de software2

200-2008 Juan Antonio de la PuenteEjemplo: Simulink5/10/09Tecnología de software3

Ejemplo: AADLsystemCDU Processor Software.Implp CDU Display Manager : processCDU Display Manager.Impl rate ndo to destcpm sw Out Socketthread vm rate ndo from srccpm sw In Group ndo to destcpm sw Out rate p CDU IO Manager : processCDU IO Manager.Impl rate ndo to destcpm sw Out Socketthread vm rate 200-2008 Juan Antonio de la Puentethread vm rate ndo from srccpm sw In ndo from srccpm sw In ndo from srccpm sw In Group ndo from srccpm sw In Group ndo from srccpm sw Inp Communications Manager : processCommunications Manager.Impl rate rate threadthread vm rate vm rate rate thread vm rate ndo from srccpm sw In ndo from srccpm sw In Group ndo from srccpm sw In ndo from srccpm sw In Group rate ndo to destcpm sw Out ndo to destcpm sw Out Socket ndo to destcpm sw Out Socket ndo to destcpm sw Outp Flight Manager : processFlight Manager.Impl rate thread ndo to destcpm sw Out Socket vm rate rate thread vm rate ndo from srccpm sw In Group ndo from srccpm sw In5/10/09 ndo to destcpm sw Outthread vm rate Tecnología de software rate thread vm rate rate thread vm rate ndo to destcpm sw Out4

200-2008 Juan Antonio de la PuenteEjemplo: UML5/10/09Tecnología de software5

Arquitectura globalaplicación 200-2008 Juan Antonio de la Puentelenguaje de programaciónmáquina simbólicasistema operativollamadas al sistema lenguaje de máquinalenguaje de máquinahardware5/10/09Tecnología de software6

Desarrollo cruzado 200-2008 Juan Antonio de la PuentefuentescompiladorPlataforma de ejecución5/10/09montadorRTSlibRTSlibPlataforma de amacargadomonitorTecnología de software7

Lenguajes de programación 200-2008 Juan Antonio de la Puente Un lenguaje de programación de sistemas de tiempo realdebe facilitar la realización de sistemas– concurrentes,– fiables,– con un comportamiento temporal analizable Hay varias clases de lenguajes de interés para STR:– Lenguajes ensambladores» flexibles y eficientes, pero costosos y poco fiables– Lenguajes secuenciales (Fortran, C, C )» necesitan un SO para concurrencia y tiempo real– Lenguajes concurrentes (Ada, Java, .)» concurrencia y tiempo real incluidos en el lenguaje5/10/09Tecnología de software8

C 200-2008 Juan Antonio de la Puente Es un lenguaje muy utilizado para programación desistemasEs un lenguaje– estructurado, con bloques– sin tipado fuerte– muy flexible (pero a veces poco seguro) No tiene integrada la concurrencia ni el tiempo real– se consigue invocando servicios del sistema operativo de formaexplícita No facilita la descomposición en módulos ni laprogramación con objetos– se puede hacer con C » extensión de C para programar con objetos» no se suele usar en STR por problemas de fiabilidad5/10/09Tecnología de software9

Ejemplo: tarea periódicavoid periodic () {struct timespec next, period; 200-2008 Juan Antonio de la Puenteif (clock gettime (CLOCK MONOTONIC, &next) ! 0) error();period.tv sec 0;period.tv nsec 10.0E6; /* 10 ms */while (1) {if (clock nanosleep (CLOCK MONOTONIC, TIMER ABSTIME,&next, 0) ! 0) error();acción periódicanext next period;}}5/10/09Tecnología de software10

Ada 200-2008 Juan Antonio de la Puente Es un lenguaje diseñado específicamente parasistemas de tiempo real empotrados– concurrencia– tiempo real– acceso al hardware e interrupciones Es un lenguaje descendiente de Pascal– estructura en bloques– fuertemente tipado Está pensado para construir sistemas grandes ycambiantes––––5/10/09paquetes (módulos) y esquemas genéricosextensión de tipos con herenciabiblioteca jerárquicainterfaces normalizadas con otros lenguajes (C, Fortran)Tecnología de software11

Ada 2005 200-2008 Juan Antonio de la Puente Es la versión actual de AdaLa norma define– un núcleo común para todas las implementaciones(core language)– unos anexos especializados para»»»»»»programación de sistemassistemas de tiempo realsistemas de alta integridadsistemas distribuidossistemas de informacióncálculo numérico– Los anexos definen» paquetes de biblioteca» mecanismos de implementaciónNo añaden sintaxis ni vocabulario al lenguaje5/10/09Tecnología de software12

200-2008 Juan Antonio de la PuenteEjemplo: tarea periódicause Ada.Real Time;task body Periodic isPeriod : constant Time Span : Milliseconds(10);Next Time : Time : Clock;begin-- iniciaciónloopdelay until Next Time;-- acción periódicaNext Time : Next Time Period;end loop;end Periodic;5/10/09Tecnología de software13

Novedades en Ada 2005 200-2008 Juan Antonio de la Puente Mejor soporte para sistemas de tiempo real– perfil de Ravenscar– relojes y temporizadores de tiempo de ejecución– nuevos métodos de planificación del procesador Mejoras en la programación mediante objetos– interfaces Mejoras en la estructura de los programas y en lasreglas de visibilidad de las declaracionesMejoras en la biblioteca estándarOtras mejoras en el lenguaje5/10/09Tecnología de software14

200-2008 Juan Antonio de la PuentePerfiles para sistemas críticos El documento Guide for the use of the Ada programminglanguage in high-integrity systems define subconjuntosseguros de Ada para aplicaciones críticas SPARK es un lenguaje que permite el uso de técnicas deanálisis estático– subconjunto de Ada anotaciones El perfil de Ravenscar define un subconjunto seguro de laparte concurrente de Ada, y los correspondientes serviciosde sistema operativo5/10/09Tecnología de software15

Java 200-2008 Juan Antonio de la Puente Es un lenguaje pensado para construir sistemasdistribuidos––––basado en objetos dinámicoscon concurrencia integrada en el lenguajebibliotecas de clases (APIs) muy útilespensado para que el código objeto sea portátil» interpretado por una máquina virtual (JVM)» “write once, run everywhere” La definición original no es adecuada para tiempo real–––––5/10/09la planificación de actividades concurrentes no está bien definidalos mecanismos de sincronización son inadecuadosla gestión dinámica de memoria introduce indeterminismola medida del tiempo no es suficientemente precisaotros problemas con excepciones y concurrenciaTecnología de software16

Java para tiempo real 200-2008 Juan Antonio de la Puente Real-Time Specification for Java (RTSJ)–––– basada en un máquina virtual extendida para STRhay una implementación de referencia (TimeSys)y otras comerciales (por ejemplo, Jamaica)investigación: Java para sistemas de alta integridad (HIJA)Los compiladores y las máquinas virtuales para Java detiempo real no están todavía completamente maduros– lo más complicado es la gestión de memoria y la recogida debasura5/10/09Tecnología de software17

200-2008 Juan Antonio de la PuenteEjemplo: tarea periódicapublic class Periodic extends RealTimeThread {public Periodic() {super();setReleaseParameters (new PeriodicParameters (new AbsoluteTime ( 0,0), /* start */new RelativeTime (10,0), /* period */.));}public void run() {while (true) {actividad periódicawaitForNextPeriod ();}}}5/10/09Tecnología de software18

Lenguajes síncronos 200-2008 Juan Antonio de la Puente Se basan en un modelo matemático sencillo–––– los sucesos son instantáneoslas acciones tambiénpuede haber sucesos y reacciones simultáneosse puede efectuar un análisis formal del comportamiento temporalEjemplos– Esterel– Lustre, Signal– Statecharts Se compilan a autómatas realizados en lenguajes deprogramación secuenciales (C, Ada sin concurrencia)5/10/09Tecnología de software19

200-2008 Juan Antonio de la PuenteEjemplo en Esterelmodule periodic;input Millisecond;every 10 Millisecond doacción periodicaend every;end module;5/10/09Tecnología de software20

Sistemas operativos 200-2008 Juan Antonio de la Puente Los sistemas operativos convencionales no son adecuadospara realizar sistemas de tiempo real– no tienen un comportamiento determinista– no permiten garantizar los tiempos de respuesta– algunos de ellos son poco fiables Un sistema operativo de tiempo real (SOTR) debe soportar––––5/10/09concurrencia: procesos ligeros (hebras o threads)temporización: medida de tiempos y ejecución periódicaplanificación determinista: gestión del procesador y otros recursosdispositivos de E/S: acceso a recursos de hardware einterrupcionesTecnología de software21

200-2008 Juan Antonio de la PuentePOSIX Es un conjunto de normas IEEE/ISO que defineninterfaces de sistemas operativos Permiten desarrollar software portátil y reutilizable(Portable Operating System Interface) Las normas definen servicios que se pueden incluir o noen un sistema operativo particular Además se definen perfiles de aplicación con conjuntos deservicios estándar Hay interfaces para C, Ada, y otros lenguajes5/10/09Tecnología de software22

Normas POSIX 200-2008 Juan Antonio de la Puente IEEE 1003.1 (2004)– interfaz básica para C similar a UNIX – incluye extensiones de tiempo real y hebras (threads) IEEE 1003.5 (1999)– interfaces para Ada IEEE 1003.13 (1998)– Perfiles para sistemas de tiempo real5/10/09Tecnología de software23

POSIX para sistemas de tiempo real 200-2008 Juan Antonio de la PuenteServicios de tiempo real– Relojes precisos y temporizadores– Señales de tiempo real– Planificación por prioridadesServicios de hebras (threads)– Hebras– Mutex y variables de condición5/10/09Tecnología de software24

200-2008 Juan Antonio de la PuentePerfiles de aplicación Definen subconjuntos de servicios para distintos tipos deaplicaciones POSIX 13 : Perfiles para sistemas de tiempo real– PSE50 : sistema de tiempo real mínimo» sin gestión de memoria, ficheros ni terminal» sólo threads (no procesos pesados)– PSE51 : controlador de tiempo real» tiene sistema de ficheros y terminal– PSE52 : sistema de tiempo real dedicado» tiene gestión de memoria y procesos pesados– PSE53 : sistema de tiempo real generalizado» sistema completo con todo tipo de servicios5/10/09Tecnología de software25

Ejemplos de SOTR 200-2008 Juan Antonio de la Puente LynxOSpSOSQNXVxWorksRTEMSRT-Linux– PaRTiKle — Universidad Politécnica de Valencia MaRTE OS — Universidad de Cantabria– perfil POSIX PSE50– para sistemas empotrados basados en PCx86 Open Ravenscar Kernel (ORK) — DIT/UPM– núcleo de SOTR para Ada sobre procesadores LEON (SPARCv8)5/10/09Tecnología de software26

Hardware El hardware puede tener un comportamiento temporalimprevisible 200-2008 Juan Antonio de la Puente– el uso de memorias cache produce una gran variación en lostiempos de ejecución de los programas» un solución es bloquear zonas de cache para tareas críticas» a veces se puede modelar la cache– otros mecanismos de aceleración producen variaciones aúnmayores» segmentación (pipe-lining)» ejecución especulativa» son difíciles de modelar Tendencias– paralelismo (multicore systems)– integración masiva (system on a chip)5/10/09Tecnología de software27

Sistemas distribuidos 200-2008 Juan Antonio de la Puente Para poder asegurar un comportamiento temporalcorrecto hay que acotar los tiempos de transmisión– retardo entre la aplicación y el software de comunicaciones– retardo en tampones de transmisión y recepción– tiempo de transmisión en la red Hay que usar protocolos con tiempo de transmisiónacotado en todos los niveles– acceso al medio: paso de testigo, prioridades, TDMA, etc.– niveles superiores: tiempo de espera acotado– conflicto con tolerancia de fallos: retransmisiones por fallos5/10/09Tecnología de software28

200-2008 Juan Antonio de la PuenteEjemplos (1)aplicaciónaplicaciónaplicaciónC / libcAda / RTSAda/Cy RTS/bibliotecasVxWorksORKMaRTE stema operativode tiempo real5/10/09núcleode tiempo realTecnología de software29

Ejemplos (2) 200-2008 Juan Antonio de la Puentesistema de control5/10/09sistema de control(ejecutivo cíclico)RT JavaensambladorRTSJ VMmicrocontroladorcomputadorIx686máquina desnudamáquina virtualde JavaTecnología de software30

200-2008 Juan Antonio de la PuenteEjemplos (3)aplicacionesconvencionalesaplicacionesde tiempo reallenguajesconvencionalesAda/C RTSLinuxRT LinuxXtratuMcomputadorIx686nano-núcleo con varias máquinas virtuales5/10/09Tecnología de software31

Ejemplos (4)applicationapplication 200-2008 Juan Antonio de la ocolstackdriversRT kernelhardwareRT kernelhardwarenetwork5/10/09Tecnología de software32

200-2008 Juan Antonio de la PuenteResumen La tecnología de software convencional no es adecuada,en general, para desarrollar sistemas de tiempo real En el curso usaremos algunos lenguajes de programaciónpara ilustrar los conceptos más importantes de los STR– Ada 2005– RT Java– C / POSIX5/10/09Tecnología de software33

POSIX 13: Perfiles para sistemas de tiempo real – PSE50 : sistema de tiempo real mínimo » sin gestión de memoria, ficheros ni terminal » sólo threads (no procesos pesados) – PSE51 : controlador de tiempo real » tiene sistema de fich

Related Documents:

1.4.6 Sistemas operativos integrados 35 1.4.7 Sistemas operativos de nodos sensores 36 1.4.8 Sistemas operativos en tiempo real 36 1.4.9 Sistemas operativos de tarjetas inteligentes 37 1.5 CONCEPTOS DE LOS SISTEMAS OPERATIVOS 37 1.5.1 Procesos 38 1.5.2 Espacios de direcciones 40

tulos que integran esta colecci ó n MINISTERIO DE EDUCACION, CIENCIA Y TECNOLOGIA DE LA NACION ARGENTINA Ministro de Educaci ó n, Ciencia y Tecnolog í a Lic. Daniel Filmus Secretario de Ciencia, Tecnolog í a e Innovaci ó n productiva Ing. Tulio Abel del Bono Jefe de la Unidad de Programas Especiales Prof. Ignacio Hernaiz Coordinadora de la .

CAMCO LUBRICANTES PARA SISTEMAS DE REFRIGERACIÓN A BASE DE AMONIACO Sobre Aceites Convencionales para Sistemas de Refrigeración El aceite estándar para sistemas de Freón y amoníaco para sistemas de refrigeración eran aceites a base de nafta, utilizados debido a su punto bajo punto de vaciado (-30 F).

2.3 Sistemas Integrados de Gestión (SIG) Las organizaciones en las décadas de los 90 y en los años trascurridos del 2000, han implementados Sistemas de Gestión de manera separada, iniciando en la mayor parte de los casos con el Sistema de Gestión de Calidad y continuando con los Sistemas de Gestión Ambiental y los Sistemas de Gestión en .

Tema 1. Introducción a los Sistemas Automáticos. La Automática. Automatismos industriales. Sistemas de fabricación. Realización tecnológica del control. Tipos de sistemas de Automatización Industrial. Ejemplos de sistemas de Automatización Industrial.

UD_ 3 Sistemas pasivos y sistemas activos de acondicionamiento bioclimático 1. SISTEMAS PASIVOS DE ACONDICIONAMIENTO BIOCLIMÁTICO . intensivo de luz natural, la carga debida a acondicionamiento del aire se reduce considerablemente. La luz natural en el interior de los edificios cualifica los espacios de manera especial

5. El uso y la operación de sistemas de barandales, sistemas personales de detención de caídas, sistemas de redes de seguridad, sistemas de líneas de advertencia, sistemas de monitorización de seguridad, zonas de acceso controlado y otros tipos de protección. 6. Procedimientos para responder a emergencias. 7. Normas y referencias de la OSHA.

FUEL INJECTION SYSTEMS DIESEL RuiManuelVieiraPinto 1090039 Sistemas Automóveis Anolectivo2009/2010 Fuel injectionsystems-diesel Sistemas Automóveis . - PLD, UI and Common rail basic analysis is made in electronic injectionsection Sistemas Automóveis Anolectivo2009/2010 3 -Injectors. 1/18/2010 8 Injectors Sistemas Automóveis