RTOS基础-临界资源,任务抢占,互斥信号
1. 临界资源是什么意思?
AB上厕所 但是厕所只有一个 同时只能一个去上,厕所就是一个临界资源
2. 同优先级任务的抢占
如果AB任务都涉及到LCD的控制,对于临界资源,我们只能让A或者B中的一个进行执行,这里有一个问题就是怎么控制比如说在A运行的过程中,B阻塞起来,因为B阻塞直到A执行完后再执行B这样的话执行的效率会比较高
上述的引入中断开启/关闭的过程B一直在判断等待,这样对CPU的资源利用来说是一个巨大的浪费
通过在引入全局中断可以极大概率避免掉AB的互斥引起的问题,但是由于汇编上CPU的取指 执行过程的分步执行,这样会导致一个很大的问题就是可能对于A来说,A任务对全局变量的值还没有减去(自减没有成功),B任务就已经进入了LCD的任务执行(B已经把全局变量自减),这样还是会让AB任务同时执行
3. 互斥保证任务处理的正确性
阻塞和唤醒的机制保证提高任务执行的效率
FreeRTOS提供了多种解决方案
- 队列
- 事件组
- 信号量
- 任务通知
- 互斥量
原文地址:https://blog.csdn.net/qq_45956475/article/details/143782036
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!