RTOS 中断篇-中断与任务共享资源冲突示例

RTOS 中断篇-中断与任务共享资源冲突示例

概述

在前述 Task 之间资源共享示例 章节中我们已经学习了共享资源的概念,以及共享资源面临的正确性、完整性的威胁。

当引入中断后,中断与中断之间、中断与任务之间同样存在共享资源的访问使用竞争的问题。如前所述,中断相比于任务拥有绝对的优先权,因此中断可以看作非常高优先级的任务,并且中断之间也有优先级。高优先级中断和低优先级中断发生共享资源竞争的现象和中断与任务发生共享资源竞争的现象非常相似,因为低优先级的一方总是被抢走 CPU 的使用权(高优先级中断>低优先级中断>高优先级任务>低优先级任务)。

因此,这里以中断与任务资源共享的示例来介绍如何处理这种问题,读者朋友可以将介绍到的一些方法,适用到中断与中断之间的共享资源的保护和处理。本节只是引出一个中断与任务之间产生共享资源竞争的例子,一些解决方法我们将在后续章节进行讲解。

需求及功能解析

这里以任务想要将共享变量设置为指定的值,然后获取该共享变量的值为例子。当某次任务设置共享变量的值后,任务还没有完成使用共享变量的值就触发了中断并修改了这个值,此时任务得到的值就被篡改了:

猜你喜欢

转载自blog.csdn.net/wangyx1234/article/details/128227091