UC/OS学习笔记-资源同步

1:相关概念

共享资源:被两个以上的并发程序单元(任务或ISR)访问的资源。共享资源一定是全局变量。

 

若共享资源具有只读特性,则不需要采取资源同步措施。各个任务可以任意交叉嵌套地对资源进行读取。

 

 

2:资源同步可以划分为两种情况

   访问共享资源的并发程序中含有ISR。

   访问共享资源的并发程序中只有任务。

 

         2.1含有ISR  此类必须采用关中断的办法来访问共享资源。

                  

                   情况1:若共享资源为全局变量,处理起来比较简单。直接调用 0S_ENTER_CRITICAL和0S_EXIT_CRITICAL函数。

                   情况2:若任务处理共享资源需要时间,所有共享资源都用关中断保护会极大影响实时性。则在任务中可以将共享资源拷贝到局部变量中。拷贝过程中关中断。                  

注意:关中断好处是简单,缺点是影响系统实时性。因此访问共享资源的临界代码必须尽量简单,常用于全局变量和小规模全局数据结构的访问。

 

         2.2共享资源使用者只有任务

                   可采用关中断,关调度,使用互斥信号等办法。常用互斥信号,因为它具有处理优先级反转的功能。

                   注意:互斥信号的初始值为0xff(表示资源有效)。用完后调用OSMutexPost函数解除对共享资源的占有。

                  

 

思考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值