Sistema operativo integrado

Un sistema operativo integrado es un sistema operativo que se puede instalar en un sistema integrado . Este sistema operativo está diseñado con características específicas para ser administradas con el fin de satisfacer las necesidades específicas del tipo de sistema de a bordo.

Definición

Un sistema operativo es un programa que administra hardware. Actúa como intermediario entre la aplicación de software y el hardware de la computadora (periféricos, sensores, motores, etc.). La diversidad de sistemas operativos disponibles ofrece construcciones y propiedades particulares que permiten alcanzar una amplia variedad de objetivos. Excepto para tareas muy simples (programación, tareas de conmutación, entradas / salidas, ...), una aplicación a bordo necesita un sistema operativo adecuado que cumpla con las limitaciones para ser instalado en el sistema de a bordo (espacio de memoria por ejemplo). El sistema operativo también debe tener la funcionalidad requerida para la tarea que tendrá que realizar. Los sistemas operativos de PC están diseñados con una interfaz hombre-máquina específica (pantalla-teclado-ratón). En el contexto de un sistema operativo a bordo, la interfaz hombre-máquina para poder interactuar con él puede ser específica (teclado de código digital, pantallas de teléfonos inteligentes, etc.), o incluso inexistente (tarjetas de crédito, tarjetas SIM, etc.), en cuyo caso se utiliza una máquina intermedia (terminales, teléfonos). Al estar mayormente fuera del alcance humano, un sistema operativo integrado debe tener un nivel de solidez muy por encima de los requisitos de un sistema operativo de escritorio. Los sistemas operativos integrados requieren una fiabilidad muy alta, así como un buen rendimiento.

Especificidades

Los sistemas integrados se utilizan en una amplia variedad de campos como la telefonía móvil, electrodomésticos, equipos médicos, aeronáutica, automóviles, terminales automáticos, etc. Aparte del reloj del sistema, las funcionalidades del sistema operativo en el que se basarán serán heterogéneas. Y con una flota de dispositivos igualmente heterogénea, estos dispositivos no son compatibles con todas las variaciones de los sistemas operativos existentes. Al estar en un sistema restringido, el sistema operativo debe satisfacer las necesidades del dispositivo. Por lo tanto, la adaptación se realiza encontrando el compromiso adecuado entre tamaño y rendimiento para optimizar el sistema operativo. Por lo tanto, los sistemas operativos preferidos son aquellos que solo tienen los controladores de dispositivo necesarios.

Tiempo real

Los sistemas integrados pueden tener limitaciones de tiempo. Para soportar estas restricciones, existen sistemas operativos en tiempo real que brindan servicios y primitivas que pueden garantizar los tiempos de ejecución deseados.

Para que un sistema operativo sea un RTOS, debe cumplir con 4 requisitos:

El comportamiento de sincronización del sistema operativo debe ser predecible. El sistema operativo debe asegurarse de que puede completar cada servicio en ejecución dentro de un tiempo máximo establecido. Por tanto, la programación es determinista para una gestión óptima de las tareas. El sistema operativo debe gestionar la programación de tareas. La programación puede ser impulsada por eventos (también hablamos de programación por prioridad): el programador solo cambia de tarea cuando un evento de mayor prioridad necesita servicio. También puede ser compartiendo tareas: el programador cambia de tarea en las interrupciones del reloj, lo que lo hace más multitarea en el sentido de que las tareas ya no se ejecutan una por una a los ojos del usuario. El sistema operativo debe administrar el tiempo para programar mejor las tareas de acuerdo con su fecha límite. Esta gestión es obligatoria si el tratamiento interno está vinculado a un tiempo absoluto en el entorno físico. La sincronización del reloj global se realiza (según se desee) a través de 2 estándares: UTC o TAI . Si el sistema se utiliza en una red, se sincroniza periódicamente para que todos los sistemas estén coordinados. El sistema operativo debe ser rápido. Un sistema operativo que cumpla con todos los requisitos mencionados hasta ahora sería inútil si fuera muy lento.

Sistema de archivos

Un sistema integrado no siempre necesita un sistema de archivos. Un sensor de red recupera información y la transmite inmediatamente a la red. La tarjeta bancaria o una tarjeta de acceso son contraejemplos, porque deben tener datos de usuario en la memoria. El sistema de archivos se puede integrar en el sistema operativo, lo que permite que las aplicaciones lean y escriban archivos en el espacio de memoria no volátil del sistema físico.

seguridad

A continuación, se muestra una lista de los requisitos de seguridad típicos que se pueden encontrar en los sistemas integrados que un sistema operativo puede proporcionar:

Identificación de usuario Proceso de validación de usuarios antes de darles acceso al sistema. El sistema en cuestión puede ser físico (apertura de puerta mediante tarjeta de acceso) o informatizado (cuenta y contraseña antes de poder interactuar con el software). Conexión de red segura Proporciona una conexión de red solo si el dispositivo está autorizado. Permite, en caso de intrusión, limitar su impacto en la red y los sistemas conectados. En el caso de las redes de sensores inalámbricos, esto reduce las posibilidades de que un sensor falso ingrese en ellas para recuperar los datos recopilados. Comunicación segura Incluye la autenticación de las entidades comunicantes, lo que asegura la confidencialidad e integridad de los datos transmitidos y protege la identidad de las entidades comunicantes. Dos PLC que deseen sincronizarse se autenticarán entre sí y luego intercambiarán su información al tiempo que garantizan la confidencialidad e integridad por medios criptográficos. Almacenamiento seguro Confidencialidad e integridad de los datos almacenados en el sistema. Seguridad del contenido Restricción en el uso de contenido digital de lectura y escritura en el sistema. Al proteger el contenido, garantiza un nivel de seguridad durante el uso de este sistema. Disponibilidad El sistema debe poder realizar su (s) función (es) en todos los casos. El ABS de un automóvil es un buen ejemplo, debe estar disponible siempre que lo solicitemos para garantizar la seguridad de sus ocupantes.

API / biblioteca

Para los desarrolladores, es deseable que el dispositivo tenga API para facilitar el desarrollo de la aplicación.

La máquina virtual Java incluye interfaces y otras bibliotecas nativas que le permiten integrarse fácilmente en un RTOS. Escrita en C, la máquina virtual Java se compila con RTOS e interpreta los códigos de bytes de Java para que se ejecute la aplicación. Gracias a esto, el dispositivo puede interpretar el código de bytes de Java y aprovechar las API disponibles (ejemplo: java.net para las funcionalidades tcp / ip, java.io para las entradas / salidas, ...).

Comunicación

Un sistema integrado puede tener que comunicarse con uno o más sistemas (en el caso de sistemas integrados que trabajen en colaboración) o periféricos. Para estos casos, el sistema operativo puede proporcionar las primitivas para establecer una comunicación según el medio utilizado:

Virtualización

La principal ventaja de la virtualización es la garantía de que dos aplicaciones en competencia en el mismo sistema no interfieren entre sí. El uso de la virtualización permite imponer limitaciones en el acceso a recursos y dispositivos en cada máquina virtual según las necesidades de la aplicación.

La ventaja de la virtualización es también la de hacer coexistir dos sistemas operativos diferentes (incluido el tiempo real) en un mismo procesador y por lo tanto dotar a cada proceso de las especificaciones necesarias para la ejecución de su tarea.

La virtualización también permite proporcionar un nivel de seguridad para evitar daños entre procesos. Dado que cada proceso lo inicia una máquina virtual separada, si uno de ellos tiene un problema, no tendrá ningún impacto en otros procesos que se ejecutan en otras máquinas virtuales.

Consumo de energía

Para los sistemas a bordo con autonomía energética, tiene sentido elegir un sistema operativo que limite el consumo de energía. Para limitar el consumo, existen hardware (elección de componentes, circuitos reconfigurables), software (optimización de código, uso de instrucciones específicas) y técnicas híbridas (puesta en espera de periféricos no utilizados). El sistema operativo solo puede actuar sobre soluciones híbridas y de software.

Áreas de aplicación

Las limitaciones para elegir y utilizar un sistema operativo para un sistema integrado dependen del campo de aplicación en el que se encontrará el sistema. Desde nuestros objetos cotidianos (Smartphone, electrodomésticos ...) hasta los sistemas de control de un avión o Curiosity, sin olvidar los equipos médicos, de telecomunicaciones (Satélite, antena de retransmisión ...) y militares (drones, sistema de monitorización). ...), los campos de aplicación son amplios y extensos, y sus objetivos son diversos.

Los campos de aplicación que siguen pondrán en situación las especificidades antes mencionadas.

Aeronáutica y Aeroespacial

Para satisfacer las principales limitaciones de tiempo real, los algoritmos de los sistemas de control de aeronaves se ejecutan en sistemas operativos en tiempo real. Esta necesidad surge del gran número de sensores presentes en el dispositivo y el elemento controlable.

Automotor

En el sector de la automoción, los sistemas embarcados han comenzado a implantarse desde la integración de los equipos de asistencia a la conducción en nuestros vehículos (ABS, ESP, etc.), pero también para el control de componentes del vehículo (faros, limpiaparabrisas, lunas, cerraduras de puertas, etc.). herramientas de navegación, ...). Para ello, los fabricantes de automóviles están recurriendo a sistemas operativos en tiempo real con el fin de centralizar la gestión de todos los elementos electrónicos y poder gestionar la prioridad de las tareas (para poder privilegiar el tratamiento de los elementos de seguridad ante los de comodidad). El sistema operativo elegido también debe poder comunicarse con los componentes electrónicos del vehículo mediante bus de datos.

Un ejemplo de uso en el campo de la automoción es Windows Embedded Automotive  (in) que utiliza tecnología Ford Sync  (in) .

Se están estableciendo asociaciones entre fabricantes de automóviles y empresas privadas para que el público en general conozca mejor los sistemas operativos para su uso en automóviles. Este es el caso de Apple con iOS en el coche  (en) . Y el proyecto Open Automotive Alliance de Google .

Existen grupos de fabricantes con el objetivo de tener un RTOS común como AUTOSAR , OSEK / VDX .

Robótica

Las limitaciones vinculadas al desarrollo robótico son las interacciones con los periféricos (sensores, cámara web, motores paso a paso, etc.). Por ejemplo, RoBIOS es un sistema operativo destinado al desarrollo robótico y tiene en su código binario una gran biblioteca de funciones del sistema y controladores de dispositivos para controlar y acceder a todo tipo de hardware.

Red de sensores

El trabajo del sistema operativo es administrar la asignación de recursos de manera ordenada y controlada. El programador puede utilizar llamadas al sistema para acceder a los servicios proporcionados por el sistema operativo.

A medida que las redes de sensores tienen cada vez más datos para recopilar, procesar y transmitir, las limitaciones significan que el sistema operativo debe tener varios subprocesos para satisfacer las necesidades. Al entrelazar tareas complejas y sensibles, el sistema puede aliviar el problema productor-consumidor.

Tabla comparativa de SO dedicados a redes de sensores
Sistema de explotación Arquitectura Modelo de programación Planificación Gestión y protección de la memoria Protocolo de comunicación compatible El intercambio de recursos Admite aplicaciones en tiempo real
TinyOS Monolítico. Programación de eventos. FIFO . Gestión de memoria estática con protección de memoria. Mensaje activo. Virtualización y finalización de eventos. No.
Contiki Modular. Protothreads y evento. El código se ejecuta cuando se activa el evento asociado. Programación por prioridad WRT (Worst Response Time). Gestión y vinculación dinámica de la memoria. Sin protección del espacio de direcciones del proceso. uIP y Rime. Acceso a datos serializados. No.
MANTIS Modular. Hilos. Cinco niveles de prioridad, cada uno con varios niveles de prioridad internos. Es posible la gestión dinámica de la memoria (pero no se recomienda). Sin protección de memoria. Mensaje activo. Memoria compartida con semáforos. Hasta cierto punto a nivel de secuenciación de procesos (implementación de planificación prioritaria dentro de diferentes tipos de procesos).
Nano-RK Monolítico. Hilos. Programación de tarifa monótona (RMS). Gestión de memoria estática. Sin protección de memoria. Abstracción de socket. Acceso serializado por mutex y semáforos. Proporciona una implementación del algoritmo de techo de prioridad para evitar cambios de prioridad. Si.
LiteOS Modular. Hilos y eventos. Prioridad basada en el modelo Round-robin . Gestión de memoria dinámica y proporciona protección de memoria de proceso. Comunicación de archivos. Mediante primitivas de sincronización. No.

Tarjetas inteligentes

Los sistemas operativos de tarjetas inteligentes no tienen una interfaz de usuario, al menos estas interfaces son limitadas (terminal, sensor, etc.). La principal especificidad requerida en una tarjeta inteligente es la seguridad; otra limitación es el escaso espacio de almacenamiento de memoria disponible para acomodar el sistema operativo y los datos que se almacenarán allí.

Se construye un sistema operativo de tarjeta inteligente para proporcionar un conjunto de servicios de gestión de datos, control de acceso y servicios criptográficos. Las funciones básicas de un sistema operativo que son comunes a todo tipo de tarjetas inteligentes son:

  1. Gestión de intercambios entre la tarjeta y el mundo exterior, principalmente en términos de protocolo de intercambio.
  2. Gestión de archivos y datos almacenados en memoria.
  3. Control de acceso a información y funciones.
  4. Gestión de seguridad de tarjetas y procedimientos de algoritmos criptográficos.
  5. Garantía de fiabilidad, especialmente en términos de coherencia de datos.

Móvil

Los teléfonos inteligentes son dispositivos con las capacidades de una computadora. Con el número de teléfonos inteligentes creciendo día a día, la calidad del sistema operativo debe ser esencial para poder ejecutar el mismo programa en diferentes modelos de teléfonos inteligentes. El sistema operativo determina las características, el rendimiento, la seguridad y los complementos de las aplicaciones de un teléfono inteligente. El sistema operativo debe administrar una interfaz hombre-máquina intuitiva y receptiva para que el usuario pueda ejecutar sus aplicaciones; también debe ayudar a minimizar el consumo de energía del teléfono inteligente .

Ver también

Notas y referencias

Notas

  1. Sistema operativo en tiempo real
  2. Hora universal coordinada
  3. hora atómica internacional
  4. Sistema de rueda antibloqueo

Referencias

  1. Silberschatz 2012 , p.  11
  2. Duquennoy , p.  15-16
  3. Marwedel , pág.  178
  4. Rankl , pág.  441
  5. Lennon , pág.  34
  6. Hisazumi , pág.  1
  7. Marwedel , pág.  180
  8. Ficheux , pág.  12
  9. Marwedel , pág.  182-185
  10. Rankl , pág.  448
  11. Ravi , pág.  4-5
  12. Mulchandani , pág.  2
  13. Hristu-Varsakelis , p.  466
  14. Heiser , p.  12
  15. Parain , pág.  12
  16. Jin Kim , pág.  3
  17. Nabo , p.  1024
  18. Ghangurde
  19. "  Open Automotive Alliance  " en openautoalliance.net (consultado el 17 de enero de 2014 )
  20. Bräunl , pág.  377
  21. Farooq , p.  2
  22. Bhatti , 2005 , p.  1
  23. Rankl , pág.  444
  24. Selimis , pág.  146-147
  25. Lin

Bibliografía

Documento utilizado para redactar el artículo : documento utilizado como fuente para este artículo.

Sistemas ciberfísicos - Sistemas integrados - Optimización multiobjetivo Enfréntate al mundo real de los sistemas operativos totalmente equipados Nuevo estudio de caso: tratado OpenEmbedded Nuevo estudio de caso: tratado OpenEmbedded

Documento utilizado para redactar el artículo