Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento...

54
Clase 04: Arquitecturas de Software Embebido Sistemas Embebidos Prof: Lic. Jos´ e H. Moyano Departamento de Ciencias e Ingenier´ ıa de la Computaci´ on 2019 Prof: Lic. Jos´ e H. Moyano (Departamento de Ciencias e Ingenier´ Clase 04: Arquitecturas de Software Embebido 2019 1 / 54

Transcript of Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento...

Page 1: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Clase 04: Arquitecturas de Software EmbebidoSistemas Embebidos

Prof: Lic. Jose H. Moyano

Departamento de Ciencias e Ingenierıa de la Computacion

2019

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 1 / 54

Page 2: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas e ISRs

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 2 / 54

Page 3: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas

El software de un sistema embebido realiza diversas funciones tales como: atendery controlar dispositivos

I realizar computosI medir intervalos de tiempoI configurar e inicializar el hardwareI etc.

A cada una de dichas funciones podemos asociar una unidad de ejecucion que laimplementa (Tarea).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 3 / 54

Page 4: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas

En Sistemas Operativos de Tiempo Real se habla de tareas como unidades deprograma secuenciales y planificables.

Tarea (Sistemas Embebidos):I Es una unidad de ejecucion secuencialI Su ejecucion se planifica o coordina de alguna maneraI Posee cohesion funcional (se origina como resultado de descomponer

funcionalmente al sistema)I La nocion de tarea trasciende los constructores del lenguaje de programacion (una

tarea puede ser una funcion, modulo, metodo, objeto, etc. o simplemente unasecuencia de codigo en una unidad mayor)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 4 / 54

Page 5: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas

Planificacion y coordinacion de tareas:I En ausencia de un SO, las tareas son atendidas y coordinadas por un modulo

principal que se encarga de planificarlas de acuerdo a algun esquema.I En presencia de un SO, es el scheduler del sistema operativo quien abstrae al

implementador de estos detalles. El implementador simplemente especifica sustareas como unidades funcionales separadas, y la logica de coordinacion queda“oculta” por el sistema.

En ambos casos, si existe comunicacion entre tareas, hay que sincronizar suejecucion.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 5 / 54

Page 6: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

TareasTanto en presencia de Sistemas Operativos como sin ellos, podemos considerar que lastareas se encuentran en determinado estado:

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 6 / 54

Page 7: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas

Las tareas suelen tener:I diversas prioridades.I deadlines (tiempos maximos en los cuales la tarea debe cumplirse – tiempo real).

La asignacion de prioridades determinara que tareas tienen privilegios para accederal CPU.

Los deadlines deben ser tenidos en cuenta para asegurar que ningun dispositivodeja de ser atendido en tiempo y forma.

En sistemas con restricciones de tiempo real: Correctitud funcional + correctitudtemporal.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 7 / 54

Page 8: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

ISR

En sistemas que realizan E/S usando interrupciones, la ejecucion de las tareaspuede ser interrumpida por la ocurrencia de eventos notificados por el hardware.

El control es transferido a rutinas que dan atencion a dichos eventos y que poseenmayor prioridad que las tareas: las Interrupt Service Routines (ISRs).

Las ISRs comparten con las tareas el hecho de:I Ser unidades de ejecucion secuencialI Poseer cohesion funcional (se originan como resultado de descomponer

funcionalmente al sistema)

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 8 / 54

Page 9: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

ISR

Las ISRs se diferencian de las tareas en que:

Inician su ejecucion ante la ocurrencia de eventos asincronicos

No se rigen por los esquemas de planificacion y coordinacion habituales

Su implementacion se realiza mediante un constructor especıfico del lenguaje deprogramacion (normalmente una funcion con un calificador especial que denota sucondicion de ISR)

generalmente la implementacion funcional de un sistema esta compuesta por unconjunto de Tareas e ISRs.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 9 / 54

Page 10: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas e ISR

De la descomposicion funcional de un sistema:

Se identifican y especifican Tareas e ISRs

Se determinan dependencias entre las mismas (datos y recursos compartidos,sincronizacion y comunicacion, oportunidades de concurrencia, etc).

Se fijan las restricciones temporales (tiempo real)

Se aplican criterios de modularidad (optimizar tareas e ISRs)

Se analiza el esquema y la posibilidad de planificacion (por ej. Rate MonotonicAnalysis) ante restricciones de tiempo real (el analisis de planificabilidad lo veremosmas adelante).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 10 / 54

Page 11: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Division tareas e ISRTelefono celular simple

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 11 / 54

Page 12: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Division tareas e ISROutside-in approach

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 12 / 54

Page 13: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caso de Estudio: Impresora 3D

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 13 / 54

Page 14: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caso de Estudio: Impresora 3D

La impresora 3d derrite plastico, y lo deposita utilizando un estrusor en la cama,siguiendo el patron de una pieza de tres dimensiones, que es lo que se desea imprimir.

La maquina puede interpretar G code

En una memoria microSD, se almacenan archivos en un sistema fat32 o NTFS, conel codigo G de disenos que pueden imprimirse

Dos steppers controlan el movimiento del estrusor, en los ejes X y Z

Un tercer stepper controla el movimiento de la cama en el eje Y

Un cuarto stepper controla la entrada de filamento al estrusor

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 14 / 54

Page 15: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caso de Estudio: Impresora 3D

La impresora 3d derrite plastico, y lo deposita utilizando un estrusor en la cama,siguiendo el patron de una pieza de tres dimensiones, que es lo que se desea imprimir.

Una resistencia calienta el estrusor, y otra calienta la cama donde se deposita lafigura

Un display muestra informacion de estado

Una perilla permite al usuario controlar la maquina, a traves de un menu que semuestra en el display

Los steppers calibran su posicion en los tres ejes con tres sensores de fin de carrera

Sensores de temperatura miden la temperatura del estrusor y la cama. Latemperatura de ambos elementos dependen del diseno

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 15 / 54

Page 16: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caso de Estudio: Impresora 3D

Identificar las partes del sistemaI Diagrama de bloques: Permiten describir sw y hw

Identificar Tareas e ISRs (particion funcional)I Diagramas de Transicion de EstadosI Diagrama de Flujos

Identificar dependencias y oportunidades de comunicacion y sincronizacion

Definir temporizados, prioridades y deadlines

Modos de operacion del sistema (idle, working, calibration, error, etc.)I Diagramas de Transicion de Estados

Protocolo de comunicacionI Diagramas de secuencia

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 16 / 54

Page 17: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Arquitecturas de Software

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 17 / 54

Page 18: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Sobre las arquitecturas de software

El esquema de planificacion de tareas define la estructura del software embebido.

La eleccion de que arquitectura de software utilizar condiciona:I El tipo de respuesta del sistema ante eventosI La forma en que el sistema gestiona multiples eventos (ej. prioridades)I La complejidad del sistema (testeo, mantenimiento, interoperabilidad, etc)

A continuacion analizaremos diversas arquitecturas de software usuales en sistemasembebidos, en orden creciente de complejidad.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 18 / 54

Page 19: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Problema de Sistemas Embebidos

Se desea desarrollar el software de un sistema embebido. Este sistema tiene unaconexion SPI con un dispositivo, cuyos datos deben procesarse, y enviar por UART a unsegundo dispositivo. A su vez, el sistema debe generar informacion propia, que debeenviar tambien por UART cada 20ms. Cada 1s, debe indicar que esta activo haciendoque parpadee un LED.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 19 / 54

Page 20: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Se cuenta con una funcion system init() que inicializa todo el sistema

La funcion spi read(uint8 t *), verifica el flag del dispositivo para determinar sihay datos esperando, y en caso de haberlos, devuelve true, y guarda byte recibidoen la variable pasada como parametro.

La funcion uart send(uint8 t *) devuelve true si la UART esta disponible paraenviar un byte, y de ser ası, lo entrega al dispositivo para ser enviado.

La funcion led toggle() enciende el led si esta apagado, o lo apaga si estaencendido.

La funcion timer get ms() devuelve la cantidad de milisegundos transcurridosdesde que se inicio la ejecucion del sistema. Por simplicidad, se supone que estosvalores son infinitos y siempre validos.

La funcion own process(uint8 t *) realiza el procesamiento propio deldispositivo, y guarda los datos en el arreglo entregado como parametro.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 20 / 54

Page 21: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

La arquitectura desarrollada se llama Round-Robin.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 21 / 54

Page 22: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Ejemplo de Arquitectura Round-RobinMultımetro digital

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 22 / 54

Page 23: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Propiedades de la Arquitectura Round-Robin

Util cuando:

Hay pocos dispositivos

No hay restricciones de tiempo importantes

No hay tiempos de procesamiento demasiado elevados en respuesta a eventos.

No es adecuada cuando:

El bucle se hace demasiado largo (o un dispositivo necesita ser atendidorapidamente)

Se pueden perder eventos o datos

Anadir un nuevo dispositivo puede comprometer los resultados alcanzados con esteesquema

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 23 / 54

Page 24: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Problema de sistemas embebidos 2

Cuando se puso en funcionamiento el sistema, el equipo detecto que si se recibe undato por SPI antes de ejecutar own process, puede suceder que el dispositivoenvıe otro dato antes de que own process termine.

Como resultado, se sobreescribe el dato anterior con el nuevo, y este primer dato sepierde.

El equipo de desarrollo ha decidido solucionarlo configurando tanto el SPI, como elUART, para que generen interrupciones al recibir y terminar de enviar.

Las dos ISR se declaran como ISR(UART tx) e ISR(SPI rx) respectivamente.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 24 / 54

Page 25: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

La arquitectura desarrollada se llama Round-Robin coninterrupciones.

Es la que propone Arduino.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 25 / 54

Page 26: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Comparando prioridades RR y RR con int

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 26 / 54

Page 27: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caracterısticas Round-Robin con interrupciones

El codigo de cada tarea corre a la misma prioridad (introduce latencias importantesen presencia de otras tareas demandantes en el tiempo).

I Opcion 1: Mover el codigo de la tarea a su ISR (complica los tiempos de atencionde los eventos de las demas tareas).

I Opcion 2: Incrementar la frecuencia de polling de las tareas demandantes (por ej.chequeando flags varias veces por ciclo). Es un esquema limitado: Mientras masveces se chequean los flags de una tarea, mas demora potencial introducimos en laatencion de las otras.

Tiempos largos de respuesta si justo ocurre el evento inmediatamente despues deque se paso el polling del flag.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 27 / 54

Page 28: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Problema de Sistemas Embebidos 3Las funciones del sistema original se ampliaron.

I Debe recuperar de la EEPROM parametros de configuracion que deben reportarseal inicio, hacia el sistema 2 a traves de la UART.

I Un nuevo LED azul debe parpadear cada vez que se realice una transmision alsistema 2.

I Un nuevo LED verde debe parpadear cada vez que se realice una recepcion delsistema 1.

I Luego de 5 segundos sin recibir informacion del sistema 1, debe encenderse unnuevo LED rojo. Cuando regresa a la normalidad, debe apagarse.

I Cada 30 segundos, debe enviar al sistema 1 un mensaje solicitando informacion deestado. Esta informacion de estado deben remitirse al sistema 2.

Hay tambien rumores que se piensa reemplazar el microcontrolador con otro demenor costo, de otro fabricante. Las funciones spi read y uart send puede que noesten disponibles o tengan otros nombres. El timer tiene pocos bits y desbordararapidamente.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 28 / 54

Page 29: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

El equipo de desarrollo entiende que el diseno debe separar el software en modulos.I Un unico timer es insuficiente para todos los requisitos de temporizado, y se debe

prevenir el desbordamiento.I Debe poder reportarse a las capas superiores del sistema cuando un evento requiera

atencion.I El hardware debe abstraerse a traves de device drivers.

Se utilizara una nueva arquitectura, function-queue-scheduling que ofrece unafuncion function post(* void(fn)(void)) que permite encolar una funcion aejecutar luego, y otra funcion, function run() que ejecuta la proxima funcion encola.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 29 / 54

Page 30: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caracterısticas Function-Queue-Scheduling

Funciones largas de baja prioridad pueden comprometer los tiempos de respuestade las funciones de alta prioridad.

Si bien se puede reestructurar en bloques menores las rutinas largas (algo complejode hacer), en el fondo la planificacion de las rutinas no es apropiativa.

Para escenarios de mayor complejidad se utilizan sistemas operativos embebidos(RTOS).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 30 / 54

Page 31: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Funciones de callback

Un callback es una funcion que se entrega como parametro, esperando que estafuncion sea llamada en algun momento, bajo alguna condicion.

Se las clasifica de sincronicas cuando se espera que la sea llamada antes del retornode la funcion; y asincronicas cuando pueden ocurrir mas adelante, luego de que lafuncion termino su ejecucion.

Tambien llamadas senales o eventos.

Se utilizan tambien en el desarrollo de aplicaciones en servidores y sistemas deescritorio.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 31 / 54

Page 32: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Callbacks en function-queue-scheduling

Las funciones de callback permiten organizar el software en modulos independientesen sistemas embebidos con function-queue-scheduling.

Por ejemplo, se puede escribir un modulo que administre un dispositivo, e informeal programa principal o a otro modulo cliente cuando se presenta un evento quehay que atender.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 32 / 54

Page 33: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Callbacks en function-queue-schedulingConvenciones

En general las rutinas de interrupcion agregan una funcion a la cola de funcionespara reportar el evento.

Se evita llamar a funciones de callback desde rutinas de interrupcion, porque sepierde el control de la duracion y las actividades que se estan realizando dentro deuna rutina de interrupcion.

Si es necesario llamar a funciones de callback desde una rutina de interrupcion, setoma una convencion para informar de esto al programador. Por ejemplo, enTinyOS se nombran esas funciones como async.

Las funciones de callback no llaman a otras funciones de callback. Si una funcionde callback necesita llamar a otra funcion de callback, pone otra funcion en la colaque hara la llamada.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 33 / 54

Page 34: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Arquitectura RTOS

Para escenarios complejos: Real-Time Operating Systems.

La aplicacion se estructura en un conjunto de ISRs y tareas que se sincronizan.

Las ISRs senalizan a las tareas.

Las tareas son planificadas por el RTOS (prioridades, apropiacion, etc.).

Los mecanismos de sincronizacion (al igual que otros servicios) son provistos por elSistema Operativo.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 34 / 54

Page 35: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Arquitectura RTOS

El bucle principal ahora forma parte del scheduler del sistema operativo.

La sincronizacion y planificacion son servicios provistos por el RTOS.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 35 / 54

Page 36: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Comparacion de prioridades

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 36 / 54

Page 37: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Caracterısticas Arquitectura RTOS

El tiempo entre un evento y su atencion dependen del quantum asignado a cadatarea (ademas de la latencia de interrupcion, tiempo del cambio de contexto, etc.).

Si se cambia una tarea, el esquema de temporizado continua siendo estable(cambios en las tareas menos prioritarias no afectan a los tiempos de respuesta delas tareas mas prioritarias).

Los RTOS proveen muchos servicios adicionales.

Desventaja: El RTOS consume recursos (el scheduler insume tiempo), se requiereespacio en memoria para alojarlo, etc. Un sistema simple como el ATMega328Ptiene problemas para cumplir con todas sus funciones si ademas aloja un RTOS.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 37 / 54

Page 38: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Seleccionando una arquitectura

Elegir la mas simple posible dentro delos requerimientos funcionales ytemporales de la aplicacion.

Ciertas soluciones utilizan arquitecturashıbridas.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 38 / 54

Page 39: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Criterios de modularidad

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 39 / 54

Page 40: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Analizar dependenciasAnalizar las dependencias entre los dispositivos y el resto del sistema constituye unfactor clave al momento de descomponer el sistema en tareas e ISRs.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 40 / 54

Page 41: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Dispositivos activos

Los dispositivos activos producen interrupciones

La atencion de este tipo de dispositivos tiene fuertes restricciones temporales(ISRs) y existe un mecanismo de comunicacion inter-tarea entre la ISR y la tarea.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 41 / 54

Page 42: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas activasEjemplos

Tareas asincronicas: reciben eventos aperiodicos.

Tareas sincronicas: reciben eventos periodicos o su operacion esta sincronizada conotras tareas del sistema.

Tareas que controlan el acceso a un dispositivo compartido.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 42 / 54

Page 43: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Recomendaciones tareas activasAsignar tareas separadas para cada dispositivo de E/S que presente uncomportamiento asincronico (el dispositivo fija la tasa de transferencia).

Combinar tareas para dispositivos que interrumpen infrecuentemente o cuyosdeadlines (tiempo real) son largos.

Asignar diferentes tareas a dispositivos que presentan tasas de transferenciadispares.

Asignar prioridades mas altas a las tareas asociadas a dispositivos que generaninterrupciones (en general estos dispositivos requieren tiempos de respuesta masdemandantes).

Asignar una tarea que gestione el acceso a dispositivos compartidos (dispositivosque deben ser accedidos por multiples tareas).

Utilizar tareas de despacho de eventos para aquellos dispositivos que requieranproveer informacion a multiples tareas.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 43 / 54

Page 44: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Dispositivos pasivos

Los dispositivos pasivos no producen interrupciones

El control en la comunicacion esta en manos de la tarea (normalmente polling orespuesta a eventos de otras tareas).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 44 / 54

Page 45: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Tareas pasivasEjemplos

Tareas que operan sobre el dispositivo esporadicamente.Tareas que realizan polling a intervalos aperiodicos.Tareas de despacho de eventos (originados a partir del polling) hacia otras tareasdel sistema.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 45 / 54

Page 46: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Recomendaciones tareas pasivas

Asignar una tarea para manejar dispositivos que se operan eventualmente o cuyosdeadlines no son urgentes.

Asignar tareas individuales para cada dispositivo que necesite sersondeado/escrutado a diferentes tasas (evitar under/oversampling).

Disparar el polling a dispositivos pasivos mediante timers (evitar delays en SW quepodrıan demorarse ante la ocurrencia de interrupciones).

Incrementar la prioridad de las tareas que realizan polling de mayor frecuencia (solohasta el nivel necesario, sino se corre el riesgo de sobre-ocupar el cpu).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 46 / 54

Page 47: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Criterios de modularidad

Una vez identificadas las tareas e ISRs, y teniendo en cuenta sus prioridades relativas esnecesario:

Identificar las dependencias entre eventos (tareas que producen informacion queotras necesitan)

Identificar dependencias temporales:I Identificar actividades crıticas y urgentesI Identificar las tasas de ejecucion de tareas periodicasI Identificar cohesion temporal: aquellas porciones de codigo que se ejecutan en un

mismo momento (por ej. dependen de un mismo evento) pueden agruparse en unatarea para reducir la sobrecarga.

Identificar actividades limitadas por CPU (intensivas en procesamiento) y asignarlesprioridades bajas.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 47 / 54

Page 48: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Criterios de modularidad

Una vez identificadas las tareas e ISRs, y teniendo en cuenta sus prioridades relativas esnecesario:

Identificar cohesion funcional: agrupar en tareas funciones relacionadas o tareas quecomunican grandes cantidades de datos.

Identificar tareas de propositos especıficos: agrupar tareas que se combinan paralograr un proposito particular y tratarlas como unidades funcionales separadas.

Identificar cohesion secuencial: agrupar tareas que revisten un ordenamientosecuencial en una unica tarea, reduce los recursos consumidos por las mismas ysimplifica el diseno.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 48 / 54

Page 49: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Device drivers

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 49 / 54

Page 50: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Acerca de los device drivers

Son porciones de software destinadas a aislar al resto del sistema de los detallesespecıficos de un dispositivo particular de hardware.

El acceso al dispositivo se realiza exclusivamente vıa el driver (proteccion delrecurso) mediante una interfaz que abstrae de los detalles de implementacion(abstraccion de hardware).

Se dan tanto en presencia de sistemas operativos (seguiran el modelo de driverspara el sistema particular) como en su ausencia (presentaran la forma de una APIque el desarrollador podra integrar en su sistema).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 50 / 54

Page 51: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Capas del software en un sistema embebido

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 51 / 54

Page 52: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Drivers como capas de abstraccion de hardware

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 52 / 54

Page 53: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Device driversCon excepcion de sistemas muy simples, la atencion de cada dispositivo (ISRs y tareas)se encapsula en device drivers (modulo/subsistema).

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 53 / 54

Page 54: Clase 04: Arquitecturas de Software Embebido - Sistemas ...€¦ · Jos e H. Moyano (Departamento de Ciencias e Ingenier a de la Computaci on)Clase 04: Arquitecturas de Software Embebido

Referencias

Barr, M., Massa, A. Programming Embedded Systems: With C and GNUDevelopment Tools, 2nd Edition. O’Reilly Media. 2006. ISBN: 978–0596009830.Capıtulo 10.

Li, Q., Yao, C. Real-time concepts for Embedded Systems. CMP. 2003. ISBN:978–1578201242. Capıtulos 5, 14 y 15.

Simon, D. An Embedded Software Primer. Addison-Wesley Professional. 1999.ISBN: 978–0201615692. Capıtulo 5.

Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 04: Arquitecturas de Software Embebido 2019 54 / 54