Análisis y comparación de cuatro sistemas operativos en tiempo real

  

Este artículo analiza y compara cuatro características del sistema operativo en tiempo real (RTOS). Son: LynxOS de Lynx Real-Time Systems, QNX de QNX Software Systems, Inc. y dos Linux en tiempo real representativos: RT-Linux del Instituto de Tecnología de Nuevo México y KURT-Linux de la Universidad de Kansas.

En los últimos años, los sistemas operativos en tiempo real se han utilizado ampliamente en diversos campos, como la comunicación multimedia, el procesamiento de transacciones en línea, el control del proceso de producción y el control del tráfico, por lo que han atraído cada vez más atención.

1. Descripción general de las funciones básicas

QNX es un sistema operativo distribuido, integrado y escalable en tiempo real. Sigue POSIX.1, (interfaz de programa) y POSIX.2 (shell y herramientas), y sigue parcialmente POSIX.1b (extensión en tiempo real). Fue desarrollado por primera vez en 1980 y ahora es bastante maduro. LynxOS es un sistema operativo distribuido, integrado y escalable en tiempo real que sigue los estándares POSIX.1a, POSIX.1b y POSIX.1c. Fue desarrollado por primera vez en 1988. RT-Linux es un sistema operativo en tiempo real integrado que soporta parcialmente el estándar POSIX.1b. KURT-Linux no está diseñado para aplicaciones integradas. A diferencia de las aplicaciones duras en tiempo real /suave en tiempo real, proponen el concepto de aplicaciones "reales", como las aplicaciones multimedia y las aplicaciones de red ATM. KURT es un sistema "estricto" en tiempo real diseñado para tales aplicaciones.

2, similitudes y diferencias en la arquitectura

La implementación del sistema en tiempo real es principalmente una arquitectura de micro-kernel, que hace que el núcleo sea pequeño y confiable, fácil de instalar el firmware de la ROM y una extensión modular. En el sistema de arquitectura de microkernel, el módulo de servicio del SO se ejecuta en un espacio de direcciones separado, por lo que los errores de memoria de los diferentes módulos están aislados. Pero también tiene puntos débiles, y la sobrecarga de la comunicación entre procesos y el cambio de contexto aumenta considerablemente. En comparación con los grandes sistemas integrados del kernel, debe confiar en más llamadas al sistema para realizar la misma tarea.

QNX es un sistema operativo de microkernel en tiempo real que proporciona solo cuatro servicios en su núcleo: programación de procesos, comunicación entre procesos, comunicación de red subyacente y manejo de interrupciones, con procesos que se ejecutan en espacios de direcciones separados. Todos los demás servicios de SO se implementan como procesos de usuario colaborativos, por lo que el núcleo de QNX es muy compacto (QNX4.x tiene aproximadamente 12Kb) y se ejecuta extremadamente rápido.

LynxOS aún no es un sistema operativo basado en microkernel, pero planea usar la tecnología denominada "Galaxy" para transformarla de un gran kernel integrado a un microkernel, una tecnología que se presentará en LynxOS 3.0. . El nuevo microkernel de 28Kb ofrece los siguientes servicios: inicio y parada del núcleo, administración de memoria subyacente, manejo de errores, manejo de interrupciones, multitarea, sincronización subyacente y soporte de exclusión mutua.

RT-Linux implementa un pequeño kernel en tiempo real que solo admite la creación de tareas subyacentes, la carga de rutinas de servicio de interrupción, la cola de comunicación de tarea subyacente, la rutina de servicio de interrupción (ISR) y el proceso de Linux. El kernel original de Linux no en tiempo real se ejecuta como una tarea preventiva en este pequeño núcleo, y todas las tareas se ejecutan en el espacio de direcciones del núcleo. Es diferente del microkernel y del núcleo grande y pertenece a la arquitectura exe (realtime executive) en tiempo real. Su fiabilidad y capacidad de mantenimiento no son ideales para los sistemas de servicios de telecomunicaciones.

El núcleo de KURT-Linux consta de dos partes: el kernel y el módulo en tiempo real. El kernel es responsable de la programación de eventos en tiempo real, y el módulo en tiempo real proporciona servicios específicos en tiempo real para los procesos de los usuarios. No es parte de la estructura del microkernel.

3, análisis de estrategia de programación

La estrategia de programación de tareas es un factor que afecta directamente el rendimiento en tiempo real. Aunque los algoritmos de programación son diversos, en su mayoría se modifican mediante el algoritmo de velocidad monotónica (RM) y el algoritmo de prioridad de término más temprano (EDF). El primero se usa principalmente para la programación de tareas periódicas estáticas, y el último se usa principalmente para la programación dinámica. En diferentes estados del sistema, los dos algoritmos tienen sus propias ventajas y desventajas. La estrategia real empleada en productos comerciales es a menudo un compromiso entre varios factores.

QNX proporciona la programación de procesos estándar POSIX.1b: 32 prioridades de proceso, cambio de texto preventivo, basado en la prioridad, estrategias de programación opcionales: FIFO, estrategia de rotación, estrategia de adaptación. La estrategia de programación de LynxOS es: LynxOS es compatible con el concepto de subproceso, brindando 256 prioridades globales de subprocesos de usuario; Programación de prioridad en tiempo real difícil: la programación de turno rotativo, la programación cuantitativa y la programación FIFO se implementan en cada prioridad; Corto, núcleo RTOS preventivo.

RT-Linux implementa un simple kernel en tiempo real bajo el sistema operativo. Linux se ejecuta como una tarea preventiva en el núcleo, con la prioridad más baja y será reemplazado por tareas de alta prioridad en cualquier momento. Los usuarios pueden escribir sus propios programadores, que pueden implementarse como módulos centrales cargables; los programadores implementados son: programación preferente basada en prioridad y programación EDF; la programación basada en prioridad utiliza el algoritmo de velocidad monotónica " Soporte directo para tareas periódicas.

KURT-Linux puede ejecutarse en dos estados: estado normal y estado en tiempo real. En el estado normal, todos los procesos pueden ejecutarse, pero algunos servicios centrales traerán la imprevisibilidad de la máscara de interrupción. El modo en tiempo real solo permite ejecutar procesos en tiempo real. Admite la política de programación FIFO, la política de programación de turno rotativo y la política de programación de tiempo compartido de UNIX; agrega la política de programación SCHED-KURT, que es una política de programación estática que utiliza un archivo de programación especial para registrar los parámetros predefinidos del proceso a programar.

Como se puede ver en la breve descripción anterior, las tres primeras estrategias de programación están más estandarizadas, especialmente las dos RTOS comerciales, que siguen o siguen parcialmente el estándar de programación en tiempo real POSIX.1b.

4, comparación de servicios del sistema operativo

4.1 Servicios del sistema QNX:

Varios administradores de recursos, incluidos varios sistemas de archivos y administración de dispositivos, admiten sistemas de archivos múltiples Operación simultánea, incluido el sistema de archivos POSIX que proporciona la sintaxis completa POSIX.1 y UNIX, sistema de archivos integrado que admite múltiples dispositivos flash, SMB que admite el acceso transparente a múltiples servidores de archivos (como Windows NT /95, LAN Manager, etc.) Sistema de archivos, sistema de archivos DOS, sistema de archivos CDROM, etc. Gestión de dispositivos. Proporciona alto rendimiento, servicios de interfaz de baja sobrecarga entre procesos y dispositivos finales. Soporte para gráficos /ventanas. Incluye QNX Windows, X Window System para QNX, conectividad de gráficos remotos a MS Windows NT /95 y X Window System. TCP /IP para QNX. La red QNX de alto rendimiento y tolerante a fallas, FLEET, convierte a todas las computadoras conectadas a la red en una supercomputadora lógica. Procesamiento distribuido transparente. La integración del procesamiento de la red FLEET con las primitivas de mensajería y gestión de procesos unifica las IPC locales y de red, haciendo que la red sea transparente para IPC.

4.2 LynxOS System Services:

Red y comunicación. Gracias a la API UNIX /POSIX, Lynx es ideal para la comunicación de datos y las aplicaciones de Internet. Y debido a la apertura del sistema, el software de red es fácil de portar a Lynx. De manera similar, Lynx también proporciona protocolos de telefonía clave que lo hacen adecuado para infraestructura, operaciones y aplicaciones multimedia en sistemas de telecomunicaciones. TCP /IP pila de protocolos. Lynx incluye una pila TCP /IP optimizada que proporciona servicios de alto rendimiento, como la predicción de encabezado TCP, algoritmos de enrutamiento avanzados, multidifusión a nivel de IP y almacenamiento en caché a nivel de enlace. Herramientas de internet Incluyendo, Telnet, Ftp, tftp, PPP, SLIP, máquina virtual Java integrada para la programación en tiempo real, servidor HTTP incorporado, bootp, ARP /RARP, servicio de nombres de dominio DNS, correo electrónico, Perl, protocolo de telefonía, etc. Transmisión SVR3. El mecanismo de transmisión de LynxOS proporciona soporte básico para desarrollar y migrar controladores y aplicaciones basadas en flujos. Sistema de archivos. Sistema de archivos jerárquico similar a UNIX en tiempo real: archivos de estructura continua, con /sin almacenamiento en búfer, partición sin formato y acceso a dispositivo sin formato. Interfaz gráfica de usuario basada en motivos. Recursos informáticos distribuidos. SCMP se combina con el multiprocesamiento en el bus VME, el servicio de puente PCI, los servicios de intercambio en caliente CompactPCI, el sistema de datos distribuidos Lynx /HA-DDS.

4.3 Servicios del sistema Linux:

Recientemente, se han desarrollado muchas aplicaciones en tiempo real basadas en Linux, que son maduras y ricas en recursos.

Las herramientas y aplicaciones de desarrollo de los usuarios de UNIX se portan a Linux. Protocolo de red TCP /IP. Varios software cliente /servidor de internet. X ventana. Compiladores de lenguaje como C /C ++ y Java.

Lo común de los sistemas anteriores es que proporcionan las herramientas necesarias, como la interfaz gráfica y la compatibilidad con varias redes. QNX es un sistema operativo que está más en línea con el concepto tradicional "distribuido". El objetivo es convertir toda la LAN en una gran supercomputadora, lo que hace que la red sea transparente para los usuarios y el sistema de archivos que proporciona servicios completos. Sin embargo, cuanto mayor sea el grado de distribución, mayor será la sobrecarga. LynxOS está diseñado para proporcionar servicios de red ricos, y la mayor ventaja de Linux es la economía, pero también a través de grupos de noticias o correo electrónico.

5, comparación de apertura del sistema

Para muchos sistemas grandes y medianos La mayoría del software está escrito para la plataforma UNIX, por lo que es importante que RTOS proporcione la API POSIX /UNIX.

5.1 QNX Openness

La compatibilidad POSIX de QNX y sus compiladores, depuradores, X Window y TCP /IP específicos de UNIX son familiares para los programadores de UNIX. Compatibilidad con diversas CPU: AMD ElanSC300 /310/400/410, Am386 DE /SE, Cyrix MediaGX, procesador x86 (386 o superior), serie Pentium, STMicroelectronics STPC. Múltiples buses: CompactPCI, EISA, ISA, MPE (RadiSys), STD, STD 32, PC /104, PC /104-Plus, PCI, PCMCIA, VESA, VME. Una variedad de periféricos: una variedad de dispositivos SCSI, unidades IDE /EIDE, tarjetas Ethernet 10M /100M, tarjetas de red Token Ring, tarjetas de interfaz FDDI, una variedad de dispositivos PCMCIA, memoria flash, tarjetas de sonido y más.

5.2 LynxOS Openness

La compatibilidad con POSIX.1a, 1b, 1c y BSD4.4 facilita la conexión de POSIX 1003 o programas similares a UNIX a LynxOS. Soporte para una variedad de placas madre de CPU: incluyendo CompactPCI (6U /3U) y hardware estándar PCI, VME /Eurobus, PC /104 y PC /AT. Varios adaptadores periféricos: 10 /100BaseT Ethernet, interfaz SCSI, controlador serie de canal único /multicanal, puerto paralelo dúplex /simple, reloj, temporizador, interfaz IDE, adaptador de pantalla de alta resolución, etc.

5.3 Apertura de Linux

Los usuarios pueden obtener todas las herramientas de desarrollo de UNIX. Puede utilizar hardware barato y común en el mercado.

A través del análisis, podemos ver que los sistemas anteriores tienen sus propias ventajas. Por lo tanto, en el proceso de construcción de la plataforma, los usuarios deben elegir de acuerdo con sus necesidades reales y combinados con la relación de rendimiento y precio.

Copyright © Conocimiento de Windows All Rights Reserved