当前位置: 技术问答>linux和unix
中断延迟和中断响应、调度延迟的关系?谁来讲讲?
来源: 互联网 发布时间:2016-05-09
本文导语: 我看了一些资料,其中说: 中断延迟=关中断的最长时间+开始执行中断服务程序第1条指令的时间, 而 中断响应=中断延迟+保存CPU状态的时间+该内核ISR进入函数的时间 那么,什么是关中断的最长时间?开始执行中断...
我看了一些资料,其中说:
中断延迟=关中断的最长时间+开始执行中断服务程序第1条指令的时间,
而
中断响应=中断延迟+保存CPU状态的时间+该内核ISR进入函数的时间
那么,什么是关中断的最长时间?开始执行中断服务程序第1条指令时间和该内核进入函数时间不是一个么?
还有,什么是调度延迟?谢谢!
中断延迟=关中断的最长时间+开始执行中断服务程序第1条指令的时间,
而
中断响应=中断延迟+保存CPU状态的时间+该内核ISR进入函数的时间
那么,什么是关中断的最长时间?开始执行中断服务程序第1条指令时间和该内核进入函数时间不是一个么?
还有,什么是调度延迟?谢谢!
|
---中断延迟=关中断的最长时间+开始执行中断服务程序第1条指令的时间,
比如,当前你关中断了,尽管来了中断设置了中断状态位但不能响应它,此时你的中断就被延迟了,当你打开中断时,CPU就立刻响应中断了,“中断服务程序第1条指令的时间”是指中断异常向量的第一句,比如ARM的IRQ入口的中断跳转指令
---中断响应=中断延迟+保存CPU状态的时间+该内核ISR进入函数的时间
中断响应的时间为硬件上产生中断事件到服务对应中断服务程序的时间,就是上述公式
开始响应时还要保存中断前的所有状态寄存器及部分通用寄存器,然后才能开始真正的中断处理
---那么,什么是关中断的最长时间?
这取决于你的实际系统关中断到开中断的最大时间,所以在实际的代码中,关中断之后处理的代码要尽量少,尽快打开中断,这样减少中断相应延时
--什么是调度延迟?
是指当前任务已经就绪,到其获得CPU权限的时间差
比如当前有更高优先级的任务在运行,或某任务的时间片未到等
取决于当前任务的优先级和系统的任务调度策略
比如,当前你关中断了,尽管来了中断设置了中断状态位但不能响应它,此时你的中断就被延迟了,当你打开中断时,CPU就立刻响应中断了,“中断服务程序第1条指令的时间”是指中断异常向量的第一句,比如ARM的IRQ入口的中断跳转指令
---中断响应=中断延迟+保存CPU状态的时间+该内核ISR进入函数的时间
中断响应的时间为硬件上产生中断事件到服务对应中断服务程序的时间,就是上述公式
开始响应时还要保存中断前的所有状态寄存器及部分通用寄存器,然后才能开始真正的中断处理
---那么,什么是关中断的最长时间?
这取决于你的实际系统关中断到开中断的最大时间,所以在实际的代码中,关中断之后处理的代码要尽量少,尽快打开中断,这样减少中断相应延时
--什么是调度延迟?
是指当前任务已经就绪,到其获得CPU权限的时间差
比如当前有更高优先级的任务在运行,或某任务的时间片未到等
取决于当前任务的优先级和系统的任务调度策略
|
关中断的最长时间:是处理器关中断以及中断控制器mask掉中断整个区域的代码量
最大任务调度延迟:是当前运行低优先级任务的系统中出现了高优先级任务的时刻到高优先级任务被调度后开始运行的这段时间来衡量
最大任务调度延迟:是当前运行低优先级任务的系统中出现了高优先级任务的时刻到高优先级任务被调度后开始运行的这段时间来衡量
|
关中断的最长时间:理解为程序指针在非中断程序代码区
开始执行中断服务程序第1条指令时间和该内核进入函数时间:理解为程序指针和寄存器被保护压栈的操作及操作完成,倒转到中断代码区
调度延迟:理解成内核的上半部,下半部既延迟让进程执行。天呢,全是基本的专业术语,建议楼主查相关资料,慢慢积累