FreeRTOS之互斥信号量及优先级继承机制综合

628 阅读1分钟

1 互斥量及优先级继承机制

  • FreeRTOS 提供的互斥量可以通过优先级继承算法,可以降低优先级翻转问题产生的影响,所以,用于临界资源的保护一般建议使用互斥量。

1.1 优先级继承机制

  • 在 FreeRTOS 操作系统中为了降低优先级翻转问题利用了优先级继承算法。优先级继 承算法是指,暂时提高某个占有某种资源的低优先级任务的优先级,使之与在所有等待该 资源的任务中优先级最高那个任务的优先级相等,而当这个低优先级任务执行完毕释放该 资源时,优先级重新回到初始设定值。因此,继承优先级的任务避免了系统资源被任何中 间优先级的任务抢占
  • image.png
  • 优先级不继承时,导致H任务等待时间=M任务执行时间+L任务执行时间 image.png
  • 优先级继承时,H任务等待时间=L执行时间,M任务不会抢占L任务 image.png

2 示例

  • 配置使能 image.png
  • 句柄 image.png image.png
  • Main image.png
  • 创建互斥量 image.png
  • LowPriority_Task image.png
  • MidPriority_Task image.png
  • HighPriority_Task image.png
  • 实验结果(H任务等待时间=L执行时间,M任务不会抢占L任务)
  • image.png