ilike

http://octavio-razo.blogspot.com/

domingo, 27 de marzo de 2011

1.- Introducción

Dentro de las distribuciones de sistemas operativos de tiempo real, nos fijaremos en aquellas que usan como base el kernel estándar de Linux, en sus distintas versiones, y más en particular en aquellas que se distribuyen bajo la licencia GNU/GPL ya que de estas últimas obtendremos mucha mayor información y será una de estas distribuciones libres las que escojamos para nuestro trabajo.

Primero, se realizará una descripción de las del S.O. y convertir un sistema operativo de propósito general en uno de tiempo real.

Seguido de esto, se hará una introducción a distintas distribuciones de sistemas operativos de tiempo real.

Después, se elegirá una de las distribuciones y se procederá a instalar. Y finalmente se realizará un driver.

2.- Arquitectura de un S.O. de Tiempo Real


2.1.- Arquitectura de un S.O. de Propósito General


La memoria física de una computara esta dividida entre el espacio reservado para los usuarios (“user-space”) y el espacio reservado para el kernel (“kernel-space”). El kernel multitarea maneja múltiples aplicaciones de usuarios haciendo creer a cada uno que dispone de todo el espacio de memoria. La comunicación entre los programas en el espacio de usuario y el espacio del kernel se realiza a través de las llamadas al sistema. Todos los accesos a los recursos hardware son controlados por el kernel.

Las funcionalidades principales de un S.O. de propósito general son:

ü  Gestión de procesos. Planificación de procesos.
ü  Gestión de memoria.
ü  Interactuar con el Hardware.
ü  Servidor de Ficheros.
ü  Servidor de Comunicaciones.

En cambio la funcionalidad principal y requerida para un sistema operativo de tiempo real es proveer de un nivel de servicio adecuado a las aplicaciones que requieran una respuesta en un intervalo de tiempo determinado. Una de las medidas de rendimiento de un Sistema Operativo de Tiempo Real es la latencia, ó tiempo desde que ocurre el evento y éste es tratado. La otra medida es el jitter, ó variaciones en el periodo normal de ocurrencia de eventos periódicos.

2.2.- Clases de tiempo real


Un programa ó un sistema operativo es considerado como de tiempo real, si a pesar de las restricciones de tiempo le permiten trabajar y funcionar correctamente. Se distinguen las siguientes clases:

Ø  Tiempo real estricto (Hard Real Time): Todas las acciones deben ocurrir dentro del plazo especificado.
Ø  Tiempo real flexible (Soft Real Time): Se pueden perder plazos de vez en cuando. El valor de la respuesta decrece con el tiempo.
Ø  Tiempo real firme (Firm Real Time): Se pueden perder plazos ocasionalmente. Una respuesta tardía no tiene valor.

2.3.- Características de rendimiento


El criterio fundamental de evaluación del rendimiento de un sistema operativo de tiempo real es la latencia y el periodo del jitter ante un evento. Un evento es cualquier tipo de interrupción, tanto interna, como externa.

Latencia en un evento

Puede ser tanto una interrupción hardware como una interrupción software. La latencia ante una interrupción hardware es el tiempo desde que se produce la interrupción hasta que se ejecuta la primera instrucción de la rutina de tratamiento. Puede haber retrasos debido al acceso al bus.

La latencia ante una interrupción software es el tiempo desde que la señal es generada hasta que la primera instrucción de la tarea es ejecutada. Aquí el valor depende únicamente del acceso a los registros del procesador.


Periodo del Jitter

El periodo del jitter se refiere a las variaciones en el tiempo que experimenta una tarea cuando se ejecuta de manera repetitiva.

2.4.- Arquitectura de un S.O. de Tiempo Real


El procesamiento de interrupciones en el kernel estándar esta divido en 2 tareas. Una se encarga de leer los datos del dispositivo físico y escribirlos en un buffer, es lo que se conoce como manejador de interrupciones” , y la otra es la que se encarga de pasar los datos del buffer a otro para que sean accesibles por el kernel.

Para reducir la latencia y el jitter se han desarrollado distintas alternativas que modifican el kernel de linux en este aspecto fundamentalmente.
Actualmente hay dos corrientes de diseño:

Atención prioritaria en el kernel estándar (Preemptable kernel)
Esta metodología modifica el kernel en profundidad de forma que los procesos de kernel ejecuten con máxima prioridad





Modificaciones sobre el kernel estándar (Patch)
Hay 4 estrategias de modificación del kernel de Linux para proveer capacidades de tiempo real. Tres de ellas implican añadir un segundo kernel (kernel dual) para manejar las tareas de tiempo real y el cuarto implica modificar directamente el código del kernel para añadir características de tiempo real.




2.5.- Rendimiento de un sistema


Si comparamos por ejemplo el kernel estándar con RTLinux podremos observar claramente como existe gran diferencia tanto en la latencia en las interrupciones como en el jitter, siendo mucho menos para el caso de RTLinux y siempre en el orden de 1 a 10 microsegundos para un Pentium a 100Mhz.

3.- Distribuciones


3.1.- Introducción


Hay alrededor de 30 distribuciones, la mayoría para el sistema operativo Linux y en menor medida para Windows, las que se realizará una breve descripción de su arquitectura, su licencia y el entorno para la cual esta diseñada. Algunas de éstas están en continuo desarrollo y otras por el contrario están un poco estancadas ó definitivamente olvidadas.

3.2.- Clasificación




En el mercado hay tanto distribuciones comerciales y de código abierto, como distribuciones libres. También se observa, que actualmente, las distribuciones libres ADEOS y RTAI son las que están más actualizadas porque están planeando sacar versiones validas para la versión 2.6 del kernel estándar de Linux. El resto ó están muy dejadas ó tardan bastante en sacar nuevas versiones. También se puede observar y se notará más adelante, que las distribuciones GNU/GPL proporcionan más información.

3.3.- Descripción


3.3.1.- ADEOS – Adaptative Domain Environment Operating Systems


Proporciona un entorno flexible para compartir los recursos hardware para múltiples sistemas operativos ó múltiples instancias de un mismo sistema operativo. ADEOS activa múltiples kernels, llamados dominios, que existen simultáneamente sobre el mismo hardware. Ninguno conoce la existencia del resto, pero todos ellos si conocen de la existencia de ADEOS. Un dominio puede ser un Sistema Operativo completo, pero no necesariamente.

Actualmente ADEOS permite compartir las interrupciones hardware. Y cuenta con una licencia: GNU/GPL

La arquitectura de ADEOS es la de kernel dual y más específicamente la llamada Nano-kernel.

Un dominio es un componente software del kernel base al cuál Adeos puede notificar:

ü   Las interrupciones hardware.
ü   Llamadas al sistema de las aplicaciones Linux.
ü   Eventos del sistema lanzados por el kernel de Linux.
ü   Otros eventos que personalicemos nosotros.

ADEOS controla todas las interrupciones, los traps de la CPU y las excepciones del nivel hardware, ya que reprograma el software del manejador.


Ejemplo: Dados los dominios A,B,C donde la prioridad es A>B>C, se puede decir que:
Si A ejecuta, entonces B y C están interrumpidos ó suspendidos.
Si B ejecuta, entonces A esta suspendido y C esta interrumpido ó suspendido.
Si C ejecuta, entonces A y B deben estar suspendidos.

Enlaces:
ADEOS (web oficial distribución) --> http://www.opersys.com/adeos/
ADEOS (web oficial desarrollo) --> https://gna.org/projects/adeos/


3.3.2.- RTAI – Real Time Application Interface


Es una implementación de Linux para tiempo real basada en RTLinux. Añade un pequeño kernel de tiempo real bajo el kernel estándar de linux y trata al kernel de linux como una tarea con la menor prioridad. Cuenta con Licencia: GNU/GPL.

HAL – Hardware Abstraction Layer

Los desarrolladores de RTAI introducen el concepto de Real Time Hardware Abstraction Layer (RTHAL) que es usado para interceptar las interrupciones hardware y procesarlas después. RTHAL es una estructura instalada en el kernel de Linux que reúne los punteros a los datos internos del hardware relacionados en el kernel y las funciones  necesarias por RTAI para operar. El objetivo de RTHAL es minimizar el número de cambios necesarios sobre el código del kernel.

La unidades de planificación de RTAI son las tareas. Siempre hay al menos una tarea Actualmente hay tres tipos de planificadores dependiendo del tipo de máquina:

§  Uniprocesador (UP)
§  Multiprocesador simétrico (SMP)
§  Multi-Uniprocesador (MUP)

Enlaces:
RTAI (web oficial) --> http://www.aero.polimi.it/~rtai/index.html

3.3.3.- RTLinux


RTLinux es un sistema operativo de tiempo real que ejecuta Linux como un thread de menos prioridad que las tareas de tiempo real. Con este diseño, las tareas de tiempo real y los manejadores de interrupciones nunca se ven etrasados por operaciones que no son de tiempo real. El peor caso de tiempo es entre que se detecta la interrupción hardware y el procesador ejecuta la primera instrucción del manejador de la interrupción. Este tiempo es del orden de los 10 microsegundos en la plataforma x86. Licencia: Actualmente hay 2 versiones de RTLinux:

§   RTLinux/Open: Disponible bajo la licencia GPL, pero que ya no se trabaja en ella desde 2001.
§   RTLinux/Pro: Distribución comercial.

RTLinux es un pequeño y rápido S.O. que sigue el estándar POSIX 1003.13: sistema operativo de tiempo real mínimo. Esta es la arquitectura de micro-kernel. Sus características son:

·         Soporte de múltiples arquitecturas y válida para arquitecturas multiprocesador.
·         Gestión de procesos: Planificación, soporte de threads periódicos, amplio rango de prioridades, creación y borrado de threads, etc.
·         Gestión de memoria: No protección de memoria en el kernel y no asignación de memoria de forma dinámica.
·         Comunicación entre procesos: Semáforos, Mutex, control de inversión de prioridades, memoria compartida y FIFO's.
·         Tiempo y relojes: Resolución de nanosegundos. No relojes de usuario. Facilidades para añadir nuevos relojes
·         hardware.
·         Programación de drivers: Se proporcionan funciones de acceso a dispositivos.
·         No proporciona herramientas de calidad de servicio.

 Enlaces
http://www.fsmlabs.com
http://www.rtlinux.com
http://www.rtlinux.org

3.3.4.- ART Linux


ART Linux es una extensión de tiempo real sobre Linux basado en RTLinux y desarrollado por Youichi Ishiwata.
ART Linux es un parche sobre el kernel estándar de Linux pero que actualmente no se distribuye bajo la licencia GPL ya que contiene código desarrollado por Ishiwata en exclusiva. Debido a que Ishiwata trabaja para el gobierno y existe una ley de propiedad intelectual del gobierno.

La arquitectura es similar a la de RTLinux por tanto tienen arquitectura de kernel dual. Sus ventajas de ART Linux:

v  ART Linux permite reusar los drivers de dispositivos existentes en el Linux estándar así como las aplicaciones.
v  Compatibilidad a nivel de fuente de los drivers con el Linux estándar. Es decir si recompilas el driver, puede seguir siendo usado por las tareas de tiempo real.
v  No inversión de prioridades. Se resuelven automáticamente los problemas de inversión de prioridades.
v  Compatibilidad a nivel binario de los programas de usuario con el Linux estándar. No es necesario recompilar los programas con el objetivo de que sean usados por las tareas de tiempo real.
v  Evita indeterminismo en la ejecución de tiempo real debido a las interrupciones ya que trata las interrupciones con una estrategia periódica.
v  Las tareas de tiempo real ejecutan en modo usuario pero privilegiado, de forma que se beneficia de la protección de memoria y por tanto las tareas de tiempo real son seguras y no pueden provocar fallos en el kernel.

Enlaces


3.3.5.- KURT – Kansas University Real Time


KURT junto con UTIME es una extensión al kernel estándar de Linux para proporcionar, bajo demanda, resolución de microsegundos en los relojes y planificación de tiempo real. Su licencia es desconocida.

El kernel estándar de linux ofrece 10ms de resolución en la sincronización.  No suiciente para los S.O. tiempo real.
Enlaces
KURT (web oficial) --> http://www.ittc.ku.edu/kurt/

3.3.6.- Linux/RK – Linux/Resource Kernel


Linux/RK significa Linux / Resource Kernel y consiste en incorporar extensiones de tiempo real a Linux mediante una abstracción llamada recurso kernel. Su licencia es desconocida. Un recurso kernel es un kernel de tiempo real que proporciona el oportuno y garantizado acceso a los recursos del sistema para las aplicaciones que lo requieran.

Actualmente las actividades que soporta Linux/RK son:
·         Reserva de ancho de banda en acceso a los discos.
·         Reserva de ancho de banda de la red.
·         Co-planificación de varios recursos.
·         Integración con Java para tiempo real.
·         Lista de control de recursos.

Enlaces
Página oficial: http://www-2.cs.cmu.edu/afs/cs/project/art-6/www/
Página del Coordinador: http://www-2.cs.cmu.edu/~rajkumar/linux-rk.html

3.3.7.- Qlinux


Qlinux es un kernel de Linux que proporciona calidad de servicio garantizada para requerimientos de tiempo real flexible. Por tanto no es un sistema operativo específico de tiempo real, sino que esta orientado hacia aplicaciones multimedia que requieren una determinada calidad de servicio. Su licencia es GNU/GPL. Usa una arquitectura precursora a la de “kernel preemptable”, pero en este caso no solo aplicada al acceso de la CPU sino que también aplicada al acceso a la red y al disco.

Enlaces
Página oficial: http://lass.cs.umass.edu/software/qlinux/

3.3.8.- RED-Linux


RED-Linux es una versión de Linux para tiempo real y embebida. Proporciona capacidades adicionales al kernel
estándar de Linux para proporcionar comportamiento de tiempo real. Con licencia desconosida.

RED-Linux soporta un pequeño nucleo. Su respuesta a las tareas es rápida, y tiene una modularidad y planificación del CPU reemplazable en tiempo de ejecución.

Enlaces
RED-Linux (Web oficial) [No funciona]: http://linux.ece.uci.edu/RED-Linux/index.html




3.3.9.- BlueCat RT


BlueCat RT es una versión de Linux para tiempo real y embebida. Es una solución híbrida entre el sistema operativo embebido BlueCat (LinuxWorks) y el sistema RTLinux/Pro (FSMLabs). Su licencia es Comercial. Open source
Algunas de sus ventajas son:

Asegura el manejo de interrupciones con tiempo crítico y otras operaciones hardware de bajo nivel para implementar el kernel de Linux como un thread pequeño. Este mini sistema operativo de tiempo real  aptura las interrupciones y otras funcionalidades de bajo nivel.
Los dos sistemas operativos forman una solución híbrida que ejecuta en un solo procesador.
Incluye un API de tiempo real compatible con POSIX y con IEEE 1003.13.
Basado en estándares abiertos y en código abierto, lo que facilita la migración de aplicaciones hacia BlueCat RT.

Es una distribución estable porque se basa en un sistema operativo embebido con cierto grado de comercialidad y
por tanto se diseña para que sea flexible, escalable y con productividad inmediata. Mientras que su soporte es de un completo rango de configuraciones.

Enlaces
BlueCat RT: http://www.lynuxworks.com/products/bluecat-rt/bluecat-rt.php3
http://www.bluecat.com/
http://www.lynuxworks.com/

3.3.10.- RedHawk


Es una versión de tiempo real del código abierto de Linux desarrollada por la empresa Concurrent Computer
Corporation's RedHawk bajo los estándares industriales y POSIX. RedHawk es compatible con la distribución Red Hat Linux proporcionando alto rendimiento de entrada/salida, tiempo de respuesta garantizado a evento externos y
comunicación entre procesos optimizada. RedHawk es ideal para ambientes con complejas aplicaciones de tiempo real como pueden ser la simulación, la adquisición de datos ó los sistemas de control industrial. Su licecia es comercial,

Características
·         Ambiente completo de desarrollo. Ofrece un conjunto completo de herramientas de desarrollo, desde
·         compiladores a debuggers y herramientas que muestran la traza de ejecución.
·         SMP escalable y protección de procesador.
·         Multithread y kernel prioritario.
·         Planificador basado en la frecuencia.
·         Reloj de tiempo real y módulo de interrupciones.
·         Herramientas de desarrollo de aplicaciones de tiempo real.
·         Depurador de código fuente.
·         Analizador de eventos mediante traza de código.
·         Simulador de un planificador.
·         Monitor de datos de prueba.

Enlaces
RedHawk (web oficial): http://www.ccur.com/isd_solutions_redhawklinux.asp?o9=1
Artículo: http://www.linuxdevices.com/products/PD3887955999.html

3.3.11.- REDICE-Linux


REDICE-Linux es un kernel de tiempo real que combina la planificación de tiempo real estricto y un kernel prioritario con la baja latencia de un completo kernel de tiempo real estricto como es el de RTAI. Es decir, combina ambas tecnologías de diseño de sistemas operativos de tiempo real. Con una licencia: Libre de Royalties. Open Source. Soporte es de pago.

Esta diseñada con una arquitectura dual, por una parte utiliza la arquitectura de microkernel, es decir tiene un
segundo kernel, que es el de RTAI, y por la otra, modifica el kernel estándar de Linux para que se convierta en
“kernel preemptable”. Sus ventajas son:

Ahorro de dinero.
Fiabilidad.
Pronosticable.
Sensibilidad.

Enlaces

REDSonic (Web oficial): http://www.redsonic.com/products/redice.htm

3.3.12.- TimeSys Linux


TimeSys Linux es más que una distribución de un kernel de tiempo real, es un conjunto completo de herramientas para el desarrollo de aplicaciones de tiempo real de forma cómoda y rápida. Es una distribución para sistemas embebidos. Con una licencia Comercial, menos algunos elementos que se distribuyen bajo la licencia GNU/GPL.

TimeSys Linux se basa en la arquitectura de “kernel preemptable” para proporcionar rendimiento predecible y
latencia limitada.En el peor de los casos, tiempo de respuesta de 100 microsegundos. Soporte en el mismo sistema, de tiempo real estricto y tiempo real flexible. También  tiene soporte para aplicaciones Linux estándar y con interfaces POSIX, así como relojes con resolución de microsegundos (dependiendo del hardware). Sus ventajas:

Flexibilidad, fiabilidad y fuerza del código abierto de Linux.
Mejor control sobre el rendimiento de las.
Mejora las aplicaciones embebidas actuales.
Soporte empotrado para el desarrollo de aplicaciones tanto en ordenadores Linux como Windows.
Escalabilidad para futuros requerimientos de rendimiento.

Enlaces
TimeSys (Página principal): http://www.timesys.com/

3.3.13.- Linux-SRT


Linux-SRT es una extensión al kernel de Linux que inició el camino hacia la ejecución de aplicaciones de tiempo real. El kernel estándar de Linux no era un sistema operativo multimedia, no garantizaba que el audio, el vídeo u otro proceso crítico ejecutará con una transferencia fijada, por eso nació este proyecto con el objetivo de crear un sistema operativo multimedia que proporcionara una calidad de servicio determinada, pero no estricta, de ahí el nombre, Linux-SRT (soft real time). No es adecuado para sistemas críticos. Este proyecto se ha abandonado actualmente debido al laborioso proceso de modificación del kernel. Con licencia  GNU/GPL

El paquete correspondiente al planificador permite especificar términos de calidad de servicio, como por ejemplo el uso de un determinado porcentaje máximo a cada tarea de tiempo real. Esto es útil por ejemplo para grabar cd´s ó escuchar mp3's sin interrupción. La asignación de CPU a una tarea no es el único factor que afecta a la velocidad de las aplicaciones, también lo es el servidor X, por eso se modifica para priorizar la renderización de gráficos en función de los parámetros de planificación de cada cliente X. y para el interfaz de usuario le permite la configuración de parámetros de planificación.

Enlaces

4.- Elección de distribución/es


4.1.- Manuales de Instalación


Ø   http://gayuba1.datsi.fi.upm.es/~dlopez/cache/doc/choosing_an_rtos.pdf
Ø   http://gayuba1.datsi.fi.upm.es/~dlopez/cache/doc/embedded.linux.distro.pdf
Ø   http://gayuba1.datsi.fi.upm.es/~dlopez/cache/doc/selection_of_rt_linux.doc

5.- Driver sobre la distribución elegida


Consultando en las siguientes páginas y sus foros:

http://www.aero.polimi.it/~rtai/index.html (Programación en RTAI)
http://www.beyondlogic.org/ (Descripción del puerto paralelo)

5.1.- Descripción del hardware

5.1.1.- Introducción


El objetivo del módulo de entrada/salida es poder conectar un PC con diferentes tipos de dispositivos, los cuáles aceptan dos valores (activado y reposo).

Debido a que el número de líneas que el PC posee tanto de salida, como sobre todo de entrada, es limitado, se limita el número de elementos que podríamos conectar de forma directa al puerto paralelo (por ejemplo tendríamos 8 líneas de salida para el bus de datos). Para aumentar el número de elementos que se pueden controlar se recurre a la  multiplexación, tanto de las entradas como de las salidas. Esto conlleva a reducir la frecuencia máxima con la que se podría cerrar un lazo de control. El número de entradas/salidas elegido se ha fijado en 32 entradas y 32 salidas, lo que permite una frecuencia máxima de 400 Hz.

6.- diferencias entre los S.O normales y S.O en tiempo real

6.1 SISTEMAS OPERATIVOS CONVENCIONALES

·         Conveniencia. Un Sistema Operativo  hace  más conveniente el uso  de una computadora.
·         Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
·         Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo,   o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
·         Encargado de administrar el hardware. El Sistema Operativo se encarga de   de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
·         Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
·         Organizar datos para acceso rápido y seguro.
·         Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
·         Procesamiento por bytes de flujo a través del bus de datos.
·         Facilitar la  s   y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso  y   de los dispositivos de Entrada/Salida de la computadora.
·         Técnicas  de   de errores.
·         Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.
·         Generación de estadísticas.
·         Permite que se puedan compartir el hardware y los datos entre los usuarios.

6.2.- Sistemas Operativos en tiempo real.

·       Determinista si realiza las operaciones en instantes fijos y predeterminados o en intervalos de tiempos predeterminados.
·       Sensibilidad. se refiere a cuanto tiempo consume un sistema operativo en dar servicio a la interrupción después de reconocerla.
1- La cantidad de tiempo necesario para iniciar la gestión de la interrupción y comenzar la ejecución de su rutina de tratamiento (ISR, interrupt service routine).
2- La cantidad de tiempo necesario para ejecutar la ISR. Generalmente, depende de la plataforma del hardware.
3- El efecto del tratamiento de interrupciones. El servicio se retrasara si una ISR puede ser interrumpida por la llegada de otra interrupción.
·         Fiabilidad es normalmente mucho mas importante en sistemas en tiempo real que en los que no lo son. Un fallo transitorio en un sistema que no sea en tiempo real puede resolverse simplemente volviendo a reiniciar el sistema. Un fallo de un procesador en un multiprocesador que no sea en tiempo real produce una reducción del nivel de servicio hasta que se repara o sustituye el procesador averiado. Pero un sistema en tiempo real responde y controla sucesos en tiempo real. Las perdidas o degradaciones del rendimiento pueden tener consecuencias catastróficas, que pueden ir desde perdida financieras hasta daños en equipo e incluso perdida de vidas humanas.

·       Tolerancia a los fallos es una característica que hace referencia a la capacidad de un sistema de conservar la máxima capacidad y los máximos datos posibles en caso de fallos por Un aspecto importante a la tolerancia a los fallos es la estabilidad. Un sistema en tiempo real si, en los casos en los que es imposible cumplir todos los plazos de ejecución de las tareas, el sistema cumple los plazos de las tareas mas criticas y de mayor prioridad, incluso si no se cumple los de alguna tarea menos critica.
Para cumplir los requisitos anteriores los sistemas operativos actuales en tiempo real incluyen normalmente las siguientes características:

ü      Cambios rápidos de procesos o hilos.
ü      Pequeño tamaño (con una mínima funcionalidad asociada).
ü      Capacidad de responder rápidamente a interrupciones externas.
ü      Multitarea con herramientas de comunicación entre procesos, como semáforos, señales y sucesos.
ü      Uso de archivos secuénciales especiales que puedan acumular datos a alta velocidad.
ü      Planificación preferente basadas en prioridades.
ü      Reducción de intervalos en los que están inhabilitadas las interrupciones.
ü      Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y reanudarlas.
ü      Alarmas  especiales y temporizadores.

6.3.- Diferencia entre los dos tipos de Sistemas Operativos

La gran diferencia es que en los sistemas de tiempo real se maneja el tiempo, es decir, esos sistemas trabajan al instante y un error sale caro, puede ser desde perdidas económicas, o perdidas humanas, mientras que los sistemas cotidianos si se llega a trabar solo se reinicia el sistema y a empezar de nuevo, también el sistema cotidiano tiene mucho menos trato de errores o/u problemas que presenten al momento.

7.- Lenguajes de Programación en tiempo real.