关于定时器中断中CPU执行任务

定时器定时为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执行的任务时间小于定时器的定时时间 。


                

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值