转自:http://blog.csdn.net/buaaroid/article/details/7431256 

全局变量OSIntNesting有两个用途:

第一是用来记录中断嵌套的层数,中断嵌套也就是说当第一个中断发生而没有结束的时候,又发生了第二个更重要的中断,依次类推,此时OSIntNesting就用来表示嵌套的层数,也就是有多少个中断在发生或者等待处理,也就是说每当有中断发生时,就将OSIntNesting加1,有中断结束的时候,就将OSIntNesting减1;

第二是作为调度器是否可进行调度的标志,以保证调度器不会在中断服务程序中进行任务调度,也就是当OSIntNesting大于0的时候,将调度器加锁,OSIntNesting等于0的时候,调度器解锁。(这样理解调度器的加锁和解锁,是否正确?中断服务自程序结束前,会进行一次任务调度。这个时候调度器不是锁上的吗?如何调度呢?)