Sistemas en tiempo real

Anuncio
Universidad Tecnológica Nacional
Facultad Regional Resistencia
Sistemas en tiempo
real - QNX
Grupo Nº11:
 Maksimchuk, Fabio
 Nicoletti, Mariela
 Romero, Melisa
 Tomasella, Mauricio
Profesores:
 Ing. Dominga Aquino
 Ing. Carlos Pérez
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
SISTEMAS RTO QNX
Breve reseña histórica de los sistemas operativos RTO QNX
En 1980, dos estudiantes de la Universidad de Waterloo, Gordon Bell y Regate de
Dan, construyeron un núcleo de sistema operativo en tiempo real básico. Este fue el
primer sistema operativo en tiempo real desarrollado.
En 1982 apareció la primera versión, QNX para los procesadores Intel 8088. En los
inicios de esta versión, QNX fue utilizado como sistema operativo del sistema
educativo ICONO de Unisys.
Años después, QNX se utilizó en proyectos más grandes, porque su núcleo de 44K
era demasiado grande como para caber dentro de las computadoras de esa época.
Mas adelante, QNX incorporó el sistema X Window.
En los años 90, QNX tuvo un rediseño pero todavía seguía conservando la
arquitectura de microkernel. De ahí en adelante salieron varias versiones que luego se
hicieron comerciales, siendo por ejemplo utilizados en la industria automotriz.
Introducción a los Sistemas Operativos en tiempo real
Un sistema operativo en tiempo real es un sistema operativo diseñado y desarrollado
para aplicaciones de tiempo real. El sistema debe dar soporte a las respuestas que
devuelve, tratando de garantizar un elevado grado de determinismo.
Ante la obtención de respuestas erróneas, dicho sistema deberá corregirlas y dar la
respuesta sin errores en un lapso de tiempo bastante corto. Por lo tanto se ve que el
sistema se encuentra sujeto a restricciones de tiempo y de fiabilidad entre otros. Si ello
no se cumple, se dice que el sistema ha fallado.
Este tipo de sistemas esta pensado para permitir una mejor interacción usuariomáquina y es muy utilizado en dispositivos que van desde teléfonos móviles hasta
aeronaves y aviones, dado que disponen de un alto porcentaje de fiabilidad y
manejabilidad.
Un sistema operativo en tiempo real tiene las siguientes características:
 Bajo consumo de memoria.
 Cualquier evento en el soporte físico puede hacer que se ejecute una tarea.
 Multiplataforma, dado que su código es portable.
 Ante ciertos eventos electrónicos, tienen tiempos de respuesta predecibles.
 Fiabilidad.
 Interacción con el usuario.
 Sensibilidad.
 Determinismo.
 Tolerancia a fallos del sistema.
De las características antes mencionadas, todo sistema operativo exige el
cumplimiento obligatorio de algunas de ellas para poder dar un funcionamiento
correcto:
 Determinismo
 Sensibilidad
 Control del usuario
 Fiabilidad
 Tolerancia a los fallos
El sistema operativo en tiempo real será determinista, si realiza las operaciones
solamente en instantes fijos y predeterminados. No antes ni después. Cuando los
2
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
procesos compiten por los recursos y por el tiempo de procesador, la asignación
depende, de la velocidad con la que el sistema pueda responder a las interrupciones y
de si el sistema tiene la capacidad suficiente como para gestionar todas las peticiones
en el tiempo requerido.
La sensibilidad trata de cuánto tiempo consume el sistema operativo para dar servicio
a la interrupción, y depende del tiempo para cargar la rutina de interrupciones, del
tiempo de ejecución de dicha rutina y de la gestión de interrupciones futuras.
El control de usuario en este tipo de sistemas debe ser mucho mayor que en el caso
de cualquier sistema operativo convencional. En los sistemas operativos
convencionales, el usuario no tiene poder de control sobre la planificación de procesos
del sistema operativo. En cambio, en sistemas operativos de tiempo real, el usuario
debe poder ejercer un control preciso sobre la prioridad de los procesos. Esto es
necesario dado que se debe poder gestionar tareas rígidas y flexibles y poder así
establecerles sus prioridades de acuerdo a la clase a la que dichos procesos
pertenecen. El usuario también puede gestionar otras características, como por
ejemplo cuales procesos podrán encontrarse siempre en la memoria principal.
La fiabilidad es un aspecto muy importante, dado que la presencia de un fallo en uno
de los procesadores en el multiprocesador provocaría una reducción en el nivel de
servicio que brinda hasta que se lo repare o sustituya por uno nuevo. Esto es tan
importante dadas las aplicaciones potenciales que tiene el sistema operativo en tiempo
real. Si se presentase el caso de una pérdida o degradación del rendimiento del
sistema, ello podría repercutir de forma grave en el servicio que presta. Dichas
repercusiones podrían presentar consecuencias catastróficas, como ser pérdidas
financieras, daños en los equipos o incluso pérdida de vidas humanas.
La 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. Ante la presencia de fallos, un sistema en tiempo real intentara corregir el
problema o minimizar sus efectos mientras continúe la ejecución pudiendo así volver a
la estabilidad del sistema.
Dadas dichas características, se tiene que existen dos tipos de sistemas operativos de
tiempo real en cuanto a las restricciones de las tareas:
 Sistemas Críticos: son sistemas rígidos de tiempo real en los cuales el
incumplimiento de requisitos temporales supone un fallo grave del sistema.
 Sistemas No Críticos: Sistemas flexibles de tiempo real en los cuales un
incumplimiento esporádico de los requisitos temporales no condiciona al
sistema.
Características de diseño y soporte del sistema operativo en tiempo real:
A la hora de considerar el diseño y el soporte de un sistema operativo en tiempo real
debemos considerar aspectos relacionados con los mismos tales como su procesador,
los procesos y su planificación, su sincronización y comunicación, las interrupciones,
la gestión de memoria y las comunicaciones.
Procesador
Este tipo de sistemas operativos tienen problemas en cuanto a la capacidad de
procesamiento, no son eficientes en cuanto a tener una capacidad de procesamiento
alta. Una dificultad que presentan es que les cuesta cumplir con el período del reloj
interno del ordenador, dado que disponen de un algoritmo de programación muy
especializado y las interrupciones o correcciones que deben hacer son muchas, es
decir que la tasa de interrupciones que poseen es muy elevada. Por eso es que se
pone en compromiso la velocidad de procesamiento de la CPU.
Tenemos dos tipos de diseño de los sistemas operativos en cuanto al manejo de
eventos o interrupciones: Guiado por eventos, donde solo se cambia de tarea cuando
un evento necesita el servicio y diseño de Compartición, donde solo se cambia de
3
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
tareas por interrupciones de reloj y por eventos. Este diseño consume más tiempo de
CPU porque efectúa cambios de tarea innecesarios, pero da una ilusión de multitarea.
Planificación y Procesos
En este tipo de sistemas, toda tarea puede estar en uno de tres estados: ejecución,
preparado y bloqueado. En la mayor parte del tiempo solo se tiene una tarea en
ejecución y las demás se encuentran bloqueadas. La cola de procesos suele ser corta
y casi siempre las tareas están bloqueadas.
Es complicado diseñar el programador porque en cada búsqueda, inserción o
eliminación de procesos hay que usar interrupciones durante un tiempo muy pequeño.
Lo conveniente es que las tareas sean ordenadas por orden de prioridad. Esto es
porque el sistema debe ser determinista. El tiempo de búsqueda debe ser mínimo para
poder así poder pasar el proceso listo a ejecución.
El tiempo que se necesita para poner en cola una nueva tarea y reconfigurar el estado
de la tarea con la prioridad más alta se llama “tiempo de respuesta crítico”.
Comunicación entre procesos y Sincronización
Igual que en el caso de los sistemas operativos convencionales, los procesos no
pueden acceder al mismo recurso en común al mismo tiempo ni manipularlo
conjuntamente porque se presentarían resultados inconsistentes en el procesamiento.
Esto a su vez generaría consecuencias indeseables en los sistemas. Una solución
para la sincronización de procesos consistiría en hacer uso de los semáforos. Los
semáforos pueden estar en dos estados, cerrado o abierto.
Cuando está cerrado, los demás procesos se encolan frente a él para esperar que se
abra y poder ingresar. Esto tiene dos problemas: inversión de prioridades y punto
muerto.
En el caso de inversión de prioridades, una tarea de mucha prioridad espera porque
otra tarea de baja prioridad tiene un semáforo. En un punto muerto, dos tareas tienen
dos semáforos pero en el orden inverso. Esto se resuelve normalmente mediante un
diseño cuidadoso, realizando colas o quitando semáforos, que pasan el control de un
semáforo a la tarea de más alta prioridad en determinadas condiciones.
Una solución extra es el envío de mensajes entre procesos. Esto, si bien presenta los
mismos problemas que el uso de semáforos, pueden desplegarse y comportarse mejor
que los segundos.
Interrupciones
En los sistemas de tiempo real se usan interrupciones para dar aviso de la presencia
de diferentes eventos al mismo. El sistema debe atender a la interrupción y procesar la
información asociada antes de que se presente la siguiente.
Como el microprocesador solo puede atender una interrupción a la vez, para dar
soporte a lo anterior, los controladores de tiempo real deben ejecutarse en el menor
tiempo posible. Esto se logra enviando un mensaje a la tarea o con un semáforo. El
planificador se encarga de activar la tarea y esta se encarga de adquirir la información
y completar el procesamiento de la misma..
Memoria
Tenemos problemas en cuanto a la repartición de memoria en este tipo de sistemas
operativos. La velocidad de acceso es importante. Si se usa un esquema de reparto
estándar de memoria, se recorre una lista de longitud indeterminada para poder
encontrar un bloque de memoria libre, pero esto no es conveniente porque el reparto
de memoria debe ocurrir en un tiempo fijo.
Luego está el problema de la fragmentación. Cuando las particiones libres se separan
por regiones que están en uso, esto puede provocar que se pare un programa sin la
opción de obtener más memoria aunque en su totalidad por la suma de las particiones
4
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
sea posible. La solución es aplicar el algoritmo LIFO para la gestión de los bloques de
memoria.
En los sistemas de tiempo real, la paginación se desactiva porque es un factor
aleatorio e impredecible y eso hace variar el tiempo de respuesta del sistema con lo
cuál no podríamos asegurar que se cumplan los plazos establecidos.
Comunicaciones
Se suelen usar conexiones o redes deterministas LAN bus o puertos serie, ya que las
redes más usuales, como Ethernet son no deterministas y no pueden garantizarnos el
tiempo de respuesta. El sistema LAN bus es utilizado para la interconexión de
dispositivos electrónicos de control (ECU) en los vehículos.
1. Arquitectura de un sistema operativo en tiempo real.
Arquitectura de un Sistema Operativo de tiempo real
La memoria física de un ordenador se divide en dos regiones. Una esta reservada
para el usuario, se llama User Space y la otra está reservada para el kernel del
sistema operativo, y se llama Kernel Space.
El kernel es multitarea y es capaz de gestionar varias aplicaciones del usuario, que se
ejecutan en el espacio de memoria reservado para dicho fin y que le hacen creer de
qué dispone de toda la memoria física y todo el hardware para tal propósito.
También controla el acceso al hardware del sistema y por ello todos los programas del
espacio de memoria del usuario no conocen los detalles físicos de estas máquinas.
En el espacio de usuario se encuentran todas las operaciones entre programas y en el
espacio del kernel se hacen mediante llamadas al sistema.
Dichas llamadas lo que hacen es acceder a recursos físicos compartidos por ambas
particiones de la memoria.
Aspectos puntuales:
 El hardware sólo interactúa con el kernel y el kernel se comunica con el usuario
 El Jitter es otra medida, y son las variaciones del periodo normal de los eventos
en el sistema.
 Los sistemas operativos en tiempo real requieren que la latencia y el Jitter
estén definidos y no relacionados con la carga del sistema.
Los Sistemas Operativos de tiempo real requieren proveer un nivel de servicio
adecuado a las aplicaciones, dando la respuesta en un intervalo de tiempo
5
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
determinado. Esto se traduce en requerimientos temporales y se los brinda mediante
interrupciones de software y hardware. Por eso la latencia y el Jitter son dos aspectos
importantes.
Tenemos tres clases de tiempo real:



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.
Los sistemas operativos en tiempo real deben reducir la latencia y el Jitter al orden de
microsegundos. El elemento que influye en eso es el gestor de interrupciones.
El procesamiento de interrupciones en el kernel estándar esta dividido en dos tareas,
una de ellas que se encarga de leer los datos del dispositivo físico y escribirlos en un
buffer, llamado manejador de interrupciones; otra tarea 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 desarrollaron diferentes alternativas que modifican
al kernel.
Tenemos entonces, dos corrientes de diseño:
 Atención prioritaria en el kernel estándar (Preemptable kernel)
 Modificaciones sobre el kernel estándar (Patch)
Atención prioritaria en el kernel estándar
En este caso lo que se hace es modificar al kernel para permitir que los procesos del
kernel se puedan ejecutar con prioridad alta y máxima. De esta manera aquellos
procesos de menor prioridad pueden ser interrumpidos en el caso de que los procesos
de mayor prioridad quieran recursos que actualmente hayan sido asignados a los
anteriores. El manejador de interrupciones debe no bloquear a aquellas interrupciones
que sean de alta prioridad mientras maneja otras interrupciones que sean de prioridad
baja.
El planificador de procesos sabe que aquellos procesos de tiempo real tienen mayor
prioridad que los procesos que no sean de tiempo real.
Esta metodología trae como ventajas el hecho de que se protege la memoria
disponible, los procesos no pueden quebrar al kernel, el acceso a los servicios del
sistema es completo y se da soporte a herramientas de depuración. Como desventajas
6
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
es que se tiene un rendimiento global reducido, un rendimiento bajo para baja latencia
y se debe hacer un cambio considerable en el código del kernel.
Modificaciones en el kernel estándar (Patch)
En esta metodología tenemos cuatro estrategias para modificar al kernel del sistema
operativo para que pueda dar soporte al tiempo real. Una de ellas implica la
modificación directa del código del kernel para añadirle características de tiempo real,
y las otras tres implican añadir un segundo kernel, kernel dual para poder manejar las
tareas de tiempo real.
Las estrategias son:
 Micro kernel
 Nano kernel
 Recurso kernel
 Extensiones POSIX de tiempo real añadidas al kernel
Microkernel
La estrategia consiste en añadir un segundo kernel, que en realidad es una capa de
interfaz entre el hardware y el kernel estándar. Esto se llama HAL (Hardware
Abstraction Layer). Esta capa de microkernel controla la ejecución de procesos en
tiempo real y ejecuta el kernel estándar como una tarea en background, es decir
cuando no hay tareas de tiempo real pendientes. Además intercepta las interrupciones
de hardware y asegura que los procesos de tiempo real se ejecuten con la mayor
prioridad posible, para poder así minimizar la latencia.
7
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Nanokernel
Esta estrategia es parecida a la de micro kernel, pero se trata de evitar una patente
que tiene la estrategia de microkernel, fijada por Yodaiken (quién fue uno de los
fundadores de los sistemas RTS Linux). El nanokernel lo que hace es capturar
interrupciones de hardware y permitir la ejecución paralela de varios sistemas
operativos por encima de él. La estrategia en sí es una capa intermedia entre el
hardware y el sistema operativo, siendo que este último puede ser o no de tiempo real.
Extensión con un nuevo kernel de acceso a los recursos –
Recurso Kernel
En esta estrategia lo que se hace es añadir un kernel de modo que brinde una puerta
de acceso a los recursos como al sistema de ficheros, al puerto paralelo, etc. Tanto
para el kernel estándar como para los procesos de usuario.
El recurso kernel captura las interrupciones y también proporciona un mecanismo
donde los programas de usuario pueden requerir, reservar y garantizar un porcentaje
finito de los recursos como pueden ser de cpu, memoria, etc.
Extensiones POSIX de tiempo real añadidas al kernel
8
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Por último, en esta estrategia lo que se hace es modificar directamente al kernel del
sistema operativo añadiendo librerías que implementen extensiones de tiempo real de
POSIX (Portable Operating System Interface ).
Las modificaciones que se hacen al kernel consisten en implementar relojes, señales,
semáforos, memoria compartida, planificador por prioridades, etc. Según lo
especificado en el estándar IEEE 1003.1d.
Arquitectura del microkernel de QNX
QNX se basa en 2 principios fundamentales para lograr la eficacia, modularidad, y
simplicidad:
 La arquitectura del Microkernel
 La comunicación entre procesos basada en mensajes.
La arquitectura consiste en un pequeño kernel a cargo de un grupo de procesos
cooperativos.
Microkernel
El microkernel es muy pequeño y tiene las siguientes responsabilidades:

IPC - el Microkernel supervisa el ruteo de mensajes; también maneja otras dos
formas de IPC: proxies y señales.

La comunicación de la red a bajo nivel - el Microkernel entrega todos los
mensajes destinados a los procesos en otros nodos.

Scheduling de procesos - el scheduler del Microkernel decide qué proceso se
ejecutará luego.

Manejo de interrupciones del primer nivel - todas las interrupciones de
hardware y las fallas se rutean primero a través del Microkernel, luego se pasa
al driver o al administrador del sistema.
La estructura interna del microkernel tiene la siguiente forma:
9
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
La comunicación entre procesos
El QNX Microkernel apoya tres tipos esenciales de IPC: mensajes, proxies y señales

Mensajes - la forma fundamental de IPC en QNX. Ellos proporcionan la
comunicación síncrona entre procesos cooperativos dónde el proceso que
envía el mensaje requiere acuse de recibo y potencialmente una contestación
al mensaje.

Proxies - una forma especial de mensaje. Están especialmente preparados
para notificación de eventos dónde el proceso que lo envía no necesita actuar
recíprocamente con el destinatario.

Señales - una forma tradicional de IPC. Se utilizan para apoyar la
comunicación entre procesos de forma asíncrona.
Los procesos del sistema
Todos los servicios de QNX, excepto aquellos proporcionados por el Microkernel, se
manejan como procesos comunes. Una configuración de QNX típica tiene los
procesos de sistema siguientes:




Administrador de procesos (Proc)
Administrador del sistema de archivos (Fsys)
Administrador de dispositivos (Dev)
Administrador de red (Net)
El Administrador de Procesos
Para proporcionar los servicios esenciales del sistema operativo el administrador de
procesos trabaja conjuntamente con el microkernel. Aunque comparte el mismo
espacio de dirección con el Microkernel, el Administrador de Procesos corre como un
verdadero proceso, por lo que también el Microkernel realiza scheluding sobre él.
Es responsable de crear nuevos procesos en el sistema y manejar los recursos
fundamentales asociados a un proceso. Estos servicios son todos proporcionados vía
10
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
mensajes. Por ejemplo, si un proceso corriente quiere crear un nuevo proceso, envía
un mensaje que contiene los detalles del nuevo proceso a ser creado.
Primitivas de creación de procesos
QNX soporta tres primitivas de la creación de procesos:



Fork ()
exec ()
spawn ()
Fork () y exec () se definen por POSIX, mientras que la aplicación de spawn () es única
para QNX.
Fork (): crea un nuevo proceso que es una imagen exacta del proceso de llamada.
exec (): sustituye a la primitiva imagen de proceso de llamadas con una nueva
imagen de proceso.
spawn (): El spawn () primitiva crea un nuevo proceso como un hijo del proceso de
llamada. Se puede evitar la necesidad de Fork () y exec (), lo que resulta en una más
rápida y eficiente medio para crear nuevos procesos.
El ciclo de vida de un proceso
Un proceso pasa por cuatro fases:

Creación: Crear un proceso consiste en asignar un PID para el nuevo proceso
y preparar la información que define el ambiente del nuevo proceso. La
mayoría de esta información se hereda del padre del nuevo proceso.

Carga: La carga de imágenes del proceso se hace por un hilo del LOADER. El
código del LOADER reside en el Administrador del Procesos, pero el hilo corre
bajo el PID del nuevo proceso. Esto permite al Administrador de Procesos
atender otras demandas mientras los programas se cargan.

Ejecución: Una vez que el código del programa se ha cargado, el proceso está
listo para la ejecución; empieza a competir con otros procesos por los recursos
de CPU. Todos los procesos se ejecutan concurrentemente con sus padres.
Además, la muerte de un proceso padre no causa la muerte de sus
procesos hijos automáticamente.

Terminación: Un proceso se termina de dos maneras:
-
Por una señal cuya acción cause la terminación deliberada del proceso.
-
El proceso invoca exit()
El Administrador del Filesystem
11
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
El Administrador de Filesystem (Fsys) proporciona un método estándar de guardar y
acceder a los datos en los subsistemas de discos. Fsys es responsable de ocuparse
de todas las demandas para abrir, cerrar, leer, y escribir los archivos.
En QNX, un archivo es un objeto que puede escribirse, leerse, o ambos. QNX
implementa seis tipos de archivos; de los cuales cinco de éstos son manejados por
Fsys:

Archivos regulares - consisten en secuencia de bytes que pueden ser
accedidas de forma aleatoria y no tiene ninguna otra estructura predefinida.

Los directorios - contienen la información necesaria para localizar los archivos
regulares; también contienen información del estado y los atributos para cada
archivo regular.

Accesos directos - contienen una ruta a un archivo o directorio. Estos archivos
se usan a menudo para proporcionar múltiples caminos a un solo archivo.

Pipes y FIFOs - sirven como canales I/O entre procesos que cooperan.

Archivos de bloques especiales - refiere a los dispositivos, como las unidades
de disco, cintas, y particiones de la unidad de disco. Estos archivos
normalmente se acceden de una manera que esconde las características del
hardware del dispositivo de las aplicaciones.

El sexto tipo de archivo, el archivo especial de carácter, se maneja por el
Administrador de Dispositivos.
Fecha y marcas de tiempo
Fsys mantiene cuatro momentos diferentes para cada archivo:




fecha del último acceso (leer)
fecha de la última escritura
fecha de la última modificación
fecha de creación (única para QNX)
El acceso al archivo
Hay tres tipos de accesos a los archivos regulares y directorios:



usuario sólo
único grupo
otros
Un proceso también puede ejecutarse con el ID de usuario o ID de grupo de un
archivo en lugar de las de su proceso padre. El mecanismo que permite que esto se
conoce como setuid (programar una ID de usuario en ejecución) y setgid (programar
una ID de grupo en la ejecución).
El Administrador del Dispositivo
12
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
El Administrador de Dispositivos (Dev) es la interface entre los procesos y los
dispositivos terminales. Estos dispositivos terminales se localizan en el namespace de
I/O con nombres que comienzan con /dev.
Los servicios de dispositivos
Un dispositivo terminal se presenta a un proceso de QNX como un flujo bidireccional
de bytes que pueden leerse o pueden escribirse por el proceso.
El Administrador del Dispositivos regula el flujo de datos entre una aplicación y el
dispositivo. Algo del procesamiento de los datos es realizado por Dev según
los parámetros en una estructura de control terminal (llamada el termios) que existe
para cada dispositivo.
Los parámetros del termios controlan la funcionalidad de bajo nivel como:

la disciplina de línea de mando (incluso la proporción del baudio, paridad, los
bits de stop y los bits de datos)

Eco de caracteres

Edición de la línea de entrada

Reconocimiento y solución sobre pausas y cortes

Control de flujo por hardware y software

la traducción de caracteres salida

Driver de Dispositivos
13
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
La ilustración siguiente muestra un subsistema típico de un dispositivo en QNX.
El proceso de Administrador de Dispositivos (Dev) maneja el flujo de datos a y de los
procesos de aplicación QNX. La interface del hardware se maneja por procesos de
drivers individuales. El dato fluye entre Dev y sus drivers a través de un conjunto de
colas de memoria compartida para cada dispositivo terminal.
Ya que se usan colas de memoria compartida, es necesario que Dev y todos sus
drivers residan en el mismo CPU físico. La ventaja es que se incrementa la
Performance.
Se usan tres colas para cada dispositivo. Cada cola se implementa usando FIFO. Una
estructura de control también es asociada con cada cola.
Los datos recibidos se ponen en la cola de entrada por el driver y sólo se consume por
Dev cuando la aplicación procesa los datos de la demanda.
Los tamaños de todas estas colas son configurables por el administrador del sistema;
la única restricción es que el total de la suma de las tres colas no puede exceder
64K. Los valores por defecto normalmente son más que adecuados para manejar la
mayoría de las configuraciones del hardware.
14
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
El Administrador de la Red
Comunicándose directamente con el Microkernel, el Administrador de la Red mejora el
intercambio de mensajes (IPC) propagando los mensajes eficazmente a
las máquinas remotas. Además, el Administrador de la Red ofrece tres rasgos
avanzados:



un mayor rendimiento a través de equilibrio de carga
tolerancia a fallos a través de conectividad redundante
puente entre las redes de QNX
En pocas palabras, Qnet es una red basada en el envío de mensajes que le brinda
acceso transparente a cualquier recurso del sistema. Qnet le permite
construir aplicaciones eficientes y tolerantes a fallos que pueden ser escaladas
fácilmente.
Qnet está integrada en el corazón de las primitivas de manejo de procesos y envió de
mensajes de QNX, haciendo que la intercomunicación de procesos local y a través de
una red sea lo mismo. Usando Qnet, una red de nodos individuales se convierte en
una supercomputadora virtual, donde cada nodo tiene acceso a todos los recursos del
sistema.
El diseño único de Qnet le hace posible crear redes altamente escalables y tolerantes
a fallo con soporte para balancear la carga.
Con Qnet, cualquier dispositivo en el sistema puede acceder cualquier recurso en
forma transparente. Qnet extiende el mecanismo de envió de mensajes que forma el
núcleo de la plataforma QNX. Utilizando Qnet, los mensajes son enviados de forma
transparente de un nodo a otro, lo que hace posible acceder y utilizar recursos como
por ejemplo sistemas de archivos, I/O, recursos de hardware, administradores de
procesos y más.
Diferencias con otros sistemas operativos
Vamos a comparar tres familias de sistemas operativos, Unix, Windows y QNX. De la
familia UNIX, que son sistemas operativos portable, multitarea y multiusuario, se
desprenden dos sistemas operativos muy conocidos, Linux y Mac OS X que
describiremos a continuación:
Linux: Es un sistema operativo que posee estabilidad y facilidad de escalabilidad.
Linux es una reimplementación completamente gratuita de las especificaciones POSIX
1, con extensiones de SYSV y BSD (lo cual significa que parece Unix pero no proviene
del mismo código fuente base), que está disponible tanto en su versión fuente como ya
compilada. El copyright pertenece a Linus B. Torvalds ([email protected]) y
otros colaboradores, y es libremente redistribuible bajo las condiciones de la "GNU
Public License". Provee de acceso al código fuente lo que me permite personalizar el
funcionamiento y auditar la seguridad y privacidad de los datos tratados. Como
consecuencia de que sea libremente redistribuible, me garantiza la independencia de
15
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
proveedor. Sufre de pocos ataques de virus. Implementa la interfaz grafica llamada X
Window para su presentación de escritorio, o se puede usar el modo consola. Los
escritorios mas populares son GNOME, KDE, LXDE, Xfce. Funciona en procesadores
Intel, Sparc, Alpha y Power PC; con una cantidad máxima de 16 procesadores. Se lo
utiliza en computadoras personales y servidores, dado su seguridad y capacidad de
configuración.
Mac OS X: Este sistema operativo usado en las maquinas Mac esta basado en las
especificaciones POSIX. Implementa interfaz grafica desarrollada en Objective-C y
actualmente corre bajo procesadores INTEL. Sufre de pocos ataques de virus. Dicho
sistema no permite el acceso al código fuente. Y su utilización se da en computadoras
personales.
La familia Windows que se destaca por ser sistemas operativos basados en interfaz
grafica (GUI), vamos a comprar el sistema operativo de núcleo hibrido, basado en
núcleo NT. Podemos comenzar comentado que es un SO multitarea, cuya
presentación al usuario es totalmente grafica. Define una forma homogénea de utilizar
los recursos de la computadora, lo cual permite compartir datos entre las distintas
aplicaciones, así como utilizar con facilidad los elementos hardware ya instalados. No
provee de acceso al código. Puede funcionar en procesadores Intel y Alpha. Sufre de
un alto ataque de virus. Su utilización se da en computadoras personales
fundamentalmente.
De la familia de los sistemas operativos en tiempo real, seguimos con QNX, que como
ya estamos leyendo está basado en Unix y cumple con las especificaciones POSIX.
Es un sistema operativo multitarea, flexible por lo que los desarrolladores pueden
personalizar el sistema operativo fácilmente para satisfacer las necesidades de su
aplicación; con estabilidad avanzada frente a fallos de dispositivos, aplicaciones, etc.
Utiliza una interfaz grafica llamada Photon o Photon microGUI que es el sistema de
ventanas. Está orientado a su utilización en microcontroladores y sistemas críticos.
Corre bajo procesadores INTEL: 386, 486, Pentiums y sus clones como AMD, Nat
Semiconductor, Cyrix y SGS Thompson. Prácticamente no sufre ataques de virus.
Utilización en microcontroladores y sistemas críticos.
Resumen:
QNX
Windows
Unix
Sistemas operativo en
tiempo real basado
en Unix que cumple
con la norma POSIX
Familia de SO de
interfaz grafica (GUI)
Portable, multitarea y multiusuario
 Multitarea
 Estabilidad

Multitarea
Linux
Mac OS X
 Multitarea
 Multitarea
 Estabilidad
16
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
avanzada
 Escalabilidad
 Escalabilidad
 Flexible
 Interfaz
grafica  Toda la información
llamada
Photon
presentada
al
o Photon
usuario
es
microGUI que es el
gráfica.
sistema de ventanas.
 Interfaz grafica
llamada
X
Window o puede
funcionar
en
modo consola.
 Interfaz
Grafica
desarrollada
en ObjectiveC
 Prácticamente
 Altamente atacado
ningún ataque de
por virus
virus.
 Bajo ataque de
virus
 Bajo ataque
de virus
 Utilización
en  Utilización
en
microcontroladores y
computadores
sistemas críticos.
personales.
 Utilización
en
computadores
personales
y
servidores debido
a su seguridad.
 Utilización
en
computadores
personales.
 Funciona
en  Funciona
en
procesadores INTEL:
procesadores
386, 486, Pentiums y
Intel y Alpha.
sus clones como
AMD,
Nat
Semiconductor, Cyrix
y SGS Thompson.
 Funciona
en
procesadores
Intel,
Sparc,
Alpha y Power
PC.
 Funciona
en
procesadores
Intel.
 Desarrolladores
 No
permite
el
pueden personalizar
acceso al código
el sistema operativo
fuente
fácilmente
para
satisfacer
las
necesidades de su
aplicación
 Acceso
al
Código
fuente
(permite
personalizar
el
funcionamiento y
auditar
la
seguridad
y
privacidad de los
datos tratados)
 No permite
el acceso al
código fuente
Instalación típica de QNX:
Una instalación del desktop de QNX es aproximadamente de 10M. El Photon
microGUI®, que incluye el QNX OS, browser de VoyagerTM, y TCP/IP, requiere más
de 160M de espacio del disco.
Antes de continuar con la instalación, asegúrese de leer las instrucciones de
instalación, así como las notas de la versión que viene con el software. Las notas de la
17
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
versión contienen información importante que podría influir en la forma que elija para
instalar el software.
También debe leer la arquitectura del sistema manual, lo que explica la filosofía básica
y el funcionamiento de QNX. Suponemos que tiene este nivel básico de familiaridad
con el sistema operativo.
Requisitos del sistema
Los requerimientos del sistema varían, dependiendo de los productos que desea
instalar. Por ejemplo, para instalar la base en su sistema de desarrollo, necesitará al
menos 14M de espacio libre en disco. Para obtener más información, consulte las
instrucciones de instalación que se incluyen con cada producto.
Su sistema de destino es probable que requieran menos espacio de disco, RAM, etc.
que su sistema de desarrollo. Desde que QNX es un sistema operativo modular, se
puede configurar fácilmente el sistema de destino para utilizar sólo los módulos
realmente necesarios en tiempo de ejecución. Es conveniente que la partición donde
se instale el sistema operativo sea FAT32, para lograr una mayor compatibilidad.
Medios de distribución
QNX productos pueden ser enviados en cualquiera de estos dos medios:
 Disquete
 CD-ROM
En ambos casos, va a utilizar un programa de instalación para instalar QNX en su
disco duro. El programa crea una estructura de directorios, copia el software en el
disco duro, y construye una imagen de arranque del sistema operativo configurado de
acuerdo con su opinión durante el proceso de instalación.
Durante el procedimiento de instalación, se le pedirá que confirme su configuración de
hardware. Asegúrese de tener la información correcta sobre su hardware antes de
empezar:
 El tamaño del disco duro y partición (s)
 Disco duro tipo de controlador (IDE, SCSI Adaptec 2940, etc)
 Tipo de tarjeta de red y el fabricante (por ejemplo, Ethernet de Novell NE2000)
 CD-ROM de la distribución
Si el software de QNX fue enviada en un CD, el procedimiento de instalación es muy
sencilla:
1) Inserte el CD en la unidad de CD-ROM.
2) Reinicie su computadora.
18
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
3) Cuando arranca el sistema, simplemente siga las instrucciones que aparecen
en pantalla.
Distribución de disquete
Para instalar QNX desde disquetes, siga estos pasos:
1) Coloque el disquete de arranque QNX en la unidad de disquete y reinicie el
equipo.
2) Usted debe ver una flecha de giro o una serie de puntos en la esquina superior
izquierda de la pantalla, seguido por el logotipo de QNX, un mensaje de
bienvenida, y un intérprete de comandos.
Si desea información sobre la instalación de las opciones antes de seguir, el tipo de
uso de instalar en la línea de comandos.
Para transferir el software desde los disquetes en el disco duro, escriba el siguiente
comando en el intérprete de comandos:
 Install
Simplemente siga las instrucciones que aparecen en pantalla para configurar su disco
duro por lo que se iniciará QNX.
Reinicie desde el disco duro.
Una vez que todos los archivos se han instalado desde el disquete, debe eliminar
cualquier disquete y reinicie el ordenador desde el disco duro. QNX ahora debería
estar en funcionamiento. En este punto, tendrá que iniciar la sesión como raíz.
Ahora está listo para instalar software adicional, personalizar la instalación, configurar
la red, etc
QNX Neutrino RTOS
La última versión del sistema operativo en tiempo real QNX, llamada QNX Neutrino
RTOS es un completo y robusto sistema operativo que permite satisfacer las
necesidades de recursos limitados en tiempo real de sistemas embebidos. Su diseño
microkernel y su arquitectura modular permite a los clientes crear sistemas altamente
fiables y optimizados, con bajo coste de propiedad.
Ya sea que se trate de pequeños o grandes, simples o distribuidos, estos sistemas
son conocidos por su capacidad de operar las 24 horas al día, los 365 días al año, sin
parar. Se diferencia de otros productos por la fiabilidad, tolerancia a fallas y
escalabilidad. Además, ofrece grandes ventajas a nivel técnico, económico y alto
rendimiento, incluso en hardware barato, gracias a sus principales características:



tiempos de respuesta predecibles y muy rápida interrupción de latencias y
cambios de contexto (tiempo real);
la arquitectura Microkernel;
la partición adaptativa.
19
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Tiempo real
La característica de microkernel preventiva y el planificador basado en prioridades,
permite que QNX Neutrino RTOS proporcione tiempos de respuesta rápidos y
predecibles, deterministas tanto a nivel de aplicaciones como de todos los
subsistemas.
Esto es posible mediante:




La rápida interrupción de latencias y cambios de contexto que ayudan a
exprimir el más rápido tiempo de respuesta posible de hardware integrado.
Prioridad para eliminar la herencia de la inversión de prioridades.
Simplificación de modelado en tiempo real a través de las actividades de
mensaje síncrono.
Interrupciones anidadas y una determinada cota superior de la latencia de
interrupción, asegurando que las interrupciones de alta prioridad se atiendan
primero, en un plazo previsible, permitiendo que se cumplan sus plazos aún en
condiciones de carga pesada.
Arquitectura Microkernel
Su arquitectura microkernel lo posiciona como un sistema robusto, facilitando la
identificación y resolución de errores, y permitiendo actualizaciones de componentes
en forma segura y rápida, sin tiempos de inactividad costosos o cortes en el sistema; y
auto-reparable, posibilitando que ante la falla de cualquier componente el sistema se
reinicie automáticamente sin afectar al núcleo u otros componentes; ofreciendo así un
alto nivel de contención y recuperación ante fallos.
El microkernel incluye sólo los servicios esenciales, como la señalización,
temporizadores y programadores. Todos los demás componentes, como ser sistemas
de archivos, drivers, pilas de protocolos y aplicaciones, se ejecutan en la seguridad del
espacio de usuario en memoria protegida.
QNX Neutrino RTOS microkernel
20
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Además, ayuda a crear tolerancia a fallos y sistemas auto-reparables mediante:




Ciclos de CPU para la detección de errores y recuperación del sistema que
aseguran la recuperación rápida del mismo.
Posibilidad de poder determinar siempre el estado del sistema,
independientemente de la carga del procesador (mediante interfaz de usuario o
consola).
Reinicio automático de procesos fracasados, sin un reinicio del sistema.
Recuperación automática de las comunicaciones entre procesos tras fallos del
proceso.
Ante la falla de cualquier componente, el sistema operativo lo denuncia y reclama
los recursos que estaba utilizando, sin necesidad de reiniciar el sistema y sin
perjudicar al núcleo ni a los demás componentes. La falla se limita únicamente a ese
componente, reduciendo al mínimo el tiempo medio de reparación.
Las características de autoreparación y particionado, además de servicio
redundante, es decir, procesamiento distribuido transparente (arquitectura de redes)
que permite la construcción rápida de los servicios redundantes, aseguran la alta
disponibilidad de los servicios.
Partición adaptativa
La partición (conjunto de procesos o hilos) QNX adaptativa permite el uso
óptimo de toda la capacidad disponible de la CPU, sobretodo en sistemas de uso
intensivo de procesador, asegurando que los procesos críticos nunca tengan carencia
de recursos y puedan cumplir con los plazos de tiempo real.
En condiciones normales, las particiones pueden usar cualquier cantidad ciclos de
CPU disponibles. Sin embargo, durante una sobrecarga, es decir, cuando se requiere
más cálculo del que el sistema puede sostener en el tiempo, el programador de
partición QNX impone límites a los ciclos de CPU que se le pueden asignar a cada
partición, garantizando que el mínimo requerido de recursos de la CPU esté siempre
disponible para los procesos especificados (se asegura que cada una de las
aplicaciones reciba una fracción de los recursos que requiere).
Cuando existen ciclos de procesamiento disponibles, las particiones pueden
superar sus presupuestos de tiempo de uso de CPU. Los ciclos disponibles se asignan
dinámicamente a aquellas particiones que se puedan beneficiar de tiempo adicional de
CPU, eligiendo siempre a aquellas de mayor prioridad de ejecución, o a aquellas que
fueron designadas como críticas independientemente de la carga del sistema y el
presupuesto de partición. Manteniéndose de esta manera el determinismo en tiempo
real.
Es decir, que tanto en condiciones de disponibilidad de recursos como de limitación
de los mismos, las aplicaciones cuentan con recursos para poder operar.
21
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Diseños de partición fija



Partición QNX adaptativa
Son ineficientes.
La capacidad sobrante de CPU no
puede ser utilizada.
Los requerimientos de CPU se
fijan de antemano para prever la
demanda máxima.



Ofrece las garantías mínimas de
tiempo de CPU a las particiones.
La capacidad sobrante CPU se
utiliza cuando está disponible.
Los procesos pueden superar sus
límites de presupuesto cuando hay
ciclos disponibles.
Otras de las características de QNX Neutrino RTOS que pueden mencionarse son:
Procesamiento transparente distribuido
El procesamiento transparente distribuido (TDP) permite que los recursos tengan
una independencia de su localización en la red. El software en cualquier nodo de la
red puede acceder a cualquier recurso publicado.
Para lograr la interconexión dinámica de recursos, TDP envía un mensajes
estándar a través de cualquier tecnología de interconexión de redes, permitiendo así
que los recursos, tanto hardware como software, que se encuentran en los extremos
puedan compartirse.
TDP se caracteriza por el empleo de redundancia y balanceo de carga. Esta
cualidad permite evitar la pérdida de servicio, ya que si un eslabón falla los datos son
reenrutados a través de los demás eslabones. Si ocurre un error en un nodo/enlace,
los datos se cargan en forma equilibrada sobre los nodos/enlaces restantes.
22
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Todos los componentes del sistema operativo se comunican a través de una sola
capa, mediante mensajes bien definidos. Este mensaje forma una capa de "bus" que
permite la inserción y la eliminación de componentes de software en cualquier
momento. El flujo de mensajes de forma transparente a través del procesador, brinda
un acceso también transparente a cualquier recurso, en cualquier parte de la red.
El procesamiento transparente distribuido, permite a los desarrolladores crear
sistemas robustos y tolerantes a fallos que ofrezcan acceso on-demand a recursos en
múltiples terminales. Si una no está disponible, un recurso similar se puede acceder
de forma transparente en otra.
Arranque rápido
QNX Neutrino RTOS ofrece varias estrategias de arranque rápido:

BIOS- less boot: se reemplaza la BIOS estándar por inicialización
personalizada de los periféricos, gracias a que los conductores de estos
dispositivos están fuera de la BIOS. Esto permite seleccionar qué se inicia y
cuándo, eliminar inicializaciones no necesarias y posponer otras hasta después
del arranque.
23
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010


Microkernel: permite modificar la secuencia de arranque para sacar provecho
del tiempo de inactividad, siendo posible determinar qué arranca cuándo.
Activación instantánea de dispositivo (IDA): utiliza minicontroladores, que
se ejecutan antes de que el núcleo del sistema operativo se inicie, para iniciar
las aplicaciones necesarias a fin cumplir con los requisitos de disposición
temprana.
Photon microGUI
Photon microGUI es un sistema de ventanas, para QNX que se entrega con QNX
Software Development Platform (SDP).
Dentro de sus características cabe destacar:








Configuración de pantallas múltiples: soporta visualización individual a varios
monitores (presenta toda la Photon microGUI en una serie de monitores) y para
múltiples pantallas en múltiples monitores con una sola CPU.
Rápida creación de prototipos sin extensa codificación, gracias a Photon
widgets fáciles de usar, la reducción del tamaño de bibliotecas compartidas y la
reutilización de código en nuevos componentes.
Dispone del constructor de aplicaciones (Application Builder) para probar las
mismas.
Personalizar la GUI (ventanas, botones, menús) es muy sencillo ya sea en
forma individual o global, al igual que los widgets.
Compatibilidad con lenguajes asiáticos y fuentes escalables, como fuentes
True Type y mapa de bits.
Cualquier parte de la interfaz gráfica de usuario puede actualizarse,
modificarse, recibir adiciones y sustituciones sin necesidad de reiniciar el
sistema.
El enfoque de desarrollo HMI (Human Machine Interface) simplifica y acelera el
trabajo necesario para crear interfaces de usuario sofisticadas.
Permite crear interfaces de usuario libres de distracciones y parpadeo,
reduciendo el consumo de CPU y optimizando el rendimiento mediante la
eliminación de cálculos redundantes.
Existen componentes opcionales que incluyen bibliotecas con más de 80 widgets,
controladores de gráficos, datos de entrada (ratón, teclado, pantalla táctil) y utilidades
de Photon, tales como terminales, gestoras de archivos, gestoras de escritorio
multipantalla, editores y lectores de HTML y código fuente para servicios públicos y el
programa de ejemplo.
Phindows
Para lograr la interacción con aplicaciones Photon desde un escritorio Windows, ya
sea a través de una red IP o conexión serie, se utiliza la herramienta de conexión a
distancia Phindows. Esta herramienta permite:



Reducir los costos de hardware: dispositivos embebidos no requieren una
pantalla o un teclado físico dedicado.
Aumentar la productividad del desarrollador: las aplicaciones Photon pueden
ser construidas y probadas desde un escritorio Windows, reduciendo así la
necesidad de simuladores.
Portabilidad: una aplicación Photon puede ejecutarse tanto en un entorno QNX,
como en un escritorio de Windows sin necesidad de recodificar o recompilar.
24
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010

Usuarios remotos: los desarrolladores no necesitan estar en el lugar para
depurar aplicaciones.
El rendimiento de Phindows se puede ajustar para obtener un rendimiento óptimo
con la velocidad de conexión disponible, la memoria RAM, recursos de disco y los
requisitos de seguridad.
Brinda soporte para:




Compresión de datos en la transferencia de datos.
RAM configurable y cachés de disco: imágenes caché en la máquina Windows
que se transfieran sólo una vez y persisten en los reinicios.
Fuentes de la ventana local: las fuentes pueden ser representadas como
mapas de bits y enviadas al escritorio Windows o representadas en Windows
utilizando archivos de fuentes locales, para mantener la apariencia de la fuente
deseada mientras se minimiza la carga de transmisión de datos.
Seguridad: los desarrolladores pueden especificar una clave de cifrado para el
final de Windows remoto que debe coincidir con la clave en el host QNX. Se
requieren una identificación de usuario y contraseña en la conexión.
Requisitos del sistema


QNX 6,3 o más reciente
Windows 2000 o Windows XP
SOFTWARE SOBRE QNX: REALFLEX
RealFlex es un proveedor líder y global de software de SCADA y de control de
procesos.
Tiene clientes como Plantas de Gas, Órganos de gobierno, empresas multinacionales
y de telecomunicaciones.
Entre sus productos, el producto RealFlex 6 combina las características de tiempo
real, multi tarea y da soporte a QNX Neutrino, tiene interfaces gráficas basada en
Windows o Photon.
Este producto RealFlex es un paquete de software para aplicaciones de control de
procesos que puede correr sobre el sistema operativo QNX.
Sus características principales son:









Soporte de tiempo real, para seguimiento y control
Configuración STAND BY
Alto rendimiento y diseño eficaz para grandes bases de datos
Procesa datos en tiempo real
Guarda un histórico de las bases de datos
Dispone de alarmas, procesadores de eventos, de cálculos
Tiene capacidad de control
Tiene CSL- Lenguaje de comandos de secuencia
Soporta una amplia gama de protocolos estándares
25
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010



Migración automática de sistemas heredados RealFlex 4
Dispone de API del servidor de aplicaciones para interactuar con consolas
QNX
Dispone de un kit de desarrollo de personal
Sus beneficios son:






Alta velocidad
Redundancia en el procesamiento para recuperación ante fallos
Los usuarios tienen acceso a la interfaz del operador, bases de datos SQL,
páginas web
Compatibilidad con un gran número de RTOS
Permite efectuar captura de eventos del sistema
Se pueden desarrollar aplicaciones
Requerimientos de Hardware:





Procesador Intel Pentium
64 Mb de memoria RAM
Espacio de 120 Mb libres en disco
Unidad de CDROM
1 o más puertos serie RS232
26
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Interface Gráfica de Usuario
27
Ingeniería en sistemas de Información
Teoría de Control – Grupo Nº11
Ciclo2010
Fuentes:


http://toastytech.com/guis/qnxdemo.html
http://qdn.qnx.com/developers/docs/qnx_4.25_docs/qnx4/user_guide/install.
html


http://www.qnx.com/products/hmi/photon.html
http://www.utvikling.com/photon.asp

http://www.qnx.com/products/neutrino-rtos/neutrino-rtos.html#technology
28
Descargar