UCOSII临界区处理方法


临界区

    一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性

        有线程进入临界区段时,其他线程或是进程必须等待

        一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用

                例:semaphore

                例:打印机(只能被单一线程访问的设备)


UCOSII对临界区的处理方法

    ①中断开关的方式

        临界区一旦被访问,那么就关闭所有中断,防止执行过程被更高级中断打断

        保证了数据的同步性,但可能会导致一些紧急事件未能及时处理

    ②压栈的方式

        临界区在被访问过程中,被中断打断,就对该状态数据进行压栈处理

        保证各个事件按等级正常运行,但数据无法保证同步性,压栈的数据在出栈时,上次的中断可能已经修改了数据,出栈显得不意义

    ③保存在本地局部变量

      

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值