中断上下文

来源:互联网 发布:茂名关键词优化 编辑:程序博客网 时间:2024/05/29 11:50

ISR是直接与硬件交互的非常重要的代码片段。他们拥有立即执行的特权,以提高系统性能。为了对粗暴打断当前执行线程的行为进行补偿,ISRT不得不礼貌执行于受限制的环境下,即中断上下文(原子上下文).中断上下文的注意事项

1.中断上下文代码可以停在运行。中断处理函数不能通过调用schemdule_timeout()等睡眠函数放弃处理器,在从中断处理函数中调用一个内核API之前,确保内部不会发会触发阻塞等待。 kmalloc()将睡眠,等待程序释放内存。

2.为了在中断处理函数中保护临界区,不能使用互斥体,使用自选旋体

3.中断处理函数不能与用户空间直接交互数据,因为他们经由进程上下文与用户空间建立连接。

4.中断处理函数不必是可用的

5.中断处理函数可以被更高级IRQ打断。

6.中断处理函数一方面需要快速的为其他进程让位,另一方面有需要完成它的工作。中断处理函数分为两部分顶部分服务中断,而重大的工作负载都被丢给底半部。

0 0
原创粉丝点击