Linux内核基础——Linux中断的概念

一、什么是中断?

中断是指计算机运行过程中,出现某些意外情况需要主机干预时,中断源向CPU发送一个中断请求,CPU能进行中断响应去停止正在运行的程序并且保护现场数据,然后转入中断服务程序进行处理,处理完毕后又返回原来被暂停的程序继续运行。
在这里插入图片描述


二、Intel对中断的分类

1、同步中断(异常)

CPU在执行程序的某条指令时,发生了异常错误,由cpu产生的中断,这种错误一般由程序的书写错误产生(内存越界、空指针、除0等)。这时CPU会查找并执行对应错误的中断服务程序。这种同步中断也称为异常

2、异步中断(中断)

由其他硬件设备依照CPU时钟信号随机产生的。中断是由间隔定时器和I/O设备产生(外设),如按键输入等。这种异步中断主要目的不是为了处理错误,而是为了让系统能够正常运行或者对外设产生的数据进行处理与交互。


三、中断和异常的分类

1、中断的分类

可屏蔽中断

可屏蔽中断允许CPU忽略该中断请求,可以通过CPU寄存器中的中断允许标志的设置对当前中断请求进行忽略或者处理。所有I/O设备产生的中断请求都是可屏蔽中断。

非屏蔽中断

非屏蔽中断一般由系统严重的危机事件来产生,例如硬件故障。非屏蔽中断不受CPU中断允许标志的影响,不能进行屏蔽。

2、异常的分类

处理器探测异常

  • 故障 (fault) : 例如缺页异常
  • 陷阱 (trap) : 例如程序调试断点的设置
  • 异常终止 (abort) : 硬件故障

编程异常

  • 软件中断
  • 执行系统调用

四、与中断相关的概念

与中断相关的概念有:中断源、中断请求、中断响应、中断使能、中断屏蔽、中断优先级等。

1、中断的优先级

操作系统对不能的中断赋予不同的优先级,优先级由操作系统在系统设计时按照紧急程度给定,在系统运行的时候是固定的,无法改变的。
优先级高的中断可以允许中断优先级低的中断,这种现象称为中断嵌套

2、中断嵌套

CPU正在执行一个中断服务程序时,如果有另一个优先级更高的中断提出中断请求,这时CPU会暂时终止当前正在执行的级别较低的中断服务程序,转而去处理级别更高的中断请求,待级别更高的中断请求处理完毕,再次返回被中断的较低级别的中断服务程序中继续执行。这个过程就是中断嵌套。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值