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

来源:互联网 发布:法律科学 知乎 编辑:程序博客网 时间:2024/05/18 01:33

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

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

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

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

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

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

0 0