临界区管理

本文介绍了临界区的概念,即需要互斥执行的代码段,并探讨了管理临界区的三种方法:包括不推荐的简单开关中断、支持中断嵌套的OS_ENTER_CRITICAL方式以及M3处理器的CPSID指令实现。详细阐述了M3的第三种临界管理方式,包括函数包装、OS_CPU_SR_Save和OS_CPU_SR_Restore的使用。
摘要由CSDN通过智能技术生成

1.临界区

临界区是指必须以互斥的方式执行的代码段,也就是说临界区范围内只能由一个活动的线程。例如:修改共享变量的过程中其他的执行线程可能会访问共享变量,那么修改共享变量的代码就被看成是临界区的一部分。临界区问题指用安全、公平和对称的方式来执行临界区代码的问题

2.管理临界区的三种方法

第一种方法
#if     OS_CRITICAL_METHOD == 1  
#define     OS_ENTER_CRITICAL() __asm__("cli")  
#define     OS_EXIT_CRITICAL() __asm__("sti")  
#endif  

第二种方法

#if     OS_CRITICAL_METHOD == 2  
#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值