Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144695
  • 博文数量: 58
  • 博客积分: 130
  • 博客等级: 入伍新兵
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 21:38
文章分类
文章存档

2012年(22)

2011年(36)

分类:

2012-02-25 06:47:08

原文地址:多任务系统——中断 作者:陈贞_Rock

多任务系统中关中断的时间应该尽可能的段,太长可能造成中断丢失。微处理器一般允许中断嵌套。即在中断服务期间可以识别一个更重要的中断,并服务于那个更重要的中断。
    实时系统中,与中断相关的主要指标有一下几个:
 
1.中断延迟:
 
    这是实时系统中最主要的指标。
    中断延迟 = 关中断的最长时间+开始执行中断服务程序第一条指令需要的时
 
2.中断响应:
 
    即从中断发生到执行中断服务需要的时间。包括开始处理这个中断前的全部开销(保护现场等用掉的时间)。
对于前后台系统:保存寄存器值以后立即执行中断代码:
    中断响应时间=中断延迟+保存CPU全部寄存器需要的时间
对于不可剥夺型内核:微处理器保存寄存器的全部值以后,中断服务程序立即执行:
    中断响应时间=中断延迟+保存CPU全部寄存器需要的时间
对于可剥夺型内核:先调用一个特定函数通知内核即将开始中断服务。使内核可以跟踪中断嵌套:
    中断响应时间=中断延迟+保存CPU全部寄存器需要的时间+内核进入中断服务函数的执行时间
 
注:中断响应是系统在最坏情况下的响应中断的时间。比如100次中99次响应中断的时间是50us,只有一次是1000us,则中断响应时间为1000us。
 
3.中断恢复时间:
 
    对于不可剥夺型内核:中断回复时间为处理器返回到被中断的代码需要的时间。或者返回到更高的优先级的任务的时间。
    中断恢复时间=恢复CPU内全部寄存器的值+执行中断返回指令的时间
    前后台系统:与上面一样。
    中断恢复时间=恢复CPU内全部寄存器的值+执行中断返回指令的时间
    对于可剥夺型内核:中断的恢复要复杂一些。中断服务的末尾要调用一个函数,uCOS II中这个函数是OSIntExit()。用于判断是否脱离了所有的中断嵌套。进而判断是否有优先级更高的任务进入了就绪状态。
    中断恢复时间=判断是否有优先级更高的任务进入了就绪状态+恢复CPU内全部寄存器的值+执行中断返回指令的时间
 
4.时钟节拍:
 
    特定的周期型中断,提供了整个系统的心脏脉动。
阅读(1721) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~