Chinaunix首页 | 论坛 | 博客
  • 博客访问: 459562
  • 博文数量: 62
  • 博客积分: 1312
  • 博客等级: 中尉
  • 技术积分: 1555
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:10
文章分类

全部博文(62)

文章存档

2014年(1)

2013年(5)

2012年(56)

分类: LINUX

2012-02-24 18:50:39

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

陈贞_Rock2012-02-25 16:50:53

星期五啦: 实时系统要求就是太高了~.....
要求是比较高,不仅仅是对于处理器本身的硬性要求,还有对于软件的质量要求也很高。但是就实时这一个优点就具有极大的诱惑力了。

星期五啦2012-02-25 06:51:51

实时系统要求就是太高了~