Hardware básico de computadoras
2. Sistemas operativos utilizados en sistemas automáticos industriales
2.2. Conceptos generales de sistemas operativos.
¿Qué hace realmente un sistema operativo?
En cualquier sistema automático, la plataforma computacional debe ejecutar múltiples funciones de manera concurrente. Independientemente de la complejidad del sistema, estas funciones compiten por un recurso común: el procesador.
Considérese una estación de adquisición y control basada en un ESP32/STM32. El sistema debe ejecutar las siguientes funciones:
- Adquisición periódica de sensores.
- Ejecución del algoritmo de control.
- Actualización de una interfaz HMI.
- Comunicación mediante WiFi.
- Atención de solicitudes Modbus TCP.
- Registro de eventos en memoria.
Aunque estas funciones parecen ejecutarse simultáneamente, un núcleo de procesamiento únicamente puede ejecutar una instrucción en un instante determinado. Por lo tanto, surge un problema fundamental:
¿Cómo administrar el tiempo de utilización del procesador para garantizar el correcto funcionamiento de todas las tareas del sistema?
La respuesta a esta pregunta constituye la función principal de un sistema operativo.
Limitaciones de la programación secuencial
En un sistema secuencial, el tiempo de ejecución del ciclo completo depende de la suma de los tiempos individuales de todas las funciones.
Por lo tanto, una única tarea con un tiempo de ejecución elevado incrementa el tiempo de respuesta del sistema completo.
Por ejemplo, si una transmisión WiFi demora varios cientos de milisegundos, durante ese intervalo ninguna de las restantes funciones podrá ejecutarse. Como consecuencia:
- aumenta el tiempo entre adquisiciones de sensores;
- disminuye la frecuencia de actualización del algoritmo de control;
- la interfaz gráfica deja de responder;
- las comunicaciones industriales presentan retardos.
En aplicaciones industriales críticas, este comportamiento resulta inaceptable.
Definición
Un Sistema Operativo (Operating System, OS) es el conjunto de programas que actúa como intermediario entre el hardware de una plataforma computacional y las aplicaciones desarrolladas por el usuario.

Su objetivo principal consiste en administrar los recursos físicos del sistema y proporcionar servicios que faciliten el desarrollo y la ejecución de aplicaciones.
Desde el punto de vista funcional, un sistema operativo puede interpretarse como un administrador de recursos, encargado de coordinar el acceso al procesador, la memoria, los dispositivos de entrada/salida y los medios de comunicación disponibles.
Objetivos de un sistema operativo
Todo sistema operativo persigue, en mayor o menor medida, los siguientes objetivos:
- Maximizar la utilización de los recursos disponibles.
- Facilitar el desarrollo de aplicaciones.
- Garantizar la ejecución ordenada de múltiples programas.
- Proteger la integridad del sistema.
- Administrar eficientemente el hardware.
- Proporcionar mecanismos de comunicación entre aplicaciones y dispositivos.
En aplicaciones industriales estos objetivos adquieren un significado particular, ya que además deben garantizarse tiempos de respuesta compatibles con las necesidades del proceso.
Componentes básicos de un sistema operativo

Aunque la arquitectura interna depende de cada implementación, la mayoría de los sistemas operativos poseen componentes similares.
Núcleo (Kernel): Es el componente central del sistema operativo.
Administra el procesador, la memoria y los dispositivos físicos, además de coordinar la ejecución de los programas. En sistemas industriales el kernel suele incorporar mecanismos especiales para garantizar tiempos de respuesta determinísticos.
Scheduler: Es el módulo encargado de decidir qué tarea utilizará el procesador en cada instante.
Su funcionamiento depende de la política de planificación implementada por el sistema operativo.
Este componente resulta especialmente importante en sistemas de tiempo real.
Administrador de memoria: Controla la asignación y liberación de memoria utilizada por las aplicaciones. En sistemas embebidos suele trabajar con recursos muy limitados, mientras que en computadoras industriales administra varios gigabytes de memoria RAM.
Sistema de archivos: Permite organizar y almacenar información de forma permanente. Puede estar presente en computadoras industriales, IPC y servidores, aunque muchos microcontroladores funcionan sin un sistema de archivos tradicional.
Drivers o controladores de dispositivos: Son módulos de software que permiten al sistema operativo comunicarse con el hardware.

Recursos administrados por un sistema operativo
Desde el punto de vista de la ingeniería, un sistema operativo administra cinco grandes grupos de recursos.
| Recurso | Función |
|---|---|
| Procesador | Planificación de tareas |
| Memoria | Asignación y protección |
| Dispositivos de E/S | Acceso al hardware |
| Almacenamiento | Organización de archivos |
| Comunicaciones | Gestión de redes y protocolos |
Servicios proporcionados por un sistema operativo

El sistema operativo proporciona una serie de servicios que simplifican el desarrollo de aplicaciones.
Entre los más importantes se encuentran:
