Sistemas Operativos de tiempo real (RTOS)

Anuncio
Embedded Corner
Sistemas Operativos de tiempo real
(RTOS)
Hector Palacios Pérez (Ingeniero de Aplicaciones)
Sistemas Embebidos
S.A.
[email protected]
¿A qué se denomina Tiempo Real?
¿Cuáles son las características que
debe tener un sistema operativo para
ser considerado como Real-Time? A
continuación les explicamos lo que es
un RTOS y su importancia en los sistemas embebidos.
Los ingenieros suelen utilizar el término real-time para describir tareas
informáticas para las que una respuesta tardía es tan inútil y perjudicial como una respuesta incorrecta.
Se dice que estas tareas tienen un
deadline, es decir, un tiempo límite.
Y los sistemas operativos embebidos
trabajan habitualmente bajo estas
condiciones extremas.
Imagine, por ejemplo, que el
software embebido que controla el
sistema antibloqueo de los frenos de
2
su vehículo se salta uno de sus deadlines. Usted podría verse envuelto
en un accidente ¡e incluso perder la
vida! Por eso resulta de extrema importancia que los ingenieros que diseñan sistemas embebidos de tiempo real conozcan a la perfección la
capacidad de reacción y comportamiento del hardware y el software
que emplean.
Los diseñadores de sistemas de
tiempo real invierten gran parte del
tiempo en estudiar y definir con detalle el rendimiento que se precisa en
el peor de los casos posibles. Constantemente se hacen preguntas del
tipo «¿cuál es el máximo tiempo que
puede pasar desde que el conductor
pisa el freno hasta que la señal de interrupción llega al procesador? En el
caso de máxima latencia de interrup-
ciones, ¿cuál es el tiempo entre la llegada de la señal de interrupción y el
comienzo de la rutina de atención a
la interrupción asociada? ¿Cuál es el
máximo tiempo que puede tardar el
software en activar el mecanismo de
antibloqueo de frenos?» En sistemas
de este tipo, el tiempo medio o esperado son valores simplemente insuficientes.
Características de un
RTOS
La mayor parte de los sistemas
operativos de tiempo real comerciales están diseñados para su utilización en sistemas de tiempo real
como el descrito del ABS. Eso significa que el rendimiento en el peor de
los casos está perfectamente medido
• Marzo 2003
Embedded Corner
y documentado.
Para obtener la etiqueta RTOS
(Real-Time Operating System) un sistema operativo debe cumplir tres
características básicas:
• ser determinista
• garantizar el peor caso de latencia
de interrupciones
• garantizar el peor caso de tiempo
de cambio de contexto
Un sistema operativo se dice que
es determinista cuando se puede calcular cuál es el máximo tiempo que
puede tardar una llamada cualquiera del sistema.
Se llama «latencia de interrupciones» al máximo tiempo que transcurre desde que una señal de interrupción llega al procesador hasta
que se ejecuta su ISR (Interrupt Service Routine) asociada. Las interrupciones son elementos clave de los
RTOS. Cuando una interrupción tiene lugar, el procesador debe realizar
varias tareas antes de ejecutar su ISR
asociada:
En primer lugar debe completar
la instrucción actual. Esto va a llevar
como mínimo un ciclo de reloj, aunque también existen instrucciones
complejas que requieren varios o incluso cientos de ciclos de reloj. Luego, la instrucción debe ser reconocida por el procesador, que comprueba que dicha interrupción está habilitada y su prioridad supera a las de
otras que puedan estar produciéndo-
• Marzo 2003
se. Por último la ISR asociada con la
interrupción es ejecutada.
La tercera característica de un
sistema operativo de tiempo real es
la cantidad de tiempo necesaria para
realizar un cambio de contexto. Se
llama «cambio de contexto» (context
switch o thread switch) al proceso de
cambiar de una tarea a otra. El contexto de una tarea guarda el estado
del procesador justo antes de que
otra tarea tome el control de este.
Por lo general consiste en un puntero a la próxima instrucción que se
debe ejecutar (instruction pointer), la
dirección actual de la parte alta de la
pila (stack pointer) y el contenido de
los registros de propósito general y
los flags de estado.
Por lo tanto el «cambio de contexto» supone guardar el contexto de
la tarea anterior y cargar el contexto
de la nueva tarea. Esta parte de código es específica de cada procesador (está escrita en el código ensamblador concreto de cada micro) y por
lo tanto dependiente en tiempo del
conjunto de instrucciones y la velocidad de este.
Supongamos que el tiempo medio de ejecución de un proceso cualquiera antes de ser bloqueado es de
100 µs. pero que el tiempo de
«cambio de contexto» es también de
100 µs. En ese caso la mitad del
tiempo que emplea el procesador se
pierde en la rutina de cambio de
contexto.
Elegir un RTOS
Para evitar sorpresas de última
hora, cerciórense de que el sistema
operativo que van a utilizar en su sistema embebido les asegura una latencia de interrupciones y un tiempo de
cambio de contexto que se ajusta a las
necesidades de su sistema. Aunque
estos valores puedan considerarse de
tiempo real para algunos sistemas (la
lectura de un código de barras), pueden no ser suficientes para sistemas
más críticos (el disparo del airbag de
un vehículo).
Pero no se equivoque, el hecho
de que un sistema operativo sea de
tiempo real no lo es todo. Además de
las capacidades de tiempo real, usted
puede necesitar otras características
que no todos los RTOS ofrecen: soporte para varias arquitecturas, capacidad multitarea, multiusuario, Stack
TCP/IP, sistema de ficheros, entornos
de desarrollo, compiladores, tamaño
reducido del kernel, depuradores de
código, GUI, drivers...
El tiempo real no es más que una
característica adicional de un sistema
operativo, si bien, una muy importante en los sistemas embebidos, en los
que el interfaz, el almacenamiento de
datos o la capacidad multitarea son a
veces detalles superfluos.
Existen multitud de sistemas operativos comerciales de tiempo real. En
la tabla adjunta presentamos algunos
de los más conocidos. ❏
3
Descargar