RTOS Article

2

Click here to load reader

Transcript of RTOS Article

Page 1: RTOS Article

2 • Marzo 2003

Embedded Corner

Sistemas Operativos de tiempo real(RTOS)Hector Palacios Pérez (Ingeniero de Aplicaciones)

¿A qué se denomina Tiempo Real?¿Cuáles son las características quedebe tener un sistema operativo paraser considerado como Real-Time? Acontinuación les explicamos lo que esun RTOS y su importancia en los sis-temas embebidos.

Los ingenieros suelen utilizar el tér-mino real-time para describir tareasinformáticas para las que una res-puesta tardía es tan inútil y perjudi-cial como una respuesta incorrecta.Se dice que estas tareas tienen undeadline, es decir, un tiempo límite.Y los sistemas operativos embebidostrabajan habitualmente bajo estascondiciones extremas.

Imagine, por ejemplo, que elsoftware embebido que controla elsistema antibloqueo de los frenos de

Sistemas Embebidos

S.A.

[email protected]

su vehículo se salta uno de sus dea-dlines. Usted podría verse envueltoen un accidente ¡e incluso perder lavida! Por eso resulta de extrema im-portancia que los ingenieros que di-señan sistemas embebidos de tiem-po real conozcan a la perfección lacapacidad de reacción y comporta-miento del hardware y el softwareque emplean.

Los diseñadores de sistemas detiempo real invierten gran parte deltiempo en estudiar y definir con de-talle el rendimiento que se precisa enel peor de los casos posibles. Cons-tantemente se hacen preguntas deltipo «¿cuál es el máximo tiempo quepuede pasar desde que el conductorpisa el freno hasta que la señal de in-terrupción llega al procesador? En elcaso de máxima latencia de interrup-

ciones, ¿cuál es el tiempo entre la lle-gada de la señal de interrupción y elcomienzo de la rutina de atención ala interrupción asociada? ¿Cuál es elmáximo tiempo que puede tardar elsoftware en activar el mecanismo deantibloqueo de frenos?» En sistemasde este tipo, el tiempo medio o es-perado son valores simplemente in-suficientes.

Características de unRTOS

La mayor parte de los sistemasoperativos de tiempo real comercia-les están diseñados para su utiliza-ción en sistemas de tiempo realcomo el descrito del ABS. Eso signi-fica que el rendimiento en el peor delos casos está perfectamente medido

Page 2: RTOS Article

• Marzo 2003 3

Embedded Corner

y documentado.Para obtener la etiqueta RTOS

(Real-Time Operating System) un sis-tema operativo debe cumplir trescaracterísticas básicas:• ser determinista• garantizar el peor caso de latenciade interrupciones• garantizar el peor caso de tiempode cambio de contexto

Un sistema operativo se dice quees determinista cuando se puede cal-cular cuál es el máximo tiempo quepuede tardar una llamada cualquie-ra del sistema.

Se llama «latencia de interrup-ciones» al máximo tiempo que trans-curre desde que una señal de inte-rrupción llega al procesador hastaque se ejecuta su ISR (Interrupt Ser-vice Routine) asociada. Las interrup-ciones son elementos clave de losRTOS. Cuando una interrupción tie-ne lugar, el procesador debe realizarvarias tareas antes de ejecutar su ISRasociada:

En primer lugar debe completarla instrucción actual. Esto va a llevarcomo mínimo un ciclo de reloj, aun-que también existen instruccionescomplejas que requieren varios o in-cluso cientos de ciclos de reloj. Lue-go, la instrucción debe ser reconoci-da por el procesador, que comprue-ba que dicha interrupción está habi-litada y su prioridad supera a las deotras que puedan estar produciéndo-

se. Por último la ISR asociada con lainterrupción es ejecutada.

La tercera característica de unsistema operativo de tiempo real esla cantidad de tiempo necesaria pararealizar un cambio de contexto. Sellama «cambio de contexto» (contextswitch o thread switch) al proceso decambiar de una tarea a otra. El con-texto de una tarea guarda el estadodel procesador justo antes de queotra tarea tome el control de este.Por lo general consiste en un punte-ro a la próxima instrucción que sedebe ejecutar (instruction pointer), ladirección actual de la parte alta de lapila (stack pointer) y el contenido delos registros de propósito general ylos flags de estado.

Por lo tanto el «cambio de con-texto» supone guardar el contexto dela tarea anterior y cargar el contextode la nueva tarea. Esta parte de có-digo es específica de cada procesa-dor (está escrita en el código ensam-blador concreto de cada micro) y porlo tanto dependiente en tiempo delconjunto de instrucciones y la velo-cidad de este.

Supongamos que el tiempo me-dio de ejecución de un proceso cual-quiera antes de ser bloqueado es de100 µs. pero que el tiempo de«cambio de contexto» es también de100 µs. En ese caso la mitad deltiempo que emplea el procesador sepierde en la rutina de cambio decontexto.

Elegir un RTOS

Para evitar sorpresas de últimahora, cerciórense de que el sistemaoperativo que van a utilizar en su sis-tema embebido les asegura una laten-cia de interrupciones y un tiempo decambio de contexto que se ajusta a lasnecesidades de su sistema. Aunqueestos valores puedan considerarse detiempo real para algunos sistemas (lalectura de un código de barras), pue-den no ser suficientes para sistemasmás críticos (el disparo del airbag deun vehículo).

Pero no se equivoque, el hechode que un sistema operativo sea detiempo real no lo es todo. Además delas capacidades de tiempo real, ustedpuede necesitar otras característicasque no todos los RTOS ofrecen: sopor-te para varias arquitecturas, capaci-dad multitarea, multiusuario, StackTCP/IP, sistema de ficheros, entornosde desarrollo, compiladores, tamañoreducido del kernel, depuradores decódigo, GUI, drivers...

El tiempo real no es más que unacaracterística adicional de un sistemaoperativo, si bien, una muy importan-te en los sistemas embebidos, en losque el interfaz, el almacenamiento dedatos o la capacidad multitarea son aveces detalles superfluos.

Existen multitud de sistemas ope-rativos comerciales de tiempo real. Enla tabla adjunta presentamos algunosde los más conocidos. ❏