Sei sulla pagina 1di 28

Desarrollo de Aplicaciones con

Microcontroladores

Free
Ronald A. Ponguillo RTOS
Escuela Superior Politécnica del Litoral
Guayaquil - Ecuador

MAESTRIA EN AUTOMATIZACION Y CONTROL


Sistemas operativos de tiempo Real
TAREAS
SISTEMAS OPERATIVOS EN TIEMPO REAL
(Real Time Operating System)
 Es un Sistema Operativo desarrollado para aplicaciones de Tiempo Real
 Se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo
 Si no las respeta, se dirá que el sistema ha fallado
Métodos para Implementar un Sistema
en Tiempo Real
 Procesamiento secuencial (Bucle scan)
Primer plano / Segundo plano (Foreground / Background)
Multitarea cooperativa
Multitarea expropiativa (preemptive)
Procesamiento secuencial (Bucle Scan)
void main( )
{
char ch;
printf(“Pulsa una tecla (Bulce infinito) \r");

while(true) {
ch = getch( );
printf(“Has pulsado la tecla %c\r”,ch);
}

}
Primer Plano / Segundo Plano
 Uso de Interrupciones
Ejemplo de código con Interrupciones
Sistema Operativo (RTOS)
Sistema Operativo (RTOS)
Sistema Cooperativo
 El SO no puede detener una tarea en forma arbitraria
 Las tareas deben ceder el control al SO de manera explicita
 Esto implica por lo general, valores de latencia altos al responder a eventos de tiempo real

 Ejemplo: Compilador de CCS


Sistema Apropiativo
 El SO puede detener una tarea arbitrariamente, reanudando la ejecucion de otra segun lo
considere necesario
 Las tareas no necesitan ceder el control al SO
 Se reduce de manera importante el tiempo de respuesta a eventos de tiempo real
 Ejemplo de Sistema Apropiativo: freeRTOS
Que es freeRTOS?
 Es un RTOS de codigo abierto
 Dispone de multiples ports a diferentes arquitecturas (micros)
 Totalmente gratuito
 http://www.FreeRTOS.org

Desventajas de usar un RTOS
 Desarrollar software para un RTOS require de experiencia y planeamiento cuidadoso
 Controlar acceso a recursos utlizados por mas de una tarea
 Requieren mas memoria RAM que un Sistema sin RTOS
En sintesis
 Un RTOS permite organizar tareas de manera logica y sencilla, asignando una prioridad a cada
una de ellas
 Teimpo real significa que el Sistema Opertaivo garantiza una latencia reducida para los eventos
e interrupciones dado un diseno adecuado del software y las tareas
Ventajas de usar un RTOS
 Reduccion del tiempo de desarrollo
 Refuerza conceptos de modularizacion
 Provee de metodos seguros de Comunicaciones entre tareas
 Asegura la indepedencia entre tareas
 Facilita la extensibilidad y verificacion del diseno
COLAS
Estado de las TAREAS
 Estados en los que se puede encontrar una tarea:
Estados de las TAREAS
Estados de las TAREAS
Colas para comunicar datos entre
TAREAS
Semaforos binarios usados paa
sicronizacion
 FreeRTOS posee los siguientes elementos para la sincronizacion de eventos : colas, semaforos
binaries, semaforos contadores, semaforos recursivos y mutex
 Aunque la finalidad de los semáforos es permitir el acceso de fomra segura a un recurso
compartido entre varias tareas, también puede usarse para sincronizar dos tareas entre si, o una
tarea con una rutina de atención a interrupción
 La rutina de atención a interrupción realiza la interaccion con el hardware y libera el semáforo
para permitir desbloqiear la tarea que queremos sincronizar con la interrupción
 El código implementado dentro de una rutina de atención a interrupción debe ocupar pocos
ciclos de procesador
Semaforos binarios usados paa
sicronizacion
Semaforos binarios usados paa
sicronizacion
Semaforos binarios usados paa
sicronizacion
MUTEX
 Es un tipo especial de semaforo binario que se utiliza para controlar el acceso a un recurso que
se comparte entre dos o mas tareas
Como funciona un MUTEX
Diferencias entre MUEX y semaforos
binarios
 Los mutex inlcuyen un mecanismo de herencia de prioridad, los semaforos binaries no. Esto
hace que los Mutex sean la major opcion paa implementar la exclusion mutual simple y los
semaforos binaries sean major opcion para implementar la sicnronizacion (entre tareas o entre
tareas y una interrupcion)
 Un semaforo binario no necesita ser “dado” una vez “tomado” (obtenido), por lo que la
sincronizacion de tareas puede ser implementada por una tarea/interrupcion continuamente
“dando” el semaforo mientras que otro continuamente “toma” el semaforo
 La prioridad de una tarea que contiene el Mutex se elevara si otra tarea de mayor prioridad
intenta obtener el mismo mutex. La tarea que posee el mutex “hereda” la prioridad de la tarea
que intenta “tomar” el mismo mutex
 Una tarea que obtiene un mutex debe siempre devolver el mutex, de lo contrario la tarea de
mayor prioridad nunca podra obtener el mutex

Potrebbero piacerti anche