QPC 框架深度解析: Active Object 与层次状态机的嵌入式实践
QP/C 是面向嵌入式实时系统的事件驱动框架,核心是 Active Object 并发模型与层次状态机。本文剖析它的三大支柱:HSM 的冒泡-继承-覆盖机制与 QHsm/QMsm 双实现、QActive 零拷贝无锁事件队列的 SPSC 设计,以及在 RT-Thread 上的移植方案。
QP/C 是面向嵌入式实时系统的事件驱动框架,核心是 Active Object 并发模型与层次状态机。本文剖析它的三大支柱:HSM 的冒泡-继承-覆盖机制与 QHsm/QMsm 双实现、QActive 零拷贝无锁事件队列的 SPSC 设计,以及在 RT-Thread 上的移植方案。
共享内存是 Linux 上延迟最低的 IPC 机制,但 POSIX shm_open/mmap 缺少同步、生命周期管理和崩溃恢复。本文剖析 newosp 中 ShmRingBuffer 的 CAS 无锁设计、ARM 内存序加固与缓存行对齐,并与 cpp-ipc 对比架构取舍。
线程间消息传递用 mutex + priority_queue + promise/future 组合会带来锁竞争和热路径堆分配。本文用 MCCC 无锁消息总线重写 SendMessage/PostMessage,并给出测试与 Sanitizer 验证结果。
无锁编程的原理梳理。从 CAS 原子操作的硬件实现出发,界定 lock-free 与 wait-free 的进展保证差异,分析 ABA 问题及其解法,说明 acquire/release 内存序的必要性,并以 SPSC/MPSC/MPMC 三种队列模式为主线串联设计与落地。