中断上下文

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

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

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

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值