linux kernel中的中断系统

本文详细介绍了Linux内核中的中断系统,包括中断来临时的处理流程、中断与异常的区别、中断处理程序的运作以及中断上下文的概念。中断处理程序必须快速运行,以避免延迟服务硬件中断和影响系统性能。中断处理分为上半部和下半部,上半部执行紧急任务,下半部处理非紧急任务,如数据处理,确保系统高效响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux中,中断信号会将CPU转移到其它任务上。其它任务一般被称为中断处理程序或者中断服务程序。

中断来的时候会发生什么

中断往往由硬件设备的电子信号产生,并被引导到中断控制器上。将中断来的时候,内核将完成下列事情:

  1. 接收到中断后,中断控制器向处理器发送信号。
  2. 处理器检测到该信号并中断其当前的任务以处理中断。
  3. 然后处理器可以通知操作系统发生了中断,操作系统可以适当地处理中断。

不同的设备使用与每个中断相关联的唯一值与不同的中断相关联。这样操作系统能够区分中断并知道是哪个硬件设备引起了这样的中断。同时操作系统根据不同的中断执行对应的中断服务函数。
中断处理是内核执行的最敏感的任务之一,它必须满足以下条件:

  1. 硬件设备异步生成中断(相对于处理器时钟)。这意味着中断可能随时出现。
  2. 因为中断随时可能发生,内核可能正在处理其中一个,这时候另一个(不同类型的)又发生。
  3. 内核代码中存在一些必须禁用中断的关键区域。

中断与异常

异常通常与中断放在一起讨论。与中断不同的是,异常与处理器时钟同步发生;他们经常被称为同步中断。异常往往是在处理器执行指令时产生,以响应编程错误(例如除以零)或内核必须处理的异常情况(例如页面错误);由于许多处理器体系结构以与中断类似的方式处理异常,因此处理两者的内核基础结构是相似的。

两者的简单定义

  1. 中断 - 硬件产生的异步中断。
  2. 异常 - 处理器生成的同步中断。

x86架构上的系统调用(一种异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值