定时器定时为1ms
CPU 在定时器中断服务函数中 需要执行任务1.2ms
当定时器定时的1ms时间到来的时候 会有什么变化?
T = 1
T ------- T+1 --------- T+1+1 --------
T ------- T+1+1.2 --------- T+1+1+1.2+1.2 --------
第一种假设:
CPU执行的时间不被打断
那么是第一种情况
T ------- T+1.2 --------- T+2.4 --------
定时器的角度:
第一个周期是 T
第二个周期则是 T+1+1.2
第三个周期则是 T+1+1+2.4
????????????????
也不是不合理 定时器定时的时间 比原来每个周期 多等T+1.2
CPU的角度:
每次进入定时中断 都能把任务执行完 OK
第二种假设
CPU执行的时间被打断
那么是第二种情况
T ------- T+1 --------- T+1+1 --------
定时器的角度:
第一个周期是 T
第二个周期是 T+1
第三个周期是 T+1+1
每次定时都是准确的 OK
CPU角度:
每次任务需要执行1.2s超过了 定时器定时的时间
还有剩下0.2的任务 ???
分两种情况:
第一种:
剩下0.2秒的任务 下一次执行
那么每次CPU执行任务 都只能执行一部分 (显然不合理呀)
第二种:
剩下的0.2秒的任务 丢弃
那么每次CPU执行的任务 都丢弃一部分(这个更不合理)
综合两种假设
CPU执行不被打断 合理(满足CPU的执行)
定时器等待的周期变了 原本是每个周期等待T 现在是每个周期等待T+1.2
对定时器也没有什么影响
这样不会影响每次CPU的执行
变向的看出 CPU执行的优先级是高于定时器中断的
整体看来 整个系统的实时性往后延迟了, 一般CPU执行的任务时间小于定时器的定时时间 。