25
1 Informática para Sistemas Embebidos Paper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing for Embedded Systems Edward A. Lee UC Berkeley, Berkeley, CA 94720, USA, [email protected]

1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

Embed Size (px)

Citation preview

Page 1: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

1

Informática para Sistemas Embebidos

Paper:

IEEE Instrumentation and MeasurementTechnology ConferenceBudapest, Hungary, May 21-23, 2001.

Computing for Embedded Systems

Edward A. LeeUC Berkeley, Berkeley, CA 94720, USA,

[email protected]

Page 2: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

2

Informática para Sistemas Embebidos

El software embebido es cada vez más una composición de componentes concurrentes.

Los sistemas son modelados como una aglomeración de componentes dentro de la gran variedad de modelos de computación.

Page 3: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

3

Componentes Actúan en una gran variedad de modos Deben declarar interfaces bien definidas (problema

central).

Interfaces de componentes Deben declarar propiedades dinámicas (principal

beneficio).• Protocolos de comunicación.• Propiedades temporales.

Informática para Sistemas Embebidos

Page 4: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

4

Modelos de computación. (principios subyacentes) Deben incluir información compartida, como el

tiempo o la causalidad. Las propiedades determinan fuertemente los

problemas que acarrea. Gobiernan la interacción de los componentes en un

diseño. En software embebido se maneja concurrencia.

Informática para Sistemas Embebidos

Page 5: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

5

Informática para Sistemas Embebidos

Patrones. (pautas) Son pautas para los programadores. Se puede distinguir entre patrones de diseño y patrones

de arquitectura. Un patrón de arquitectura expresa un esquema

organizativo estructural fundamental para sistemas de software.

Los modelos de computación son patrones de arquitectura, focalizados particularmente en las relaciones de operaciones entre componentes secuenciales o concurrentes.

Page 6: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

6

Informática para Sistemas Embebidos

Estructuras. (hace cumplir patrones e implementar modelos) Restricciones a los componentes y sus interacciones. De las restricciones derivan beneficios.Ontología: Una estructura define lo que representa un

componente.Epistemología: Una estructura define estados de

conocimiento. ¿Qué sabe la estructura acerca de los componentes? ¿Qué saben entre sí los componentes?

Protocolos: Una estructura restringe los mecanismos por los cuales los componentes pueden interactuar.

Léxico: Es el vocabulario de la interacción de los componentes.

Page 7: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

7

Lenguajes de descripción de arquitectura (ADLs)

Ciertos ADLs definen a los modelo de computación, describen su práctica actual.

Para sistemas embebidos sería más útil un lenguaje de diseño de arquitectura, mejorar la práctica futura.

Informática para Sistemas Embebidos

Page 8: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

8

Informática para Sistemas Embebidos

Lenguajes de programación. Para soportar los modelos se extienden lenguajes o

se realizan nuevos. Poco aceptados por ser poco familiares para mucho programa, limitadas las plataformas y los software de soporte, etc.

La alternativa: usar modelos para coordinar programas modulares escritos en los lenguajes más comúnmente usados.

Las aplicaciones más grandes pueden mezclar más de un modelo de computación.

Page 9: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

9

Ecuaciones diferenciales, tiempo continuo.

Los componentes representan relaciones entre funciones continuas, y las interacciones son las funciones mismas.

Las ecuaciones diferenciales son excelentes para modelar circuitos analógicos y muchos sistemas físicos.

Forman el modelo de computación usado en Simulink, Saber, y VHDL-AMS, y están estrechamente relacionadas con los simuladores de circuitos Spice.

Algunos modelos de computación paraSistemas Embebidos

Page 10: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

10

Algunos modelos de computación paraSistemas Embebidos

Ecuaciones en diferencias, tiempo discreto. Las ecuaciones diferenciales pueden hacerse discretas

para conseguir ecuaciones en diferencias, un modelo de normalmente usado en procesamiento de señales digitales.

Un reloj global define los puntos discontinuos en los que las señales tienen valores.

Son más fáciles de implementar en software que las ecuaciones diferenciales.

Sus puntos débiles son la sincronización global implicada por el reloj, y la incomodidad de especificar eventos irregulares en tiempo y la lógica de control.

Page 11: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

11

Algunos modelos de computación paraSistemas Embebidos

Maquinas de estados. En las maquinas de estados finitos (MEF), los

componentes representan estados des sistema y las interacciones representan transiciones de estado.

MEF simple no es concurrente. Las maquinas de estado abstracto (MEA) generan la

descripción de estados en la que los componentes (estados) representan sistemas algebraicos, y las interacciones representan transformaciones de esos sistemas algebraicos (Gurevich, 1997).

Page 12: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

12

Algunos modelos de computación paraSistemas Embebidos

Maquinas de estados. Son excelentes para la lógica de control en sistemas

embebidos, particularmente sistemas de seguridad crítica.

Además, las MEF son fácilmente plasmadas a cualquier implementación hardware o software.

No son lo suficientemente completos para describir todas las funciones parcialmente recursivas.

Otro punto débil es que el número de estados puede hacerse muy grande incluso ante una complejidad moderada.

Page 13: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

13

Algunos modelos de computación paraSistemas Embebidos

Modelo sincrónico/reactivo (SR) Las interacciones entre los componentes son a través de

valores de datos que se alinean con pulsos de reloj global, a diferencia de los modelos de tiempo discretos, una señal no necesita tener un valor en cada pulso de reloj.

Los componentes representan relaciones entre los valores de la entrada y salida en cada pulso de reloj.

Son excelentes para aplicaciones de lógica de control concurrente y compleja.

A causa de la estricta sincronización, algunas aplicaciones están muy especificadas en el modelo SR, lo que limita las alternativas de implementación y hace sistemas distribuidos difíciles de modelar.

Page 14: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

14

Algunos modelos de computación paraSistemas Embebidos

Modelo de eventos discretos. las interacciones entre los componentes son a través de

eventos colocados sobre una línea de tiempo. Una señal es una secuencia de tales acontecimientos. Los componentes procesan eventos en orden cronológico.

No hay un pulso de reloj global, pero si una noción de tiempo global.

Los modelos DE son una excelente descripción para hardware concurrente.

Una debilidad es que son caro de implementar en software, como lo demuestra los simuladores relativamente lentos.

Page 15: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

15

Modelo de ciclo controlado En los modelos Ciclo-controlado los componentes

están asociados con el reloj y normalmente realizan los cálculos según el pulso de reloj.

En el sistema Scenic (Liao, et. al, 1997), por ejemplo, los componentes son procesos que corren indefinidamente, puesto que esperan el pulso de reloj, o esperan alguna condición sobre las entradas.

Scenic también incluye un ingenioso mecanismo para modelar por prioridades, una característica importante de muchos sistemas embebidos.

Algunos modelos de computación paraSistemas Embebidos

Page 16: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

16

Programación de tasa monótona. Se asigna mayor prioridad a las tareas de menor

período. Muy comúnmente utilizado en modelos de

computación en diseño de sistemas embebidos Es tan popular que es rutinariamente aplicando incluso

cuando las tareas no son periódicas naturalmente. Un gran inconveniente en este modelo de computación

es que no incluyen intrínsecamente los mecanismos de interacción entre los componentes.

Algunos modelos de computación paraSistemas Embebidos

Page 17: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

17

Algunos modelos de computación paraSistemas Embebidos

Paso de mensaje sincrónico. Los componentes son procesos, y los procesos se

comunicar en forma atómica, mediante citas (rendezvous). Muy comúnmente utilizado en modelos de computación en

diseño de sistemas embebidos Se ha realizado en una serie de lenguajes de programación

concurrente, incluyendo Lotos y Occam. Están especialmente bien adaptados a aplicaciones donde

compartir recursos es un elemento clave, tales como modelos de bases de datos cliente-servidor y multitareas o multiplexación de recursos hardware.

Un punto débil es que mantenerlo determinístico puede ser dificultoso.

Page 18: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

18

Algunos modelos de computación paraSistemas Embebidos

Paso de mensaje asincrónico. Los procesos se comunican para enviar mensajes mediante

canales que pueden guardar vía buffer los mensajes en memoria. El remitente del mensaje no necesita espera que el receptor este listo para recibir el mensaje.

En un modelo de redes de procesos las interacciones entre los componentes son a través de secuencias de valores de datos (fichas), y los componentes representan funciones que mapean secuencias de entrada en la salida

Son excelentes para procesamiento de señal. Son ligeramente acoplados, y por lo tanto relativamente fácil de paralelizar o distribuir

Son complicados de utilizar para especificar la lógica de control

Page 19: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

19

Algunos modelos de computación paraSistemas Embebidos

Procesos de comunicación secuencial y de redes temporizados. casos involucran hilos para comunicarse a través de paso de

mensajes, sincrónicamente en el primer caso y asincrónicamente en el último.

Ninguno de los modelo incluyen intrínsecamente una noción del tiempo.

Puede ser ampliados con una noción del tiempo para promover la interoperabilidad y hacer directamente modelos de propiedades temporal.

Los hilos asumen que el tiempo no avanza, mientras que están activos, pero puede avanza cuando se paran en la entrada, en la salida o se indican explícitamente que el tiempo puede avanzar.

Page 20: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

20

Algunos modelos de computación paraSistemas Embebidos

Publicar y suscribir. Utiliza notificación de eventos como el principal

medio de interacción entre los componentes. Un componente declara un interés en una familia de eventos (suscribe), y otro componente asegura eventos (publica).

Muy adecuado para comunicaciones sumamente irregulares y comunicaciones no temporizadas.

Page 21: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

21

Eventos desestructurados. Muy permisivos que se basan en llamada de

métodos sin control particular sobre el orden en que ocurre dichos llamado de los método.

Las interacciones no sincronizadas pueden implementarse fácilmente sin riesgo de estancamiento.

Si se requiere sincronización, el programador debe construir los mecanismos desde el principio.

Algunos modelos de computación paraSistemas Embebidos

Page 22: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

22

Elegir el modelo. El nivel de abstracción y el dominio de especificidad

aumentan en la práctica de diseño, esto obliga a seleccionar entre una gran variedad de modelos que puede ser intimidante. Se cree que interfaces de usuario más visuales y sofisticadas serán requeridas para permitirles a los diseñadores hacer frente a esta heterogeneidad.

Una diferencia esencial entre modelos de computación concurrentes es su modelado de tiempo.

Muchos investigadores han reflexionado profundamente acerca del papel del tiempo en la computación.

¿Cómo podemos conciliar esta multiplicidad de opiniones?

Informática para Sistemas Embebidos

Page 23: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

23

Elegir el modelo. Un enfoque unificado imponente sería tratar de encontrar un

modelo concurrente de computación que sirva para todos los propósitos. Esto podría lograrse creando una conglomeración, una mezcla de todo lo anterior, pero tal mezcla sería sumamente compleja y difícil de utilizar.

Otra alternativa sería elegir un modelo concurrente de computación, como el modelo de “citas”, y mostrar que todos los otros están abarcados como casos especiales. Esto, en teoría, es relativamente fácil de hacer. La mayoría de estos modelos de computación son lo suficientemente expresivo para ser abarcados por la mayoría de los otros. Sin embargo, esta falla en reconocer las ventajas y desventajas de cada modelo de computación.

Informática para Sistemas Embebidos

Page 24: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

24

Estructuras de la Estructura

A fin de obtener ciertos beneficios, las estructuras imponen restricciones.

las estructuras pueden volverse más especializadas a medida que buscan mayores beneficios.

La desventaja de estructuras especializadas es que es poco probable que puedan resolver todos los problemas de estructuras para cualquier sistema complejo.

Para evitar perder los beneficios de las estructuras especializadas, los diseñadores de estos sistemas complejos tienen que mezclar estructuras heterogéneamente.

Page 25: 1 Informática para Sistemas Embebidos zPaper: IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, 2001. Computing

25

Estructuras de la Estructura

Hay varias maneras para mezclar estructuras. Uno de ellos es mediante la especialización (análoga a subclasificación) donde una estructura es simplemente la versión mas restringida de otra.

Una segunda manera de mezclar estructuras es jerárquicamente. Un componente en una estructura es en realidad un conjunto de componentes en otra.