FreeRTOS学习笔记之-------FreeRTOS信号量(计数型、互斥、递归)基础知识 2020.4.22

知识点:

  1. 二值信号量相当于长度为1的队列,那么计数型信号量就是长度大于1的队列,同二值信号量一样,用户不需要关心队列中存储了什么数据,只需要关心队列是否为空即可。

  2. 优先级翻转
    当一个低优先级任务和一个高优先级任务同时使用一个信号量时,而系统中还有其他中等优先级时,如果低优先级任务获得了信号量,那么高优先级的任务就会处于等待状态。但是,中等优先级的任务可以打断低优先级任务而先于高优先级任务运行(此时高优先级的任务在等待信号量,所以不能运行),简单的二值信号量和互斥信号量不能解决这个优先级翻转问题。

  3. 不同于二值信号量的是互斥信号量具有优先级继承的特性。当一个互斥信号量正在被一个低优先级的任务使用,而此时有个高优先级的任务也尝试获取这个互斥信号量的话就会被阻塞。不过这个高优先级的任务会被低优先级任务的优先级提升到与自己相同的优先级,这个过程就是优先级传承。

  4. 递归互斥信号量可以看做一个特殊的互斥信号量,已经获取了互斥信号量的任务就不能再次获取这个互斥信号量,但是递归互斥信号量不同,已经获取了递归互斥信号量的任务可以再次获取这个递归互斥信号量,而且次数不限制。并且获取多少次信号量,就需要释放多少次信号量。

原创文章 44 获赞 88 访问量 8903

猜你喜欢

转载自blog.csdn.net/qq_40544107/article/details/105677639