Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
http://www.eng.auburn.edu/~baskiyar
Un sistema operativo en tiempo real (RTOS) es compatible con las aplicaciones que deben cumplir con los plazos, además de proporcionar
resultados lógicamente correctas. Este artículo revisa los pre-requisitos para un RTOS para ser compatible con POSIX 1003.1b y se analiza la
gestión de memoria y la programación en RTOS. Hacemos un estudio de los prominentes pasos comerciales y de investigación RTOSs y el
esquema de implementación del sistema con un RTOS. Seleccionamos un RTOS comerciales populares dentro de cada categoría de aplicaciones
en tiempo real y se discuten sus características en tiempo real. También se presenta una comparación de la RTOSs comercial. También se discute
los resultados de la encuesta y sugerir futuras líneas de investigación en el campo de la RTOS. Povzetek: Podan je pregled operacijskih sistemov v
realnem času.
despacho y la comunicación inter-tarea. En los sistemas integrados, generalmente tarea para liberar un recurso ya su vez la tarea de prioridad más baja está a
el núcleo puede servir como un RTOS mientras RTOSs comerciales como los que la espera en una tarea de prioridad media. Dos soluciones en el trato con la
se utilizan para los sistemas de control de tráfico aéreo requieren todas las inversión de prioridades, los protocolos de la herencia y la prioridad de
funcionalidades de un sistema operativo de propósito general. En esta sección, se techo concretamente, prioridad (PCP), necesitan suficientes niveles de
han abordado los requisitos básicos de un RTOS requisitos de cumplimiento y prioridad. En un mecanismo de herencia de prioridad, una tarea de bloquear
POSIX.
una tarea de mayor prioridad hereda la prioridad más alta para la duración
de la tarea bloqueada. En PCP una prioridad está asociada con cada
recurso que es uno más que la prioridad de su más alta usuario prioridad. El
2.1 Requerimientos básicos programador hace que la prioridad de la tarea que accede igual a la del
Los siguientes son los requisitos básicos de un RTOS: (i) Multitarea y recurso. Después de una tarea libera un recurso, su prioridad es devuelto a
su valor original. Sin embargo, cuando la prioridad de una tarea se
apropiable: Para soportar múltiples
incrementa acceder a un recurso no debería haber estado esperando en
tareas en aplicaciones en tiempo real, un RTOS deben ser multitarea y
otro recurso. (V) latencias predefinidos: El momento de las llamadas al
apropiable. El planificador debe ser capaz de anticiparse a cualquier
sistema
tarea en el sistema y dar el recurso a la tarea que más lo necesita. Un
RTOS también debe manejar múltiples niveles de interrupciones para
manejar múltiples niveles de prioridad. (Ii) Dinámica identificación plazo: Con
el fin de lograr
debe definirse usando las siguientes especificaciones:
de preferencia, un RTOS debe ser capaz de identificar de forma • latencia de conmutación de tareas o el tiempo para salvar el contexto
dinámica la tarea con la fecha más temprana. Para manejar los plazos, de una tarea que se está ejecutando y cambiar a otra.
requieren mecanismos de comunicación entre las tareas de a la siguiente tarea programada para ejecutarse.
por lo tanto la degradación del rendimiento es nivel de usuario I / O, un RTOS empotrados debe apoyar la entrega de
posible. Molesky, Shen, y Zlokapa [12] han propuesto el Teorema interrupciones externas de un dispositivo de E / S a un proceso de una
autobús diferida para unir el tiempo de espera en un semáforo en función manera predecible y eficiente.
round robin y la prioridad basan programación preventiva. puede ser posible en algunos casos. la programación
literatura es enorme y se remite al lector a [15] para una discusión
detallada.
• temporizadores: temporizadores mejorar funcionalidad y
determinismo del sistema [9]. La programación de tareas puede ser cualquiera realizada
preventivamente o no de forma preventiva y, o bien estática o dinámicamente.
• Comunicación entre procesos (IPC): Los métodos comunes de
Para aplicaciones pequeñas, la ejecución de tareas
comunicación RTOS incluyen buzones y colas.
veces pueden estimarse antes de la ejecución y las programaciones de
tareas preliminares determinan estáticamente. Dos limitaciones comunes
• archivos en tiempo real: La capacidad de crear y acceder a archivos con un en la programación son las necesidades de recursos y la prioridad de
rendimiento determinista. ejecución de las tareas. Los parámetros típicos asociados con tareas son:
• gastos de envío
3 gestión de memoria y
• Hora de llegada
programación • Período (para tareas periódicas). El objetivo de la
Esta sección aborda las cuestiones importantes de la gestión de memoria y la programación es minimizar o maximizar ciertos objetivos. objetivos típicos
programación de un RTOS. minimizadas son: horario de longitud,
promedio tardanza o laxitud.
Alternativamente, maximizando promedio precocidad y número de llegadas que
3.1 Gestión de la memoria
cumplen los plazos pueden ser objetivos. En [15] enfoques de programación se
Un RTOS utiliza tamaño de memoria pequeño incluyendo sólo la
han clasificado en: enfoque impulsado tabla estática, prioridad estática
funcionalidad necesaria para una aplicación durante la descartando el
impulsado enfoque preventivo, enfoque basado en una planificación dinámica,
resto [22]. A continuación se discuten gestión de memoria estática y
mejor enfoque esfuerzo dinámico, programación con tolerancia a fallos y la
dinámica RTOSs.
recuperación de recursos. Se discuten brevemente los enfoques de abajo.
gestión de memoria estática proporciona tareas con el espacio temporal de
datos. memoria libre del sistema se divide en un conjunto de bloques de memoria
de tamaño fijo, que puede ser solicitado por las tareas. Cuando termina una tarea
(yo) impulsado tabla estática: La viabilidad y el horario
utilizando un bloque de memoria que debe volver a la piscina. Otra forma de
se determinan estáticamente. Un ejemplo común es el ejecutivo
proporcionar un espacio temporal para tareas es a través de prioridades. Una
cíclico, que también se utiliza en muchos sistemas dinámicos a
piscina de la memoria está dedicado a las tareas de alta prioridad y otra a tareas de
gran escala en tiempo real [2]. Se asigna tareas a intervalos de
baja prioridad. La piscina de alta prioridad está dimensionada para tener la
tiempo periódicos. Dentro de cada período, las tareas se
demanda de memoria peor de los casos del sistema. La piscina de baja prioridad
distribuyen de acuerdo a una tabla que enumera el fin de ejecutar
se le da la memoria libre restante. Si las tareas de baja prioridad agotan la piscina
las tareas. Para las tareas periódicas, existe un calendario
memoria baja prioridad, tienen que esperar a que la memoria sea devuelto a la
factible si y sólo si existe un cronograma factible dentro del
piscina antes de continuar su ejecución [1].
mínimo común múltiplo de los períodos. Una desventaja de este
enfoque es que un conocimiento a priori de los requisitos
máximos de tareas en cada ciclo es necesario. (Ii) prioridad
gestión de memoria dinámica emplea intercambio de memoria,
estática impulsado preventiva: La viabilidad
superposiciones, multiprogramación con un número fijo de tareas (MFT),
multiprogramación con un número variable de tareas (MVT) y la paginación bajo
demanda. Superposiciones permiten que los programas más grandes que la
análisis se lleva a cabo de forma estática. Las tareas son
memoria disponible para ser ejecutadas por dividir el código y el canje de ellos
despachada dinámicamente basándose en las prioridades. La
desde el disco a la memoria. En MFT, un número fijo de partes de código
prioridad estática más utilizado impulsado algoritmo de
ecualizadas están en la memoria al mismo tiempo. Según sea necesario, las
planificación preventiva para tareas periódicas es el algoritmo de
partes se superponen desde el disco. MVT es similar a la MFT excepto que el
programación de velocidad monótona (RM) [8]. Un sistema
tamaño de la partición depende de las necesidades del programa de MVT.
periódico debe responder con una salida antes de la próxima
sistemas de paginación bajo demanda han fijado páginas de tamaño que residen
entrada. Por lo tanto, el sistema de tiempo de respuesta debe ser
en la memoria no contigua, a diferencia de los de MFT y MVT [7]. En muchos
más corto que el tiempo mínimo entre las entradas sucesivas. RM
sistemas embebidos, los programas del núcleo y de las aplicaciones se ejecutan
asigna prioridades proporcionales a la frecuencia de las tareas.
en el mismo espacio, es decir, no hay protección de memoria.
En esta sección, describimos brevemente la programación de algoritmos de prioridades. Además, el establecimiento de prioridades de inversión se
empleados en los sistemas operativos en tiempo real. Observamos que la puede producir al hacer cumplir tasa de monotonicidad, una tarea no
previsibilidad requiere primitivas del sistema operativo acotadas. Un análisis de crítica de la mayor frecuencia de ejecución es
viabilidad de la programación
236 Informatica 29 ( 2005) 233-240 S. Beskiyar et al.
asignado una prioridad más alta que una tarea crítica de menor exclusión. Estas partes están optimizados, hecho como determinista
frecuencia de ejecución. (Iii) la planificación dinámica basada en: La como sea posible.
viabilidad
• priorizado la programación: Para compatibilidad POSIX, todos ofrecen
análisis se lleva a cabo dinámicamente una tarea de llegar es
RTOSs al menos 32 niveles de prioridad. El número de niveles de prioridad
aceptada para la ejecución sólo cuando sea factible.
van de 32-512.
El análisis de viabilidad es también una fuente para
• control de la inversión de prioridad: Un medio de inversión de prioridades
los horarios. La realización de esta misión se garantiza mediante el
manipulación.
conocimiento de su tiempo y las faltas de ejecución del peor caso en el
sistema. Las tareas son • apoyo a la gestión de la memoria: Apoyo a la gestión de memoria
enviados a los sitios por la intermediación de los recursos de una virtual existe, pero no necesariamente paginación. Los usuarios se
forma centralizada oa través de ofertas. Una técnica que utiliza tanto les ofrece opciones entre múltiples niveles de protección de
centralizada y hacer una oferta-enfoque realiza marginalmente mejor memoria.
que cualquiera de ellos, pero es más compleja [15]. (Iv) máximo
esfuerzo dinámico: 4.1 windows CE
Aquí no
Windows CE [ 13] es un portátil sistema operativo embebido en tiempo real modular
verificación de plausibilidad se realiza. Se hace un mayor esfuerzo para
para la pequeña memoria, dispositivos de 32 bits móviles.
cumplir con los plazos y las tareas puede ser abortado. Sin embargo,
windows CE tiempo rebanadas CPU entre hilos y proporciona 256 niveles de prioridad.
los enfoques de la fecha más temprana para Primera (FED) y el mínimo
Para optimizar el rendimiento, todas las discusiones están habilitadas para funcionar
laxitud primero (MLF) suelen ser óptima cuando no hay sobrecargas.
en modo de núcleo. windows CE kernel tiene las siguientes características:
La investigación sobre las condiciones de sobrecarga está todavía en
su infancia. Fecha más temprana primero (FED) de programación
• Durante la ejecución de código no preferente en el núcleo, tampón
puede programar sistemas de tiempo real, tanto estáticas como
look-aside traducción ( TLB) Se evitan fallos moviendo todos los
dinámicas. Análisis de viabilidad para EDF se puede realizar en En 2) tiempo,
datos del núcleo en la memoria física.
donde
En los sistemas de tiempo real, dependientes de dispositivo. El fabricante del equipo puede
peor de los casos de bloqueo debe ser minimizado para tolerancia a fallos.
especificar los módulos y procesos fiables para impedir que las
4 RTOSs comercial de despacho, y sincronizar las tareas. Otros servicios ofrecidos por los módulos de
servicios del núcleo de peso ligero, son TCP / IP arroyos, sistemas de E / S y de
En esta sección, seleccionamos un destacado RTOS comerciales para cada clase
archivo, tomas de corriente, etc. En respuesta a una interrupción, el kernel envía un
de aplicaciones en tiempo real y se discuten sus características. Para los
núcleo
dispositivos de memoria pequeña windows CE se ha discutido, para sistemas de
hilo, que puede ser
tiempo real, LynxOS, para aplicaciones embebidas VxWorks, Jbed para la
priorizado y programada similar a otros hilos. La prioridad de la interrupción del
plataforma Java y de pSOS para un sistema operativo orientado a objetos. Pero
hilo de manipulación kernel es la prioridad del subproceso de usuario que
en primer lugar, se indican las capacidades comunes de estos sistemas
maneja el dispositivo de interrupción. Este mecanismo garantiza respuesta
operativos.
predecible incluso en presencia de pesada I / O. El sistema operativo depende
de la unidad de gestión de memoria de hardware para la protección de
• Eficiencia: La mayoría de RTOSs son micro-granos con baja sobrecarga. En memoria, pero ofrece la paginación bajo demanda opcional.
algunos, casi no hay cambio de contexto se incurre en gastos indirectos en el Eso
envío de un mensaje al proveedor de servicio del sistema. utiliza políticas de planificación FIFO como prioridad, fecha límite
programación dinámica monótona, tiempo compartido, etc.
• sistema no apropiable llama: Ciertas porciones de llamadas de sistema Tiene 512 niveles de prioridad y es compatible con la operación remota.
VxWorks [21] es un RTOS ampliamente adoptado en el embebido En esta sección, describimos características en tiempo real de dos sistemas
industria con una visual desarrollo operativos de propósito general populares: Windows NT y Unix, la Tabla 1
ambiente. Es escalable, con más de 1.800 APIs y está disponible en muestra una comparación 1.
plataformas de CPU populares. Ofrece soporte de red, sistema de
archivos y gestión de E / S. El núcleo micro- admite 256 niveles de windows nativo
característica en tiempo real
prioridad, la multitarea, el cambio de contexto determinista y NT Unix
programación robin preventivo y redondo,
, Multitarea preventiva basada en la Sí Sí
semáforos y mutua prioridad
exclusión con herencia. TCP, UDP, tomas de corriente y los servicios de red
hilos de interrupción diferidos Sí No
estándar de Berkeley pueden ser escalados dentro o fuera de la pila de red
según sea necesario. Se puede configurar para que cada tarea tiene una prioridades no degradantes Sí No
memoria virtual privada bajo petición. Los bloqueos de memoria Sí Sí
Para un transporte un paquete de compatibilidad Junta interactúa
con la capa dependiente del hardware. Tabla 1. características en tiempo real de Windows NT y Unix
Jbed [ 6] es un sistema operativo de tiempo real para sistemas embebidos. tiempo real Unix también permite que los puntos de derecho de prioridad dentro
Es compatible con las aplicaciones y los controladores de dispositivos de las llamadas al sistema.
Jbed La luz es una versión más pequeña para aplicaciones rápidas y precompilados.
• prioridades no degradantes: Para asegurar la imparcialidad, el sistema
Contiene los componentes básicos tales como la máquina virtual núcleo, un pequeño
manipula continuamente prioridades de los hilos en Unix y Windows NT. Sin
conjunto de bibliotecas estándar de Java, y el Jbed bibliotecas necesarias para acceder
embargo, Windows NT proporciona una banda de prioridades de interrupción
directamente a los periféricos.
que no pueden ser alterados. En consecuencia, existen dos tipos de
Las llamadas máquinas virtuales Java son
prioridades de los hilos: una clase en tiempo real y una clase dinámica. las
implementado en el kernel. Esto evita la necesidad de una interfaz nativa de
Java lenta, se necesita otra manera de hacer llamadas al sistema. Las discusiones de clase en tiempo real funcionan con prioridades fijas que no se
versiones actuales apoyan ARM7, 68k y las arquitecturas PowerPC. alteran por el núcleo. Hay 16 niveles de prioridad en la clase en tiempo real.
Sin embargo, cualquier hilo dado se limita sólo a un subconjunto de
prioridades en el intervalo de (+ o -) 2 niveles de su prioridad inicial, pero no
más allá del conjunto de prioridades de su clase. Aunque Windows NT
4.5 de pSOS
proporciona tiempos de respuesta rápidos, que no es tan determinista como
Los objetos, en de pSOS orientados a objetos, incluyen tareas, las regiones de
un RTOS duro [11] debido a las llamadas a procedimiento diferido. Desde
memoria, colas de mensajes y semáforos. Eso
subprocesos de usuario tienen prioridad más baja que DPC o ISR, ratón y
horarios tareas de prioridad preventiva impulsada o FED y se ocupa de la inversión de
teclado manipuladores pueden adelantarse procesos urgentes. También, DPC
prioridades tanto por la herencia de prioridad y el protocolo de prioridades techo. El
no se apropiado por otros DPC / hilos. Por otra parte, el desarrollador no tiene
desarrollador de aplicaciones tiene el control total sobre la gestión de interrupciones.
control sobre los conductores de terceros.
tareas del usuario también pueden funcionar en el modo de supervisión. Los
controladores de dispositivos pueden ser cargados dinámicamente. Una región de
memoria es un bloque contiguo de memoria física, creado en respuesta a una llamada
desde una aplicación. de pSOS asigna regiones de memoria a las tareas. Como otros
Desde núcleo de Windows NT no admite la herencia de prioridad, pueden
objetos, una región de memoria puede ser local o global.
producirse bloqueos. No es compatible con la puesta en cola prioritaria para la
comunicación entre hilos. En otras palabras, si varios subprocesos están
bloqueados a la espera de un recurso, que tendrán acceso en lugar de FIFO
orden de prioridad a diferencia de un RTOS.
4.7 Otro RTOS comercial programadores para predefinir grupos e imponen limitaciones de tiempo y de
precedencia sobre ellos. Es compatible tanto
La Tabla 2 enumera otra RTOSs comercial común y sus características
grupos de multidifusión síncrona y asíncrona. logra
principales con respecto a los requisitos básicos de un RTOS discutidos en la
previsible nivel bajo repartido
Sección 2. Todos los productos abajo utilizan un esquema FIFO priorizado para la
la comunicación a través de memoria replicado a nivel mundial. Proporciona
programación.
abstracciones de reserva, la planificación y de extremo a extremo sincronización de la
4.8 núcleos de investigación ayuda. Una comparación de las características de Arx, esmeraldas y
Arx para proporcionar una visión general del alcance y el tipo de investigación en básicas de POSIX 1003.1 b. Sin embargo, la característica de archivos en tiempo real
curso en el campo de la RTOS. Otros núcleos de investigación prominentes no se ha incorporado en cualquiera de los núcleos de investigación anteriores.
fecha límite monotónica u otro esquema de prioridad fija. Es compatible con 32 RTOS puede ayudar a reducir el costo y el tiempo de comercialización. Si una
bits prioridades por parte de no-hilo único establecimiento de la prioridad de un aplicación tiene requisitos de tiempo real, un RTOS proporciona un marco
hilo a su fecha límite, EDF programación se puede lograr. La prioridad se puede determinista para el desarrollo de código y portabilidad. Para satisfacer las
necesidades de las aplicaciones multimedia comerciales, el tamaño del código de
modificar de forma dinámica a través de una llamada del sistema para apoyar la
bajo y es necesaria la integración periférica alta. La fiabilidad de los sistemas
planificación dinámica FED. Los mecanismos IPC se comparten memoria y el
complejos en tiempo real se puede lograr utilizando las especificaciones de varios
paso de mensajes a través de los buzones de correo. Una de las prioridades de
niveles que verifican la exactitud de los sistemas en tiempo de compilación y
32 bits se asigna a cada mensaje que se puede utilizar para ordenarlos para
tiempo de ejecución.
recuperar el mensaje de mayor prioridad en primer lugar. Arx [16] emplea hilos de
nivel de usuario para la programación, la comunicación y multihilo. Consiste en las
discusiones virtuales y una la programación de eventos llamada ascendente mecanismo.
6 referencias
Virtual
[1] Bola SR, Embedded sistemas de microprocesadores: Diseño del
mundo real, Tercera edición, Newnes, 2002. [2] GD Carlow,
“Arquitectura del Sistema de traslado software de aviónica Primaria
espacio”, CACM, v 27, no. 9, 1984. [3] H.Gomaa, Software de Diseño
Los métodos para sistemas concurrentes y en tiempo real, Primera
edición, Addison-Wesley, 1993. [4] S.Heath, Embedded Systems
hilos proporcionan un entorno de ejecución de nivel de núcleo para
Design, Segunda edición, Newnes, 2002. [5] Operativo IEEE
subprocesos de usuario. Ellos son entidades pasivas que están obligados
Tecnología de la Información-portátil
temporalmente a las discusiones a nivel de usuario cuando sea necesario. los la
la expiración del temporizador. A nivel de usuario de E / S permite a los programadores System Interface (POSIX) -Part1: [6] Interfaz de programación de aplicaciones del
escribir controladores de dispositivos flexibles y eficientes para dispositivos patentados. sistema, la norma ANSI / IEEE
los Primavera kernel [18] proporciona soporte en tiempo real para sistemas distribuidos. Std 1003.1, Edición de 1996. Jbed RTOS,
Se puede programar tareas dinámicamente basándose en el tiempo de ejecución y las http://www.esmertec.com , Acceso el 15 de Nov del 2004.
limitaciones de recursos. Por lo tanto la necesidad de a priori calcular el peor de los casos [7] PA Laplante, Real-Time Systems Diseño y análisis: el Manual
tiempo para tareas de bloqueo se evita. It horarios de la seguridad operacional tareas del ingeniero, Segunda edición, IEEE Press, 1997. [8] CL Liu y
más importantes usando una tabla estática. El núcleo ayuda a retener suficientes
Layland JW, “algoritmos de planificación de multiprogramación
en un entorno de tiempo real,” Diario de la ACM, v. 20, no. 1,
semántica de aplicación para mejorar la tolerancia a fallos y el rendimiento de las
pp. 46-61, 1973. [9] JWS Liu, sistemas de tiempo real, Primera
sobrecargas.
edición, Prentice Hall, 2000. [10]
Es compatible tanto
aplicación y previsibilidad a nivel de sistema. Resorte soporta abstracción para
grupos de proceso [19], que proporciona un alto nivel de granularidad y un
LynxOS, http://www.lynuxworks.com,
mecanismo de comunicación de grupo en tiempo real. Procesos dentro de un
Consultado el 15 de Nov, 2004 [11]
“grupo de procesos” en Primavera trabajar hacia un objetivo común. Primavera
microsoft ventanas NUEVO TESTAMENTO,
http://www.microsoft.com , Consultado el 10 de Nov, de 2004
soporta un lenguaje de descripción del sistema, lo que permite
UN ESTUDIO DE CONTEMPORÁNEO ... Informatica 29 ( 2005) 233-240 239
C Ejecutivo, JMI
Los mensajes, las colas de
Software Systems, 32 Sí Windows, Solaris
datos dinámicos
Inc.
Semáforos, puntos de
INTEGRIDAD interrupción se pueden colocar Se utiliza en aplicaciones embebidas críticos; orientado a
Sí, mutex,
Greenhills 255 en cualquier lugar objetos; soportes distribuidos
semáforo
Software, Inc. el sistema tratamiento; tarea de perfiles de ejecución.
que incluye ISR.
nuclear Plus
tubería
Accelerated N / A buzones, Sí Ventanas.
y colas
Technology, Inc.
OS-9
Microware y
65535 semáforo Sí Ventanas.
Systems colas
Corporation.
Windows, Solaris, Linux. Definida por el usuario resolución
OSE reloj del sistema; tolerante a fallos;
32 Paso de mensajes Sí
Sistemas de OSE. adecuado para la telefonía celular
aplicaciones.
RT-Linux Sí, bloquee las estructuras de
Memoria compartida oa través Linux; soportes difícil tiempo real
Finitos Máquina de 1024 datos gratuitas y
de archivos aplicaciones
Estados laboratorios. techo de prioridad
Sí, mediante la
ThreadX Exclusiones mutuas, desactivación de preferencia
encima