前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式技术栈之RTOS的优先级翻转问题

嵌入式技术栈之RTOS的优先级翻转问题

作者头像
心跳包
发布2022-04-13 14:08:13
4030
发布2022-04-13 14:08:13
举报

目录

1.什么是任务优先级翻转?

2.举一个翻转的时序图(图片来自网络)

3.优先级翻转的危害

4.解决优先级翻转的方法

1.什么是任务优先级翻转?

优先级翻转就是一个中断优先级的任务在某种情况下,比高优先级任务优先执行,造成了一种任务优先级翻转的现象。

补充说明:这种情况的一种情景:

前置条件:当前有三个任务A,B,C优先级大小是A>B>C;信号量M

C任务正在执行,它持有信号量M,A优先级任务需要通过信号量M去访问一个共享资源,但是被C占有导致,A被阻塞,可能出现C运行中,出现比A低的B优先级任务(不需要这个信号量执行任务)抢占了C的优先级。造成A和B任务翻转。

2.举一个翻转的时序图(图片来自网络)

A

当前有三个任务A,B,C优先级大小是A>B>C;共享资源M。就是1中描述的现象。

3.优先级翻转的危害

造成任务调度实时性不准确;

造成任务逻辑错误;

造成系统崩溃;

4.解决优先级翻转的方法

方法一:程序规划的时候,减少互斥和信号量的使用。

方法二:使用互斥量,因为互斥量有优先级继承的特性。

方法三:动态调整优先级:当有比正在执行的任务优先级高的任务也访问共同资源时,把正在执行的任务优先级提到最高优先级,执行完毕后再变会原来的优先级。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是任务优先级翻转?
  • 2.举一个翻转的时序图(图片来自网络)
  • 3.优先级翻转的危害
  • 4.解决优先级翻转的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档