悟空学Linux专栏----第37篇

本文讲解了软中断的执行过程,并解答了软中断可能引发的系统进程长时间阻塞的问题。介绍了Linux内核如何通过创建内核线程来处理大量软中断,确保系统中其他进程能够正常运行。

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

  俗话说人怕出名,猪怕壮,八戒一直很低调,但是他现在又壮有出名。人气爆棚,但也为八戒带来了不少的麻烦,比如今天,明明是悟空的课,唐僧却硬是让八戒来讲。八戒打算给学生们讲软中断的执行,这是八戒最喜欢讲的一节课。

  八戒:同学们,软中断的执行其实很简单,主要是通过一个“while”循环来执行,该循环搜寻32个软中断挂起的软中断,如果搜寻发现该软中断被挂起了,则执行该挂起的软中断的中断执行函数。

  2号童鞋:老师,我记得悟空老师说过,软中断内部是可以继续触发软中断的,而软中断又只允许被中断打断,那么如果我系统中有很多软中断存在,不是系统中其他的进程就永远被挂起了吗?

  八戒:其实,你想到的这个问题Linux的设计人员早就考虑到了,为了防止软中断占用系统太多的时间,Linux内核为每个处理器创建了一个内核线程,当系统出现大量的软中断的时候,系统就会将一部分的软中断交给这些线程来处理,从而保证了系统中各个线程能够运行。

  2号童鞋:那么老师,如果系统将这些软中断交给其他的线程来处理,而线程是会被调度给打断的,那是不是说软中断的执行也可以被除了中断之外的调度程序给打断啊?

  八戒:当然不是啦,软中断处理程序的线程是除了只能被中断打断,和自己主动放弃CPU之外,是不能被其他的任何进程给打断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值