0% encontró este documento útil (0 votos)
316 vistas47 páginas

RTOS

Este documento presenta información sobre sistemas operativos de tiempo real y su uso en sistemas embebidos. Describe las ventajas de usar un RTOS, como simplificar la programación multitarea y mejorar la escalabilidad. También explica conceptos clave como tareas, prioridades, estados, recursos, eventos, semaforos, mensajes y el rol del kernel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
316 vistas47 páginas

RTOS

Este documento presenta información sobre sistemas operativos de tiempo real y su uso en sistemas embebidos. Describe las ventajas de usar un RTOS, como simplificar la programación multitarea y mejorar la escalabilidad. También explica conceptos clave como tareas, prioridades, estados, recursos, eventos, semaforos, mensajes y el rol del kernel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE CHIMBORAZO

FACULTAD DE INGENIERÍA
CARRERA DE ELECTRÓNICA Y
INTEGRANTES:TELECOMUNICACIONES
 TERESA MORA
 ANDRÉS FAICÁN
 ISAAC CARRASCO
 MARIO VEINTIMILLA
DOCENTE:
 ING. LEONARDO RENTERIA
 ASIGNATURA:
DISPOSITIVOS EMBEBIDOS Y
LAB.
RTOS
INTRODUCCIÓN
Gracias a nivel de integración actual, la disminución de precios y las
nuevas tecnologías que permiten tener mayores velocidades de ejecución
en los procesadores embebidos el uso de un sistema operativo de tiempo
real es adoptado cada vez más por los grupos de programadores
alrededor del mundo.
El uso de RTOS Real Time Operating System) en el diseño de un sistema
embebido tiene gran cantidad de ventajas sobre la forma tradicional de
programación especialmente cuando el grupo de R &D (Research
Development) de lo conforman varios diseñadores, porque facilita el
mantenimiento de software se independizan los programadores de la
coordinación de varias tareas y del manejo de funciones que depende del
tiempo.
¿Qué es un sistema operativo
de tiempo real?
El RTOS es a su vez un programa que ocupa de recursos del procesador como son
espacio en memoria del programa Flash, memoria RAM, base de tiempo (timer), y
además requiere tiempo para tomar decisiones y manejar las diferentes tareas.
Es un programa que coordina el funcionamiento de otros programas llamados tareas. El
sistema operativo permite de forma óptima, el manejo de datos, ejecución de
funciones, generación y control de eventos y coordinación general de un sistema
El sistema operativo de tiempo real, tiene la capacidad para adaptarse a
las diferentes necesidades y exigencias, puede reconfigurarse o
cambiarse totalmente si las tareas son más complejas y adaptarse para
llevar a cabo una tarea diferente o cuando aparezcan nuevos programas
que va a ejecutarse en la máquina.
Ocupa recursos del procesador para la coordinación de las tareas tanto
en tiempo de ejecución, como en memoria.
¿Por qué usar un RTOS?
Multitarea
Simplifica sobremanera la programación de sistemas con varias tareas.

Escalabilidad
Al tener ejecución concurrente de tareas se pueden agregar las que
haga falta, teniendo el único cuidado de insertarlas correctamente en el
esquema de ejecución del sistema.

Mayor reutilizabilidad del código


Si las tareas se diseñan bien (con pocas o ninguna dependencia) es más
fácil incorporarlas a otras aplicaciones.
El método más común de coordinar la ejecución de las
diferentes tareas consiste en incluir en el RTOS un
componente llamado el SCHEDULER.
El tiempo y el cambio de tarea son gobernados por un reloj
externo al RTOS llamado el TICK.
TAREAS
Las tareas son procedimientos formados por códigos del programa que
asumen que la CPU está disponible sólo para operarla a ella las tareas
trabajan con base en estados y eventos.
Una tarea es encargada de realizar una labor específica en la aplicación
embebida. Una tarea en un sistema embebido puede ser la encargada de la
inicialización, control y manejo del sistema de visualización LCD, otra tarea
podría ser responsable por el manejo del sistema de teclado, otra la
encargada de controlar el módulo de comunicación de seriales con un
dispositivo externo, etc.
PRIORIDAD DE
EJECUCIÓN DE UNA
TAREA
• Las tareas tienen asociadas ciertas características o
atributos, que pueden ser definidas al momento de su
creación, o cambiar de forma dinámica al momento de su
creación, o cambiar de forma dinámica a medida que ella se
ejecuta, suceden interrupciones o se ejecutan otras tareas.
• La prioridad de ejecución se refiere a la importancia de ejecutar una
tarea sobre las demás. Se definen en 3 niveles: BAJA, MEDIA Y ALTA,.
También se las representa con un numero que nos indica la prioridad
de la tareas, el valor mas bajo es el de mayor prioridad, indica mayor
importancia en el momento de ejecutar la tarea.
• La prioridad puede ser fija, definida al principio de la ejecución del
sistema, o puede ser de forma dinámica en el transcurso del
programa.
• Dependiendo de la naturaleza del RTOS usado, varias
tareas pueden tener en un mismo momento la misma
prioridad y en este caso el scheduler se encarga de hacer un
llamado secuencial en un esquema llamado Round Robin,
sin embargo, en algunos sistemas solo permiten una única
prioridad por tarea , perro la prioridad puede cambiar de
forma dinámica, y esto si lo permite la mayorcita de los
RTOS comerciales.
Estados de una tarea
Una tarea puede encontrarse en diferentes situaciones
dependiendo de su estado en ejecución.

• Suspendida (Dormant): indica que una tarea esta creada o


terminada y no esta siendo ejecutada por el RTOS ni programada
su ejecución por el scheduler.
• Ejecución (Run): una tarea se encuentra en este estado cuando el
scheduler del RTOS ha pasado el control a su código y esta siendo
ejecutada en el presente CPU.
• Disponible (Ready): una tarea que esta esperando turno para ser
ejecutada por el scheduler. Su prioridad es mas baja que la que
esta en modo RUN.
• Espera (Wait): estado en el que una tarea esta a la espera de
algún evento para continuar su ejecución, hasta que no se
presente dicho evento no estará en la lista de tareas que son
ejecutadas por el scheduler. El evento que espera la tarea puede
ser el cambio de un pin externo, que un recurso esté disponible,
que pase un determinado tiempo, que algún proceso de otra
tarea termine, etc.
• Interrumpida (Interrumpted): cuando una tarea estado en
modo Run, es suspendida por la aparición de una ISR. En este
caso el RTOS no tiene participación en la administración de
suspender y retornar el control a la tarea.
RECURSOS
• Los recursos son entidades usadas por una tarea. Un recurso
puede ser una función no reentrante, una estructura, una
variable, un display, teclado, entre otros. Se dice que un
proceso es compartido (shared recurse), cuando es usado por
mas de una tarea, debido a que cada tarea puede tener acceso
exclusivo al recurso en una determinado espacio de tiempo, y
prevenir que otra tarea lo haga, con el objetivo de prevenir
daños en los datos o en los dispositivos, este proceso se llama
exclusión mutua (mutual exclusion).
EVENTOS
• Son elementos de notificación hacia una tarea para indicar
la ocurrencia de un hecho o estimulo que interesa a una o
varia tareas que se están ejecutando. Los eventos pueden
llegar ya sea del hardware interno o externo al procesador,
o bien pueden ser eventos de software: timeouts,
interrupciones o un resultado de la operación de una
función.
SEMAFOROS
• Son mecanismos de control que proveen al RTOS una forma de prevenir
que múltiples tareas realicen al mismo recurso en el mismo tiempo.
• Se usan para indicar la ocurrencia de un evento y sincronizan varias
actividades dentro del sistema.
• Si el semáforo esta activo se quedara en el estado de WAIT, si no esta
activo, lo toma y lo bloquea.
• Una vez terminada su operación el semáforo se libera, permitiendo que
otra tarea pueda hacer uso de ese recurso.
MENSAJES
• Un mensaje es un objeto que se entrega la tarea , o bien, puede
ser una ISR, un apuntador con determinada medida a otra tarea.
• Este apuntador normalmente esta iniciado a una estructura de
datos que contiene un mensaje.
• Existen en el sistema operativo funciones ya incorporadas que
permiten:
1. Crear
2. Dejar el mensaje pendiente
3. Aceptar
4. Preguntar si existe un mensaje especifico para alguna tarea.
BLOQUES DE MEMORIA
(buffers)
• Son elementos de almacenamiento continuos para la capa de
aplicación, permite crear listas circulares, FIFO o LIFO de
cualquier tamaño.
• Las listas pueden crearse y borrarse de forma dinámica asi tener
un manejo eficiente de la memoria.
• Funcionan de forma similares a las funciones de malloc() y free()
para el manejo dinámico de memoria.
RELOJ Y TIMERS
• EL clock tick es una interrupción que ocurre periódicamente
y le permite al RTOS que permite contar el tiempo que
entrega a cada tarea y el manejo de timeouts.

• El valor del ticks le permite al diseñador controlar los


requerimientos de velocidad, consumo y tiempo de
respuesta del sistema.
• El valor de clock tick de frecuencia mas alto genera mayor
preámbulo en el sistema y tiene mayor consumo de energía debido
a que toma mas mayor numero de decisiones por segundo.
• Sin embargo un tiempo muy largo de tick ocasiona que las tareas
tengan tiempo de respuesta lento y que la sensación de tiempo real
se vea afectada.
• El diseñador debe seleccionar adecuadamente el valor de tick
dependiendo el requerimiento de velocidad.

Valores típicos:
• Pueden ir desde 10ms a 100ms dependiendo de los requerimientos
de la aplicación en particular.
KERNEL
• El kernel es la parte del RTOS responsable por la distribución del tiempo de la CPU
para el manejo de las tareas, además de la comunicación entre ellas. El uso de un
kernel de tiempo real generalmente simplifica el diseño de sistemas permitiendo
que la aplicación pueda ser dividida en múltiples tareas que el kernel administra una
a una.
• La parte del kernel que se encarga de determinar cual tarea debe ejecutarse es el
scheduler, el que basado en la prioridad, pasa el control de la CPU.
• Cuando se cambia de una tarea a otra, es decir, se produce un cambio de contexto,
se agrega un preámbulo, debido a que el kernel requiere también espacio de
tiempo y CPU para realizar el cambio entre tareas, y dicho lapso debe ser
contabilizado y ha de ser insignificante para la aplicación.
KERNEL NO PREEMTIVO
• En un sistema No preemtivo el kernel no suspende la
ejecución de la tarea actual, sino que las tareas entregan el
control al sistema de forma voluntaria; sin embargo, las
interrupciones pueden quitar el control en cualquier
momento.
• Las ventajas del sistema No preemtivo es que las
interrupciones carecen de preámbulo, debido a que no
tienen que tomar decisión alguna sobre a cuál tarea
entregarle el control, pero la desventaja que el tiempo de
respuesta de las tareas puede ser un poco más lento.
kernel preemtivo
• Un kernel preemtivo es aquel que suspende la tarea
en estado Run y le pasa el control a una de mayor
prioridad. El scheduler en su labor entrega el control
a la tarea de mayor prioridad, esta inicia su
ejecución, pero en algún momento de su ejecución,
sucede una interrupción que genera el cambio de
prioridad o entrega un evento a una tarea de
máxima prioridad, en esta caso se suspende la tarea
a la que se entregó el control y se pasa el control a
esta nueva tarea de máxima prioridad
Las aplicaciones que usan kernel preemtivo tienen más control
y requieren mayor manejo de semáforos, debido a que puede
darse más frecuente el caso que dos (2) tareas traten de usar el
mismo recurso al tiempo.
SISTEMA DE LOOP
CONSECUTIVO/INTERRUPCIÓN
• Llamado el sistema Foreground/Background, es una técnica
bastante usada en sistemas de baja complejidad o de
limitación de procesamiento, debido a que no tiene preámbulo
(overhead) entre cambio de contexto de una tarea a otra.
• Porque se realiza por medio de las instrucciones nativas del
procesador, JSR (jump to subroutine) o CALL, para entregar el
control a una tarea y ponerla en modo Run y RTS (Return From
Subroutine), o RTC (Return From Call), para ponerla en estado
Wait o Ready, y continuar con la ejecución de la siguiente tarea
en la cola.
SISTEMA DE LOOP
CONSECUTIVO/INTERRUPCIÓN

• Consiste en generar un loop infinito en el main y realizar de


forma consecutivo a todas las tareas (background) que el
sistema requiere procesar, las interrupciones generales se
habilitan una vez que los módulo son inicializados, siempre
y cuando no se requiera el suceso de interrupciones en los
módulo de inicialización permitiendo que interrumpan la
ejecución de una tarea; solo se deshabilitan por pequeños
lapsos de tiempo en las zonas críticas del programa
CONCLUSIONES
• Un sistema operativo de tiempo real o RTOS, es un programa que coordina
la operación de otros programas llamados tareas. El uso de estos sistemas
en un proyecto embebido proporciona gran cantidad de ventajas,
especialmente en un equipo de trabajo sin embargo, se debe recordar que al
mismo tiempo es un programa que ocupa recursos, espacio en la memoria
del microcontrolador y toma tiempo para realizar la labores de coordinación.
• Debido a lo anterior, no en todos los proyectos embebidos es recomendable
usar un RTOS como plataforma de programación, en especial cuando se
tienen recursos de velocidad y memoria limitadas, como es el caso de los
procesadores de 8 bits; sinembargo, existen técnicas
( foreground/background ) que aunque no son RTOS en todo el sentido de la
palabra, involucran conceptos de ellos que pueden resolver el problema de
la simultaneidad y la continuidad de una forma aceptable para la aplicación.
BIBLIOGRAFÍA

• Galeano Gustavo. Programación de Sistemas embebidos


en C. Alfaomega. Colección 3b.

También podría gustarte