IPC基础(Inter-Process Communication)

IPC不是通信机制集合,而是RTOS内部任务协同结构的语义层。 它定义任务之间如何形成数据关系、同步关系与执行依赖关系。

IPC Layer Task Coordination RTOS Structure

任务协同本质

在RTOS中,任务默认是隔离执行单元。 IPC的作用不是“连接任务”,而是定义它们之间的依赖关系。

IPC不是让任务“互相说话”, 而是规定: 1. 谁等谁(同步关系) 2. 谁给谁数据(数据路径) 3. 等多久(时间约束)

为什么必须存在IPC

多任务系统如果没有IPC,本质上是不可控并发系统。 问题不在“能不能通信”,而在“是否能保证一致性”。

无IPC → 系统退化为: - 数据竞争不可控 - 状态无法同步 - 执行顺序不可预测 - 实时性失效

IPC的四种语义模型

消息队列 → 数据流
信号量 → 资源控制
共享内存 → 状态共享
管道 → 连续流

通信机制的真实职责

IPC组件的差异不在“实现方式”,而在“系统语义”:

消息队列:解耦时间关系(生产/消费模型)
信号量:控制资源访问顺序(互斥/同步)
共享内存:最高性能,但依赖外部一致性控制
管道:适用于连续数据流场景

IPC与实时性的关系

IPC不会提升实时性,但决定实时性是否稳定。 问题通常来自阻塞、队列长度与临界区设计。

实时风险来源: - 阻塞行为 - 资源竞争 - 拷贝开销 - 切换放大

系统位置

中断 → 唤醒/更新状态 → 调度器决策 → 上下文切换 → 任务执行 → IPC协同

设计本质总结

IPC不是通信工具,而是:RTOS任务关系的结构定义层,决定系统是“独立任务集合”,还是“可预测协同系统”

系统关联路径