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

来源:互联网 发布:百度云网络异常 编辑:程序博客网 时间:2024/05/22 13:54

  今天悟空要讲的是中断的约束,这让悟空想起了师傅的紧箍咒,所以悟空一看到约束两字就有点不爽,总觉得这两个字扎眼。

  悟空:中断是内核中执行最敏感的任务,因此需要满足一些约束。

  A童鞋:那么需要遵守什么约束呢?

  悟空(心想竟然有一个人没睡觉):第一个约束,就是,内核需要尽可能快的处理中断。

  A童鞋:老师,那么怎样才能尽可能快的处理中断呢?

  悟空:为了尽可能快的处理中断,Linux系统将中断的处理分为了两个部分,一个部分是中断的上半部分,第二个是中断的下半部分。上半部分是关键而紧急的部分,内核必须立刻执行;而第二部分是不那么紧急的部分,这部分的代码被推后执行。Linux的下半部分主要有三种机制,软中断、tasklet、工作队列。

  A童鞋:那么老师,什么是软中断、tasklet、工作队列?

  悟空心想,唉惨了我还没来得及看了,但是悟空灵机一动:这些我们以后的课程会讲到,今天我们暂时不讲这些。中断的第二个敏感的是必须可以嵌套执行,所谓嵌套执行就是,当一个中断在执行的时候,必须可以被一个新的中断打断,而且当新的中断执行完之后必须能够返回被打断的中断继续执行。

  A童鞋:老师,那么中断嵌套,最多能嵌套多少次呢?

  悟空:这个……这个……哦,中断的第三个约束规则是什么临界区的问题,在临界区内中断必须被禁止。但是,Linux设计的时候尽量减少临界区的使用,减少临界区的关中断的时间。

  A童鞋:老师,那么如果我设计的时候不遵守这些约束会发生什么事情呢?

  悟空:黎叔很生气,后果很严重。

  A童鞋虽然不知道黎叔是谁,但是知道后果很严重是什么意思。

0 0