Documentación para ingenieros de control de instalaciones
Concurrencia en C++ para plantas industriales
Semáforos, colas bloqueantes y patrones de sincronización explicados desde el punto de vista del control de instalaciones: hilos que coordinan cintas, prensas, robots, AGV y reguladores, con laboratorios interactivos que muestran qué línea de código produce cada efecto en la planta.
Aprende
Hilos con std::thread
Crear, lanzar y reunir hilos; paso de parámetros, jthread y stop_token.
FundamentosRiesgos del estado compartido
Condiciones de carrera, atomicidad y por qué el código «funciona en las pruebas».
FundamentosMutex y candados RAII
lock_guard, unique_lock y scoped_lock para regiones críticas seguras.
FundamentosVariables de condición
Esperar por condiciones reales sin consumir CPU: wait, notify, predicados.
FundamentosSemáforos
La herramienta clásica de Dijkstra: teoría, API de C++20 y usos industriales.
SemáforosColas seguras
Construir colas bloqueantes productor–consumidor con mutex y variables de condición.
ColasAplica patrones
Productor–consumidor
El patrón central de toda planta: buffers entre estaciones, capacidad limitada.
Lectores–escritores
Recursos compartidos con muchos lectores y escritores ocasionales: pasillos, tablas, almacenes.
Barrera y rendezvous
Puntos de encuentro entre hilos: lotes, fases de proceso, arranques coordinados.
Pipeline y cintas
Cadenas de etapas encadenadas por semáforos y colas: cintas, máquinas, transfer.
Diseña tu planta
Arquitectura de control
Cómo traducir una instalación física a hilos, semáforos y colas de mensajes.
Control de plantaDiseño paso a paso
Método completo: inventario de elementos, recursos, sincronizaciones y mensajes.
Control de plantaSupervisión, alarmas y parada
Hilo supervisor, cola de alarmas, timeouts y parada ordenada con jthread.
Control de plantaLaboratorios interactivos
Simuladores ejecutables en el navegador: cada hilo muestra su código y la línea exacta que está ejecutando; los semáforos y colas cambian de valor en vivo y la planta reacciona. Puedes avanzar paso a paso.
Célula FMS: prensa, CNC y robot
Cuatro hilos coordinados con seis semáforos productor/consumidor y el robot como región crítica.
SemáforosLínea de envasado
Buffer limitado entre llenadora y empaquetadora: huecos, elementos y mutex.
Buffer limitadoLínea de mecanizado con colas
Seis hilos pasando mensajes por colas bloqueantes; observa el backpressure del cuello de botella.
ColasConsulta permanente
Hoja de referencia
API de <thread>, <mutex>, <condition_variable> y <semaphore> de un vistazo.
Errores comunes
Deadlocks, signal perdidos, wait sin predicado… y cómo evitarlos.
Ejercicios resueltos
Instalaciones completas resueltas con el estilo clásico de semáforos sp/sc.
Glosario
Región crítica, inanición, prioridad inversa… el vocabulario esencial.