Desarrollo de Sistemas

download Desarrollo de Sistemas

of 24

description

sistemas

Transcript of Desarrollo de Sistemas

DESARROLLO DE SISTEMAS EN TIEMPO REAL

DESARROLLO DE SISTEMAS EN TIEMPO REAL (SRT)Ing. Leonardo Torres ArgomedoUNIDAD DE APRENDIZAJE I: FUNDAMENTOS DE LOS SISTEMAS EN TIEMPO REAL.Introduccin a los Sistemas en Tiempo Real.

Un sistema de tiempo real es un sistema informtico que realiza las siguientes tareas:Interacciona repetidamente con su entorno fsico.Responde a los estmulos que recibe del mismo dentro de un plazo de tiempo determinadoPara que el funcionamiento del sistema sea correcto no basta con que las acciones sean correctas, sino que tienen que ejecutarse dentro del intervalo de tiempo especificado.

Los sistemas en tiempo real suelen estar integrados en un sistema de ingeniera ms general, en el que realizan funciones de control y/o monitorizacin, denominados SISTEMAS EMPOTRADOS (embedded systems).Un sistema empotrado es un sistema informtico (hardware + software) de tiempo real integrado en un sistema de ingeniera ms general, en el que realiza funciones de control, procesamiento y/o monitorizacin.Muchos sistemas de uso comn en la industria, el transporte, las comunicaciones y el hogar tienen computadores empotrados:Aviones.Trenes.Coches.telfonos mviles.Televisores.GPS.etc.

Clases de sistemas de tiempo real:Crticos (hard real-time systems):Los plazos de respuesta deben respetarse siempre estrictamente.Una sola respuesta tarda a un suceso externo puede tener consecuencias fatales.

Acrticos (soft real-time systems):Se pueden tolerar retrasos ocasionales en la respuesta a un suceso.

Tareas de tiempo realLas actividades de un sistema de tiempo real se llaman tareas.Tienen varios tipos de propiedades:Funcionales: que hacenTemporales: cuando lo hacenFiabilidad, seguridad, etc.El comportamiento temporal de las tareas se especifica mediante sus atributos temporalesCuando se ejecutan: esquema de activacin.Que plazo tienen para ejecutar cada accin.

Caractersticas de los STRGran tamao y complejidad:Algunos STR tienen millones de lneas de cdigo.La variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeos.Simultaneidad de acciones (concurrencia)Los dispositivos fsicos controlados funcionan al mismo tiempo.Las tareas que los controlan actan concurrentemente.Seguridad y fiabilidadSistemas crticos: fallos con consecuencias graves.Prdida de vidas humanas.Perdidas econmicas.Daos medioambientales.Dispositivos de entrada y salida especialesLos manejadores de dispositivos forman parte del software de aplicacin.Los sistemas empotrados interaccionan con su entorno mediante diversos tipos de dispositivos que normalmente no son convencionales (teclados, impresoras, ...): convertidores A/D y D/A, entradas y salidas digitales, ... (interfaces con sensores, actuadores, perifricos especiales, ...)Los componentes del software que controlan el funcionamiento de estos dispositivos (manejadores, "drivers") son, en general, dependientes del sistema concreto.Determinismo temporal:Acciones en intervalos de tiempo determinados.Es fundamental que el comportamiento temporal de los STR sea determinista o, al menos, previsible.No hay que confundirlo con la necesidad de que sea eficiente.El sistema debe responder correctamente en todas las situacionesEn los sistemas de tiempo real estricto hay que prever el comportamiento en el peor caso posible.Los sistemas de tiempo real controlan actividades del mundoexterior que son simultneas.Para ello deben ejecutar varias tareas en paralelo(concurrentemente).La ejecucin de las tareas se multiplexa en el tiempo en uno ovarios procesadores.

PROGRAMACINActualmente existen dos alternativas:Lenguajes secuenciales (C, C++, ...) + sistema operativo de tiempo real.Los lenguajes secuenciales dependen de un sistema operativo para las funciones de concurrencia y temporizacin.Lenguajes concurrentes (Ada, extensin tiempo real Java...)Las funciones de concurrencia y tiempo real forman parte del lenguajeSISTEMAS OPERATIVOS de tiempo real (SOTR)Los sistemas operativos convencionales no son adecuados para tiempo real:No tienen comportamiento determinista.No permiten garantizar los tiempos de respuesta.Un sistema operativo de tiempo real debe soportar:Concurrencia: procesos ligeros con memoria comnTemporizacin: medida de tiempos y ejecucin peridicaPlanificacin: expulsiva con prioridades, y acceso a recursos con herencia de prioridadManejo de dispositivos E/S: acceso a recursos de hardware e interrupciones.Ejemplos: VxWorks, Lynx OS, QNX, RTEMS, MarteOS, RT-Linux, Spectra, Solaris,

Por lo regular Sistema Operativo de tiempo real suele tener la misma arquitectura que un Sistema Operativo convencional, pero su diferencia radica en que proporciona mayor prioridad a los elementos de control y procesamiento que son utilizados para ejecutar los procesos o tareas.El SOTR debe ser multitarea y permisibleUn SOTR debe poder asignar prioridades a las tareasEl SOTR debe proporcionar medios de comunicacin y sincronizacin entre tareasUn SOTR debe poder evitar el problema de inversin de prioridadesEl comportamiento temporal del SOTR debe ser conocido

CLASIFICACIN DE LOS SISTEMAS DE TIEMPO REAL

Los sistemas de tiempo real pueden ser de dos tipos, esto es en funcin de su severidad en el tratamiento de los errores que puedan presentarse:Sistemas de tiempo real blandos o Soft real-time systems: estos pueden tolerar un exceso en el tiempo de respuesta, con una penalizacin por el incumplimiento del plazo. Estos sistemas garantizan que las tareas crticas se ejecutan en tiempo. Aqu los datos son almacenados en memorias no voltiles, no utilizan tcnicas de memoria virtual ni tiempo compartido, estas tcnicas no pueden ser implementadas en hardware.

Sistemas de tiempo real duros o Hard real-time systems: aqu la respuesta fuera de trmino no tiene valor alguno, y produce la falla del sistema. Estos sistemas tienen menos utilidades que los implementados por hard, por ejemplo no pueden utilizarse para control industrial y robtico. Pero si para multimedia, supervisin de controles industriales y realidad virtual.

POSIXPortable Operating System Interface + XConjunto de normas IEEE/ISO que definen servicios que pueden ofrecer los sistemas operativos de tiempo real.Normas bsicas, con interfaces para C.Interfaces para Ada y otros lenguajes.Perfiles de aplicacin.