本帖最后由 刘前辈 于 2011-8-25 18:46 编辑
呵呵,有2位斑竹,禁不起逗,…… 几年前写的帖子,恍惚隔世,如今今非昔比了。
解决中断带来的问题的方法:
1、 最简单的方法:关闭中断,防止一切的异步事件的发生当然就防止竞争的出现,避免了对当前程序或者资源的干扰。问题:如果当前程序执行的很长就导致了CPU丢失中断时间,造成有些事件不能被处理,所以我们要保证关闭中断的时间尽量的短。
2、 ……
3、 ……
4、 操作系统中提到的“信号量”的概念,其也就是高级的标志位。
在51系统当中也可以引进此概念,构造一个简单的信号量,可以解决多任务抢占资源的问题。
5、“自旋锁”的概念等等,除此之外在操作系统中有很多细分的方法应对不同的场合,可以解决中断所带来的的问题。
经验感觉:
除了上述的一些方法之外,当我们写程序架构的时候应该做到“中断程序”
和“主程序”之间要有界限,不能互相干扰,如果一些实时性要求很高的程序可以放在中断程序中执行,但是要保证函数的简短,防止中断嵌套带来的问题或者死循环等。
、、
、、
# 41楼
不想解释鸟~~愿意看就看,不看拉倒。。。
仔细看我写的是啥再说话,我啥时候说在中断里加lock了,我啥时候说睡眠的lock了。
咱中文学得不好,又是菜鸟,楞没看懂LZ说的是啥,对LZ的5点解决中断带来的问题建议理解有偏差,还请多多包涵。
、、 |