本文主要是介绍Linux 并发与竞争,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Linux 并发与竞争
值得一谈,本章与前公司裸机开发的项目中,需要考虑的共用内存的干涉的问题类似,主要针对全局变量在多个中断Level中都会进行读写操作时,需要进行排他处理。需要分析上层任务和下层任务的读写关系,决定是否需要有排他处理的操作,一般采用的排他处理是中断禁止/许可。以Cortex -A7为例,中断禁止的方式为CPSR的bit6和bit7置1。另外,需要考虑以下问题:
①中断禁止的区间,是否过长,过长是否会影响到下个中断的执行,原则上禁止延迟两个中断的执行时间,若超过认为是NG。
②中断禁止的Level,可以通过中断的某个寄存器进行配置,写入level号时,只会禁止比其优先级低的中断等级,因此,原则上仅禁止有影响的中断level,具体需要分析到该全局变量会被调用的最高优先级的中断处理函数,判定中断level,然后才能禁止。
③中断禁止/许可的时机需要进行确认,原则上,需要保证全局变量的同期性,不能随用随禁,需要具体情况具体分析。
这篇关于Linux 并发与竞争的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!