Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introduccin
Sistema Embebido
Es un sistema computacional Recursos limitados Realizan una o algunas pocas funciones dedicadas
Que es un SO?
Programa que gestiona el Hardware de un equipo Proporciona una base para programas aplicacin Intermediario entre el Usuario y el Hardware Ejecutar programas y resolver problemas fcilmente
Que es un RTOS?
Sistema Operativo en Tiempo Real (Real Time Operating System) Cumplir compromisos temporales Se emplea cuando hay que administrar varias tareas con plazos de tiempo estrictos
Tomar en Cuenta
Se gasta tiempo de CPU en Schedulling Gasta memoria Se gasta memoria de control dedicada a cada tarea (TCB Task Control Block) Cuidadoso anlisis de tiempos para eventos y respuestas
Partes de un RTOS 1
Planificador (scheduler)
Administra el tiempo del CPU Determina ejecucin tareas Reemplaza tareas en ejecucin debido eventos
Partes de un RTOS 2
Servicios RTOS
Manejo interrupciones Temporizadores Administracin de memoria Entradas / salidas (IOs)
Partes de un RTOS 3
Sincronizacin y mensajera
Colas Semforos Mutexes
2. FreeRTOS
Caractersticas
Cdigo Abierto
No tiene costo FreeRTOS
Fcil de implementar
Existe mucha Documentacin !
Caractersticas
MicroKernel de Tiempo Real
Servicios mnimos e indispensables
2. Tareas en FreeRTOS
Tareas - Tasks
Es una pieza de cdigo secuencial que tiene como objetivo el cumplir con alguna funcin de nuestro sistema embebido Cada Tarea posee un conjunto de recursos que identifican el estado de ejecucin (CONTEXTO)
Tipos de Tareas
3 tipo de tareas
Peridicas Aperidicas Procesamiento Continuo
Tareas - Contexto
Cada Tarea posee un conjunto de recursos sus respectivo estado de ejecucin (CONTEXTO)
IP (Instruction pointer) SP (Stack Pointer) Registros de CPU Contenido de la pila en uso
Funciones Importantes
Funciones para trabajar con Tareas:
portBASE_TYPE xTaskCreate(); Void vTaskStartScheduler(void); Void vPrintString(const char*);
Retorna
pdTRUE
errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY
Temporizadores de Software
Funciones
vTaskDelay(portTickType xTickToDelay) vTaskDelayUntil(.)
3. Planificador en FreeRTOS
Tipos de Planificacin
Planificador (scheduler)
Cooperative Preemptive Round Robin
Planificacin - Schedulling
Planificador (scheduler)
Cooperative Preemptive
Round Robin
Algoritmo Planificacin
Fixed priority preemptive scheluing Ejecuta la tarea de mayor prioridad Si existen dos tareas con = prioridad
Retira tarea en ejecucin Round Robin
Algoritmo Planificacin
En FreeRTOS
TICK_RATE_HZ Segmento de tiempo
Algoritmo Planificacin
Un valor bajo TICK_RATE hace que el sistema sea lento TICK_RATE hace que el scheduler trabaje mas seguido TICK_RATE valor de compromiso entre estos dos extremos
Cambio de Contexto
Context switching
Scheudler invoca al Dispatcher Guarda el contexto actual y lo reemplaza Por esta razn se reserva un bloque de memoria de datos para cada tarea
Consideraciones de Diseo
Asignar prioridades de acuerdo a la importancia Evitar el starving de tareas de menor prioridad Anlisis detallado de:
Eventos Compromisos temporales
Temporizadores de Software
vTaskDelay(.)
Produce una demora Cede control CPU
vTaskDelayUntil(.)
Tiempo constate entre llamadas sucesivos
Tareas Peridicas
En FreeRTOS se implementan mediante la funcin:
vTaskDelayUntil()
Pasa mayor parte de su tiempo en estado de bloqueo y cuando expira el tiempo pasa a estado Ready
4. Sincronizacin de Tareas
Tareas Aperidicas
Bloqueada hasta que ocurra un evento Semaforos Se desea que las tareas de mayor prioridad sedan el CPU
Semforos
Mismo concepto un semforo vial Restringe el acceso a un seccin particular del programa Es una Herramienta Sincronizacin
Herramienta Sincronizacion
Mismo concepto un semforo vial Restringe el acceso a un seccin particular del programa
5. Manejo de Colas
Necesidad de un Mecanismo de comunicacin sincronizado Cuando una tarea produce datos mas rpido de los que se los consume
Solucion al intercambio
Usar Colas (queues) Son visibles por todas las tareas
Deben ser creadas de forma global
Solucion al intercambio
Usar Colas (queues) Son visibles por todas las tareas
Deben ser creadas de forma global
6. Administracin de Recursos
Problemticas de Concurrencia
Tareas pueden requerir usar un mismo recurso al mismo tiempo
Existe cambio de contexto Ejemplo escribir en un LCD Ejemplo Escribir un UART
Exclusin mutua
Solucin mediante turnado de procesos FreeRTOS ofrece varias alternativas
Deshabilitar interrupciones
Sistema se vuelve cooperativo Protege contra otras tareas y no escucha eventos
Exclusin mutua
Solucin mediante turnado de procesos FreeRTOS ofrece varias alternativas
Deshabilitar interrupciones
Sistema se vuelve cooperativo Protege contra otras tareas y no escucha eventos
Herencia de Prioridad
El Scheduler eleva la prioridad de la tarea (de baja prioridad)
La eleva al nivel de la tara de mayor prioridad Y que pasa cuando se tiene la misma prioridad en dos tareas??? Roun Robin = segmento de tiempo
Herencia de Prioridad
Excepcin al algoritmo Fixed priority preemptive scheduling No soluciona la inversin de prioridad Reduce la duracin de la inversin
Preguntas
GRACIAS!!!