任务通信(IPC)
IPC(Inter-Process Communication)定义了任务之间的数据交换与同步机制, 是实时系统中任务协作与调度的核心基础。
模块概述
核心目标:保证任务协作可预测、同步机制可靠、系统行为确定
IPC(Inter-Process Communication)模块是 HRTOS 系统中核心的任务协作层(任务通信层)。 它定义了任务之间如何交换数据、如何同步执行以及如何管理共享资源。 在实时系统中,IPC不仅仅是数据传输,它直接影响任务响应时间、调度顺序和系统稳定性。
IPC = 数据传递 + 状态变化 + 调度触发
在实时系统里,IPC 的作用远不止“把数据从 A 送到 B”。每一次发送、接收、阻塞和唤醒,都会改变就绪队列和 CPU 归属,因此 IPC 实际上也是调度机制的一部分,只不过它以通信对象的形式表现出来。
关键概念
- 信号量(Semaphore):用于任务同步和互斥,保证共享资源访问安全。
- 事件组(Event Group):允许任务等待多个事件组合,提供灵活的通知机制。
- 邮箱(Mailbox):轻量级消息传递机制,适合单一数据传递。
- 共享内存(Shared Memory):提供高速数据共享,但需要严格同步控制以避免竞态条件。
这些对象的差异,本质上是“谁拥有数据、谁拥有时序、谁承担等待成本”的差异。消息队列更强调顺序和缓冲,信号量更强调所有权与互斥,事件组更强调状态组合,邮箱则更适合低开销的单点通知。
核心模块
可通过以下页面深入理解每个 IPC 机制的实现和应用: