searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

什么是软中断

2023-07-13 01:39:11
8
0

1.什么是软中断

       中断处理程序在响应中断时,可能还会「临时关闭中断」,这意味着,如果当前中断处理程序没有执行完之前,系统中其他的中断请求都无法被响应,也就说中断有可能会丢失,所以中断处理程序要短且快。这样才能减少对正常进程运行调度地影响,而且中断处理程序可能会暂时关闭中断,这时如果中断处理程序执行时间过长,可能在还未执行完中断处理程序前,会丢失当前其他设备的中断请求。

        为了解决中断处理程序执行过长和中断丢失的问题,将中断过程分成了两个阶段,分别是上半部和下半部分。上半部分用来快速处理中断,一般会暂时关闭中断请求,主要负责处理跟硬件紧密相关或者时间敏感的事情。下半部用来延迟处理上半部未完成的工作,一般以「内核线程」的方式运行。

2.实际使用

       网卡收到网络包后,会通过硬件中断通知内核有新的数据到了,于是内核就会调用对应的中断处理程序来响应该事件,这个事件的处理也是会分成上半部和下半部。上部分要做到快速处理,所以只要把网卡的数据读到内存中,然后更新一下硬件寄存器的状态,比如把状态更新为表示数据已经读到内存中的状态值。接着,内核会触发一个软中断,把一些处理比较耗时且复杂的事情,交给软中断处理程序去做,也就是中断的下半部,其主要是需要从内存中找到网络数据,再按照网络协议栈,对网络数据进行逐层解析和处理,最后把数据送给应用程序。

       上半部分直接处理硬件请求,作为硬中断。下半部分由内核触发,作为软中断。软中断通常都延迟执行耗时比较长的事情,不会打断CPU正在执行的任务。

3. 系统里的软中断类型

NET_RX 网络接收中断
NET_TX 网络发送中断
TIMER 定时中断
RCU RCU锁中断
SCHED 内核调度中断
0条评论
0 / 1000
毕天枢
2文章数
0粉丝数
毕天枢
2 文章 | 0 粉丝
毕天枢
2文章数
0粉丝数
毕天枢
2 文章 | 0 粉丝
原创

什么是软中断

2023-07-13 01:39:11
8
0

1.什么是软中断

       中断处理程序在响应中断时,可能还会「临时关闭中断」,这意味着,如果当前中断处理程序没有执行完之前,系统中其他的中断请求都无法被响应,也就说中断有可能会丢失,所以中断处理程序要短且快。这样才能减少对正常进程运行调度地影响,而且中断处理程序可能会暂时关闭中断,这时如果中断处理程序执行时间过长,可能在还未执行完中断处理程序前,会丢失当前其他设备的中断请求。

        为了解决中断处理程序执行过长和中断丢失的问题,将中断过程分成了两个阶段,分别是上半部和下半部分。上半部分用来快速处理中断,一般会暂时关闭中断请求,主要负责处理跟硬件紧密相关或者时间敏感的事情。下半部用来延迟处理上半部未完成的工作,一般以「内核线程」的方式运行。

2.实际使用

       网卡收到网络包后,会通过硬件中断通知内核有新的数据到了,于是内核就会调用对应的中断处理程序来响应该事件,这个事件的处理也是会分成上半部和下半部。上部分要做到快速处理,所以只要把网卡的数据读到内存中,然后更新一下硬件寄存器的状态,比如把状态更新为表示数据已经读到内存中的状态值。接着,内核会触发一个软中断,把一些处理比较耗时且复杂的事情,交给软中断处理程序去做,也就是中断的下半部,其主要是需要从内存中找到网络数据,再按照网络协议栈,对网络数据进行逐层解析和处理,最后把数据送给应用程序。

       上半部分直接处理硬件请求,作为硬中断。下半部分由内核触发,作为软中断。软中断通常都延迟执行耗时比较长的事情,不会打断CPU正在执行的任务。

3. 系统里的软中断类型

NET_RX 网络接收中断
NET_TX 网络发送中断
TIMER 定时中断
RCU RCU锁中断
SCHED 内核调度中断
文章来自个人专栏
BTS的个人专栏
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0