41 Tipos de sistemas en tiempo real Tiempo Real Estricto (Hard) – sistemas en los que es absolutamente imperativo que las respuestas ocurran dentro del plazo requerido. Por ejemplo: Sistemas de control de vuelo. Tiempo Real Flexible – sistemas en los que los plazos son importantes pero que todavía funcionarán correctamente si se determinan plazos que ocasionalmente no se cumplan. Por ejemplo: El Sistema de adquisición de datos. Tiempo real (Real) – sistemas que son estrictos en tiempo real y su tiempo de respuesta es muy corto. Por ejemplo: Sistema de guía de misiles Tiempo real Firme (Firm)– sistemas que son en tiempo real flexible pero en el que no haya beneficio de una entrega tardía del servicio. Un solo Sistema puede tener todos los subsistemas de tiempo real estricto, flexibles y reales. En realidad muchos sistemas tendrán una función de coste asociada con el incumplimiento de los plazos.
Arquitectura Prism en sistemas embebidos Durante las últimas décadas los investigadores de software y profesionales han propuesto diversos enfoques, técnicas y herramientas para el desarrollo de sistemas de software a gran escala. Los resultados de estos esfuerzos han sido caracterizados como de programación a gran escala programming-in-the-large (PitL). Un nuevo conjunto de desafíos que ha surgido con la aparición del barato, pequeño y heterogéneo, posiblemente integrado, altamente distribuido, así como las plataformas de computación móviles. Nos referimos al desarrollo del software en programación a pequeña escala programming-in-the-small-and-many (Prism). 42
Arquitectura Prism en sistemas embebidos (cont.) Propiedades de Prism: Recursos muy limitados Potencia limitada Ancho de banda bajo Velocidad de la CPU lenta, memoria limitada Tampaño pequeño del display Middleware Desarrollado para apoyar la implementación de Arquitectura de Software en el entornog Proporciona conceptos de nivel de arquitectura Componentes Conector Configuración Eventos
43
Arquitectura Prism en sistemas embebidos (cont.) Proporciona: Flexibilidad Eficiencia (Tamaño, velocidad, sobrecarga) Escalabilidad (Número de componentes, conectores, eventos, hilos, dispositivos de hardware) Extensibilidad (Soporte relativo a los nuevos desarrollos) Investigar los siguientes temas: Límites de dispositivos móviles (potencia, tamaño, memoria, ..) Modelado Análisis Simulación Prism está caracterizado por la compañía OS’s (Palm, Symbian) Prism está relacionado con la arquitectura del Software (arquitectura basada en el desarrollo)
44
Prism – ejemplo de aplicación 45 TDS (Despliegue de Tropas y simulación) Distribución del despliegue de personal Cuartel general Recopila información de campo y muestra el estado actual de campo de batalla Red a través de enlaces seguros a PDA’s Comandantes Conectado a soldados Dar órdenes a los soldados Soldados Ver segmentos del campo de batalla y recibir órdenes Más sobre las características PRISM, ver en: http://sunset.usc.edu/~softarch/Prism/ y Prism-MW – CS 795 / SWE 699, Sam Malek, Spring 2010
Programación de Sistemas embebidos Normalmente se tiene que ser mucho más consciente de los recursos que se consumen en la programación de sistemas embebidos que los que son necesarios en los programas ordinaries Tiempo Espacio Canales de comunicación Archivos ROM (Read-Only Memory) Memoria Flash … Se debe tomar el tiempo para aprender acerca de la forma en que las características del lenguaje de programación se implementan para una plataforma en particular. Hardware Sistema operativo Librería 46
Programación de Sistemas embebidos Una gran cantidad de éste tipo de programación es: Mirar con atención las características especializadas de un RTOS (Sistema Operativo en Tiempo Real) El uso de un “entorno non-hosted” (que es una forma de decir “ un lenguaje de programación justo en lo alto (right on top) del hardware sin un Sistema operativo”) Incluye (a veces complejas) arquitecturas de controladores de dispositivos El trato directo con interfaces de dispositivos hardware … No entraremos en detalles aquí Para eso están los cursos y manuales específicos. 47
Lenguajes de programación de sistemas embebidos Lenguajes Hardware Verilog y VHDL son los lenguajes más populares para la descripción del hardware y su modelización (ver las características de abajo)
48
Lenguajes de programación de sistemas embebidos (cont.) Lenguajes de Software Lenguajes de Software describen secuencias de instrucciones para un proceso a ejecutar. Por lo tanto, la lista de la mayoría de las instrucciones imperativas se ejecutan para comunicar a través de la memoria: un array de almacenamiento de localizaciones que mantienen sus valores hasta que son modificados. Los lenguajes más populares son: Lenguaje ensamblador, C, C++ y Java. Las características de estos lenguajes se muestran en la tabla de abajo. 49
Lenguajes de programación de sistemas embebidos (cont.) C++ se extiende C con los mecanismos de estructuración para grandes programas: los tipos de datos indefinidos, una manera de reutilizer código con tipos diferentes, espacios de nombres a los grupos de objetos y evitar conflictos de nombres accidentales cuando se ensamblan las piezas del programa, y las excepciones para manejar errores. La librería standard C++ incluye una colección de datos polimórficos eficientes, tales como arrays (matrices), árboles, cadenas para las que el compilador genera implementaciones personalizadas. Lenguaje Java Sun se asemeja al C++ pero es incompatible. Al igual que C + +, Java está orientado a objetos, que proporciona clases y herencia. Es un lenguaje de más alto nivel que C++, ya que utiliza las referencias a objetos, matrices y cadenas en lugar de punteros. La recogida automática de basura de Java libera al programador de la gestión de memoria. Java proporciona subprocesos simultáneos.
50
Lenguajes de programación de sistemas embebidos (cont.) Otro tipo de lenguaje de Sistemas Embebidos son languages de flujo de datos y languajes Híbridos. Los lenguajes de flujo de datos son un complemento perfecto para los algoritmos de procesamiento de señales, que utilizan grandes cantidades de aritmética derivada de la teoría de sistemas lineales de decodificación, comprimen o filtran corrientes de datos que representan muestras periódicas de los valores continuamente cambiantes, como el sonido o el video. (Acerca de los lenguajes de sistemas embebidos, ver más en: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26.4735&rep=rep1&type=pdf ) 51
52 Cuestiones de control ¿Cuáles son los principales objetivos de la ingeniería del software? Describir las principales etapas de desarrollo de software para sistemas embebidos. Comparar el Sistema operativo más popular para dispositivos móviles (posiblemente en forma de tabla). Comparar los lenguajes más populares utilizados en sistemas embebidos.
Página anterior | Volver al principio del trabajo | Página siguiente |