"comprehendere scire est"

Divisor

Consejo Nacional para el Entendimiento Público de la Ciencia.

Un breve acercamiento a los sistemas operativos en tiempo real embebidos


Luis De Jesús Beltrán Sosa + ; Pedro Guevara López + Escuela Superior De Ingeniería Mecánica Y Eléctrica (culhuacán) - Ipn, México

Sistemas Operativos

En [1] se establece que un Sistema Operativo (SO) es un programa que maneja los recursos de una computadora (hardware y software). Un SO lleva a cabo tareas básicas, tales como control y asignación de memoria, dar prioridad a las instrucciones a ejecutarse, control de los dispositivos de entrada y de salida, y algunas otras.
En [2] se clasifican a los SO en:
De tiempo real. Es un SO cuyo objetivo son las aplicaciones en tiempo real. Comúnmente utiliza un planificador de tareas especializado, debido a que las aplicaciones o tareas que maneja tienen prioridades para ejecutarse.
Multiusuario. Es un SO que permite a más de un usuario accesar a una computadora al mismo tiempo. Un ejemplo de este tipo de SO es UNIX.
Distribuido. Un SO de este tipo, maneja varias computadoras pareciendo ser una sola computadora.

Embebido. Son diseñados para operar en dispositivos pequeños con menor autonomía.

Pueden operar con un limitado número de recursos.
Algunos ejemplos de SO son: Android, iOS, Mac OS, Linux, Microsoft Windows.
Sistemas Operativos en Tiempo Real
La principal característica que distingue a los sistemas en tiempo real de otros tipos de sistemas es el tiempo. Un sistema en tiempo real es aquel sistema que interactúa activamente con un entorno con dinámica conocida en relación con sus entradas, salidas y restricciones temporales, para darle un correcto funcionamiento de acuerdo con los conceptos de estabilidad, controlabilidad y alcanzabilidad [3].
De acuerdo con [4] un SO en tiempo real, a diferencia de un SO de propósito general, utiliza técnicas distintas al implantar ciertas funciones básicas:
El cambio de contexto entre tareas debe ser lo más rápido posible, por lo que el código encargado de ello es normalmente muy pequeño.
Permiten manejar particiones de memoria real, no virtual, pues el intercambio de código entre la memoria principal y la secundaria exige esfuerzos adicionales al sistema de procesamiento.
Proveen archivos secuenciales especiales para acumular rápidamente
datos.
Debe implantar algoritmos de planificación de tareas sofisticados.
Son sistemas pequeños que permiten omitir módulos para ajustar la funcionalidad demandada por las aplicaciones a lo indispensable.
Algunos ejemplos de sistemas operativos en tiempo real son: QNX, VxWorks, Lynx, RTLinux, etc.
Sistemas embebidos
Un sistema embebido está oculto dentro de un sistema o ambiente, realizando alguna función específica. La palabra embebido indica que el sistema o dispositivo es parte de otro sistema mayor. El sistema anfitrión puede ser un sistema específico como un auto o un avión [5].
En [6] se muestran algunas definiciones de sistema embebido:
Un sistema embebido es cualquier dispositivo que incluye un computador programable, pero en sí mismo no es un computador de propósito general.
Un sistema embebido es un sistema electrónico que contiene un microprocesador o microcontrolador; sin embargo, no pensamos en ellos como un computador.
Las personas usan el término sistema embebido para referirse a cualquier sistema de cómputo escondido en algún producto o dispositivo.
Un sistema embebido es un sistema cuya función principal no es computacional, pero es controlado por un computador integrado. Este computador puede ser un microcontrolador o un microprocesador. La palabra embebido implica que se encuentra dentro del sistema general, oculto a la vista, y forma parte de un todo de mayores divisiones.
Un sistema embebido es un sistema diseñado para realizar una o algunas pocas funciones específicas. En un sistema embebido la mayoría de los componentes se encuentran incluidos en su placa base. Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o también, utilizando compiladores específicos, pueden utilizarse lenguajes como C o C++ [7].
De acuerdo con [6] los sistemas embebidos poseen ciertas características que los distinguen de otros sistemas de cómputo, a continuación las más importantes:
- Funcionamiento específico. Un sistema embebido usualmente ejecuta un programa específico de manera repetitiva. En contraste, un sistema de escritorio ejecuta una amplia variedad de programas como hojas de cálculo, juegos, etc.
- Fuertes limitaciones. Todos los sistemas de computación poseen limitaciones, pero en los sistemas embebidos son muy fuertes. Los sistemas embebidos generalmente deben ser poco costosos, poseer un tamaño reducido, tener un buen desempeño para procesar datos, y además consumir un mínimo de energía para extender el tiempo de vida de las baterías o prevenir la necesidad de elementos adicionales de enfriamiento.
- Reactivos. Muchos sistemas embebidos deben reaccionar ante cambios en el ambiente, además algunos deben realizar cálculos en tiempo real, es decir tener resultados correctos y a tiempo. Por ejemplo, el módulo de control de viaje de un automóvil continuamente monitorea la velocidad y los sensores de frenos, reaccionando ante cualquier eventualidad. Ante un estímulo anormal, el módulo de control debe realizar los cálculos en forma precisa y en un tiempo determinado para garantizar la entrega de los resultados de manera que no exista un retraso que pueda ocasionar la pérdida de control del automóvil.
Los sistemas embebidos se encuentran en una variedad de dispositivos electrónicos comunes, tales como teléfonos celulares, cámaras digitales, video juegos portátiles, calculadoras, hornos de micro
ondas, máquinas contestadoras, lavadoras, fax, copiadoras, impresoras, scanners, etc [6].
Sistemas Operativos en Tiempo Real Embebidos
Los sistemas embebidos en tiempo real tienen características muy especiles; son usualmente construidos sin un sistema operativo explícito, esto debido a que hay sistemas que no requieren mecanismos complejos o planificación en tiempo real de tareas concurrentes y pueden ser implementados usando un ciclo principal sencillo [6].
Un sistema operativo embebido en tiempo real, no es más que un sistema embebido al que se le instala un SO, el cual es de tiempo real, es decir, el sistema embebido requiere de las características y funciones que un SO le puede otorgar, pero además ejecuta aplicaciones de tiempo real, que son aplicaciones que dan respuestas correctas al medio en el que se encuentran y con restricciones de tiempo que permiten que el sistema funcione de forma correcta.
Caso de estudio: FreeRTOS
El objetivo principal de los SO en tiempo real embebidos deben de tener una política de planificación asegurando que las respuestas que se ofrecerán al mundo real sean correctas y a tiempo. Para esto se les otorga una prioridad a cada tarea, de manera que la tarea que tenga la prioridad más alta será la primera en ejecutarse [8]. En este sentido, FreeRTOS es un sistema operativo en tiempo real para dispositivos embebidos; ha sido diseñado para ser pequeño y simple, el código en su mayoría está escrito en lenguaje C, pero están incluidas algunas funciones en lenguaje ensamblador [8]. Las plataformas en que se puede instalar FreeRTOS son ARM, AVR, AVR32, Freescale ColdFire, HCS12, IA32, MicroBlaze, MSP430, PIC, Renesas H8/S, 8052, STM32 [9].
Algunas de sus características son:
Multitarea. En FreeRTOS una tarea puede tener alguno de los siguientes estados [8]: Running, es el estado de una tarea que se está ejecutando, que está utilizando el procesador. Ready, son las tareas que están listas para ejecutarse (no están bloqueadas ni suspendidas) pero no se están ejecutando porque otra tarea de igual o prioridad mayor está en estado Running. Blocked, se dice que una tarea está bloqueada si está esperando por un evento temporal o externo. Suspended, las tareas suspendidas tampoco están disponibles para programarse. Cada programa que se ejecuta es una tarea bajo el control del SO; si un SO puede ejecutar múltiples tareas de forma simultánea se dice que es multitarea. En este sentido, un procesador convencional sólo puede ejecutar una tarea a la vez, pero con un cambio rápido entre tareas un SO multitarea hace que parezca que se ejecutan simultáneamente [8].
En las figuras a continuación se muestra lo que parece que ocurre (arriba) y lo que realmente sucede (abajo) en los SO multitarea.
Planificador de tiempo real. La figura 5 muestra como algunas tareas son planificadas por un SO de tiempo real. En este ejemplo, el SO crea la tarea 3, la cual se ejecuta sólo cuando no hay alguna otra tarea disponible. La explicación de la figura es la siguiente:
- Al inicio, ninguna de las primeras dos tareas se ejecuta, por lo que los recursos se otorgan a la tarea 3.
- En el tiempo t1, una tecla es presionada, la tarea 2 se ejecutará.

  • - Al tiempo t2, la tarea 2 ha terminado de ejecutarse, al no haber ninguna otra tarea disponible se reanuda la tarea 3.
  • - En el tiempo t3, un temporizador indica que es tiempo de otro ciclo de control, por lo que puede ejecutarse la tarea y debido a que tiene la prioridad más alta se le otorgan los recursos necesarios inmediatamente.
  • - Entre t3 y t4, una tecla es presionada, pero la tarea 2 tiene una prioridad menor que la tarea 1, por lo que tiene que esperar para ejecutarse.
  • - En t4, la tarea 1 termina de ejecutarse y la tarea 2 ya puede ejecutarse.
  • - Entre t5 y t6 se reanuda la tarea 1 debido al temporizador.
  • - En t6 se presiona una tecla por lo que la tarea 2 se reanuda, pero es suspendida en t7 debido al temporizador que llama a la tarea 1 que al tener mayor prioridad debe ejecutarse inmediatamente.
  • - En t8 termina de ejecutarse la tarea 1 y se reanuda la tarea 2 en el punto en que se quedó hasta que termina en t9. Cambio de contexto. Una tarea como un pedazo de código normal, no sabe cuando puede ser suspendida o reanudada por el planificador.

Cuando se suspende una tarea, otras tareas se ejecutarán y pueden modificar los valores de los registros del procesador, por lo que al reanudarse la tarea que fue suspendida no sabrá que los registros fueron alterados y lo más probable es que presente resultados incorrectos [8]. Para prevenir esta situación es esencial que después de ser reanudada, una tarea tenga exactamente el mismo contexto que en el momento en que fue suspendida.

El kernel del SO es el responsable de asegurar esto, al momento de suspender una tarea, guarda el contexto y al ser reanudada lo restaura. Este proceso de guardar y restaura el contexto de una tarea es llamado cambio de contexto [8].
Conclusiones
La búsqueda de dispositivos electrónicos cada vez más pequeños y que realicen un mayor número de funciones se ha ido incrementando. Hace algunos años, los dispositivos que tenían un sistema embebido eran diseñados para realizar una función específica. En la actualidad, estos dispositivos electrónicos se diseñan para realizar más de una función, por lo que es necesario ya no sólo colocarles un sistema embebido, sino que las funciones son manejadas por un SO embebido. Esto, aunado a la necesidad de sistemas que además de ofrecer respuestas correctas, lo hagan en un límite de tiempo, con lo que los SO embebidos pudieran ser Sistemas Operativos en Tiempo Real Embebidos.


Esta clase de sistemas, están dentro de un sistema mayor que ellos, contienen un SO para manejar varias tareas al mismo tiempo (entre otras cosas) y en el que estas tareas ofrecen respuestas que además de ser correctas, lo hacen dentro del límite de tiempo que es requerido por el medio en el que se encuentran.

Acerca de los Autores Ing. Luis de Jesús Beltrán Sosa Ingeniero en Sistemas Digitales y Comunicaciones egresado del Instituto de Ingeniería y Tecnología de la Universidad Autónoma de Ciudad Juárez y estudiante de la Maestría en Ciencias de Ingeniería en Microelectrónica en la Escuela Superior de Ingeniería Mecánica y Eléctrica del Instituto Politécnico Nacional. Sus áreas de interés son Sistemas en Tiempo Real y Sistemas Embebidos. Dr. Pedro Guevara López Doctor y Maestro en Ciencias de la Computación e Ingeniero Electricista, todos del Instituto Politécnico Nacional, Doctor en Filosofía de la Educación Iberoamericana por el Consejo Iberoamericano en Honor a la Calidad Educativa. Es Profesor Investigador de la Escuela Superior de Ingeniería Mecánica y Eléctrica y Profesor Invitado del Centro de Investigación en Ciencia Aplicada y Tecnología Avanzada pertenecientes al Instituto Politécnico Nacional. Sus áreas de investigación son: Sistemas en Tiempo Real, Modelado de Sistemas Dinámicos e Investigación Educativa.

Fuentes.
Cómo citar este artículo ISO690.
Portada Aleph-Zero

Aleph-Zero 63


Revista de Educación y Divulgación de la Ciencia, Tecnología y la Innovación

Matemático rechaza la medalla fields .

Divulgadores. Liz Ramiro + Departamento de Actuaría, Física y Matemáticas, Escuela de Ciencias, Universidad de las Américas Puebla.

Biotecnología: el escalón que utiliza la ganadería de bovinos para alcanzar el mejoramiento genético .

Divulgadores. Francisco Alejandro Paredes Sánchez + Centro De Biotecnología Genómica, Instituto Politécnico Nacional.

Comparativa de sistemas operativos de tiempo real y sistemas operativos de tiempo compartido, para plataforma intel x86 y sus compatibles .

Divulgadores. Alfredo De La Barrera González + ; Diego Alejandro Garnica Arriaga + ; Pedro Guevara Lopez + Escuela Superior De Ingeniería Mecánica Y Eléctrica ( Culhuacán ) - IPN, México.

Spodoptera frugiperda: una plaga que está coevulucionando .

Divulgadores. Elsa Verónica Herrera Mayorga + Centro De Biotecnología Genómica, Instituto Politécnico Nacional, Reynosa, Tamaulipas, México.

Bacillus thuringiensis, el ingrediente activo de bioinsecticidas .

Divulgadores. Isela Madai Alba Moreno Tiss: + Centro de Biotecnología Genómica, Instituto Politécnico Nacional Reynosa, Tamaulipas, México.; .

Fenómenos naturales y paisaje .

Divulgadores. Julio Cesar Morales Hernández + ; Jorge Téllez López + Centro Universitario De La Costa, Universidad De Guadalajara, Puerto Vallarta, Jal.; Fátima Maciel Carrillo González + ; Víctor Manuel Cornejo López + ; Luis Manuel Farfan Molina + Cicese. Centro De Investigación Científica Y Estudios Superiores De Enseanda, Unidad De Meteorología, Cedela Paz, B.c.s..

Actimel vs mortadela con aceitunas .

Divulgadores. Francisco Angulo + .

No. 63 enero - marzo 2012 .

Editorial. Redacción + 3ra Consejería.- Divulgación, Publicaciones y Medios.

Concepción matemática defectuosa y desempeño matemático estudiantil en carreras de ciencias económicas y sociales .

Educadores. Cirilo Orozco Moret + Universidad De Carabobo. Unidad De Investigación En Educación Matemática Uiemat; Jesús Parra Arroyo + Universidad De Carabobo. Unidad De Investigación En Educación Matemática Uiemat.

Un breve acercamiento a los sistemas operativos en tiempo real embebidos .

Tecnólogos. Luis De Jesús Beltrán Sosa + ; Pedro Guevara López + Escuela Superior De Ingeniería Mecánica Y Eléctrica (culhuacán) - Ipn, México.

¿Código malicioso en mi mac? .

Tecnólogos. Jesús Audelo González + ; Pedro Guevara López + ; Gustavo Delgado Reyes + Escuela Superior De Ingeniería Mecánica Y Eléctrica (culhuacan) - Ipn, México.