并发和并行

并发:在单 CPU 核心(或 CPU 核心数少于任务数)的环境下,操作系统通过 “时间分片”(给每个任务分配极短的执行时间,比如 10 毫秒),让多个任务交替在 CPU 上执行,从而 “模拟出同时运行的效果”。

并行:多 CPU 核心(或 CPU 核心数≥任务数)的环境下,多个任务被分配到不同的 CPU 核心上,每个核心独立、同步地执行一个任务,实现 “真正的同时运行”。

一、嵌入式领域的并发:在有限资源下 “高效切换”

嵌入式系统(尤其是中低端 MCU/MPU)常采用单核心处理器(如 8 位 MCU、32 位 ARM Cortex-M0/M3),此时多任务处理只能通过 “并发” 实现 —— 即通过任务调度器在多个任务间快速切换,模拟 “同时运行” 的效果。

1. 核心实现方式:基于 RTOS 的任务调度

嵌入式并发的典型载体是实时操作系统(RTOS),如 FreeRTOS、uC/OS、RT-Thread,其核心是 “时间分片” 或 “优先级抢占” 机制:

  • 优先级抢占:高优先级任务可打断低优先级任务(如 “火灾报警” 任务(高优先级)打断 “温度采集” 任务(低优先级));
  • 时间片轮转:同优先级任务按固定时间片(如 10ms)交替执行(如 “显示刷新” 和 “按键检测” 任务轮流运行)。
2. 典型场景:单核心处理多外设 / 功能
  • 智能家居控制器:单核心 MCU 需同时处理 “按键输入检测”“温湿度传感器读取”“WiFi 数据收发”“LED 指示灯闪烁” 等任务,通过 RTOS 调度实现并发;
  • 汽车仪表盘:单核心处理器需同时更新车速、油量、水温等多个参数的显示,并响应方向盘按键输入,通过任务切换确保各功能 “看起来同时工作”。
3. 关键挑战:上下文切换与实时性

嵌入式系统的并发需严格控制 “上下文切换开销”(保存 / 恢复寄存器、栈指针等状态),否则会影响实时性:

  • 例如:一个要求 1ms 响应的电机控制任务,若被其他任务切换占用了 0.5ms,可能导致电机控制失准;
  • 解决方案:通过任务优先级划分、优化调度算法(如 FreeRTOS 的 Tickless 模式减少不必要的切换)降低开销。

二、嵌入式领域的并行:多核心 / 外设 “真正协同”

随着嵌入式系统功能复杂化(如自动驾驶、工业机器人),多核处理器(如 ARM Cortex-A53/A72、TI 的 Dual-Core MCU)和专用硬件模块(如 DMA、PWM 定时器、硬件加速器)逐渐普及,并行处理成为提升性能的核心手段。

1. 核心实现方式:硬件级并行
  • 多核 CPU 并行:不同核心独立运行不同任务(如核心 1 处理传感器数据,核心 2 负责控制算法);
  • 外设与 CPU 并行:CPU 与硬件外设(如 DMA、ADC)同时工作(如 CPU 执行逻辑判断时,DMA 自动完成数据从传感器到内存的传输);
  • 专用加速器并行:如 FPGA 协处理器与主 CPU 协同,FPGA 负责高速信号处理,CPU 负责决策(如雷达信号的实时滤波与目标识别)。
2. 典型场景:高性能嵌入式系统
  • 自动驾驶域控制器:多核 SoC 中,一个核心处理摄像头图像,一个核心运行激光雷达算法,一个核心负责车辆控制,三者并行执行以满足毫秒级决策需求;
  • 工业机器人控制器:主 CPU 运行运动控制算法,协处理器(如 DSP)并行处理力反馈信号,DMA 控制器同步传输编码器数据,三者协同实现高精度运动控制;
  • 智能家居网关:双核 MCU 中,一个核心处理 ZigBee 设备通信,另一个核心运行 WiFi 联网功能,并行工作避免单核心时的通信阻塞。
3. 关键挑战:任务拆分与数据同步

嵌入式并行的难点在于如何合理拆分任务及处理核心间的数据交互:

  • 任务拆分:需将功能拆解为 “可并行执行” 的模块(如 “数据采集” 和 “数据处理” 可并行,而 “数据处理” 必须依赖 “数据采集” 的结果,无法并行);
  • 数据同步:多核 / 外设间共享数据时需避免冲突(如用共享内存 + 互斥锁、消息队列等机制,确保核心 1 写入数据后核心 2 再读取)。

三、嵌入式领域特有的 “并发 + 并行” 混合模式

多数中高端嵌入式系统会同时采用并发与并行,以平衡资源利用率和实时性:

  • 例 1:智能手表

    • 主 CPU(单核心)通过 RTOS 并发处理 “心率检测”“时间显示”“触摸交互” 等任务;
    • 同时,硬件定时器(独立于 CPU)并行运行,负责周期性触发屏幕背光和传感器采样,不占用 CPU 资源。
  • 例 2:无人机飞控

    • 双核 MCU 中,核心 1 通过并发处理 “GPS 定位”“气压计数据读取”;
    • 核心 2 并行运行 “姿态控制算法”;
    • 同时,DMA 控制器与 CPU 并行工作,自动完成传感器数据到内存的传输,减少 CPU 负担。

扩展:在单片机裸机开发中常见用状态机写法实现并发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值