RTOS共享资源保护-互斥量实现共享资源的保护

互斥量实现共享资源的保护

概述

上节讲述了使用二值信号量保护共享资源时可能出现优先级反转的问题。本节讲述的互斥信号量是改善优先级反转问题的策略之一。

互斥信号量(Mutex是,简写为 Mux)添加了优先级继承机制的特殊的二值信号量。其典型的结构如下:
RTOS共享资源保护-互斥量实现共享资源的保护_第1张图片

如上图所示,互斥信号量是二值信号量的改造,与二值信号量一样,其不需要消息缓冲区,并且最大消息数量为1。在二值信号量的基础上,互斥信号量增加了“拥有者”字段(指示当前的互斥信号量被哪个任务正在使用),并通过“拥有者原优先级”字段记录当前正在占用信号量的任务的优先级。

互斥信号量如何降低优先级反转的影响

使用互斥信号量时,当发生优先级反转时,将触发一种优先级继承机制(priority inheritance),来加速低优先级任务的运行,然后让高优先级任务尽快得到运行。

RTOS共享资源保护-互斥量实现共享资源的保护_第2张图片

首先,高优先级的任务3不能从任务1中“强取豪夺”式地霸占LED灯资源(*因为任务的优先级仅决定其获取CPU资源的优先级别,决定不了非CPU资源的分配,比如,这里的LED灯资源*),但是为了尽可能快地获得执行&#

你可能感兴趣的:(双核,RTOS,进阶篇,freertos,c语言,iot,单片机)