Title: Inform
1Informá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,
eal_at_eecs.berkeley.ed
2Informá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.
3Informática para Sistemas Embebidos
- 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.
-
4Informática para Sistemas Embebidos
- 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.
5Informá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.
6Informá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.
7Informática para Sistemas Embebidos
- 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.
8Informá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.
9Algunos modelos de computación paraSistemas
Embebidos
- 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.
10Algunos 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.
11Algunos 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).
12Algunos 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.
13Algunos 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.
14Algunos 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.
15Algunos modelos de computación paraSistemas
Embebidos
- 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.
16Algunos modelos de computación paraSistemas
Embebidos
- 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.
17Algunos 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.
18Algunos 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
19Algunos 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.
20Algunos 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.
21Algunos modelos de computación paraSistemas
Embebidos
- 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.
22Informática para Sistemas Embebidos
- 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?
23Informática para Sistemas Embebidos
- 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.
24Estructuras 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.
25Estructuras 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.