《Linux内核设计与实现》讲解
andy572633
这个作者很懒,什么都没留下…
展开
-
Linux内核设计与实现——7 中断与中断处理(4)
4.上半部与下半部 1)为什么要分上下半部 速度与功能的博弈。上文已经提到中断处理程序是打断了别人的运行,所以要尽可能快地运行完毕。但是又想尽量完成强大的功能。这是两个互相矛盾的目标。解决办法就是把中断处理程序分成以下两部分 2) 上半部:有严格的时间限制,做一些必须要马上进行的工作,例如对中断的应答和硬件复位 下半部:允许稍后完成,做一些不太紧急的工作,如数据的加工 这样,中断处理程原创 2012-03-23 20:08:05 · 987 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(2)
2.中断的分类 1 异步中断 2 同步中断 2.1 故障 2.2 陷阱 2.3 终止 异步中断(又叫中断、外部中断)由其他硬件产生,任何时候都可能发生 同步中断(又叫异常、内部中断)由CPU本身产生,只有在一条指令执行完后才能发生(即同步的含义) 后文中,将直接称异步中原创 2012-03-23 20:06:00 · 863 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(3)
3.中断处理程序 1)在响应一个中断的时候,内核会执行一个函数,这个函数就叫做中断处理程序,或中断服务例程(ISR) 2)中断处理程序试设备驱动的一部分 3)中断随时可能发生,因此要求中断处理程序必须随时都可以运行。又因为中断是打断了别人的运行,所以要求要尽可能快执行完成,所以就有后文上半部与下半部的概念。 4)函数原型 static irqreturn_t (*irq_handle原创 2012-03-23 20:07:23 · 1048 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(1)
写在前面 本系列为《Linux内核设计与实现》这本书的读书笔记,其中有一些不明白的地方如果查阅了其它书籍或资料也会记载下来。本系列虽然是学习的小结,但力争以讲解者的角度向大家讲解关于Linux内核的知识。一方面是自己看明白了与将其给别人讲明白是两种完全不同的境界,后者明显理解得更深入一些。另一方面,也便于以后自己忘记了再回过头来复习。计划每周一篇,根据篇幅,每章会分成数节讲解。顺序不一定按照书上原创 2012-03-23 20:04:12 · 1019 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(8)——中断控制
Linux内核提供了一组接口用于操作机器上的中断状态。这些接口为我们提供了能够禁止当前处理器的中断系统,或屏蔽掉整个机器的一条中断线的能力。这些例程都是与体系无关的,可以在和中找到。 一般来说控制中断系统的原因归根结底是需要提供同步。通过禁止中断,可以确保某个中断处理程序不会抢占当前的代码。此外,禁止中断还可以禁止内核抢占。 锁提供的保护机制,防止来自其它处理器的并原创 2012-08-30 07:55:41 · 1562 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(6)——中断上下文
1)当执行一个中断处理程序时,内核就处于中断上下文(interrput context)中。 2)因为没有后备进程,所以中断上下文不可以睡眠。如果一个函数可能会睡眠,那就不能在中断处理函数中使用它。这就是对中断处理程序中所使用的函数的限制 3)中断上下文具有较为严格的时间限制。中断处理程序时打断了其它代码的执行(甚至是一个中断打断了另一个中断),所以它必须尽可能的迅速、简洁。尽量原创 2012-08-25 07:49:49 · 2102 阅读 · 0 评论 -
Linux内核设计与实现——7 中断与中断处理(7)——中断处理机制的实现&/proc/interrupts
1)中断从硬件到内核的路由如下图所示 2)/proc/interrupts procfs是一个虚拟文件系统,它只存在于内核内存,一般安装于/proc目录。下面是在PC机上典型/proc/interrupt文件内容 第一列是终端号,不显示没有安装处理程序的中断线 第二列是已接收的中断数目 第三列是处理这个中断的中断控制器。XT-PIC对应于标准的PC可编程中断控制器。原创 2012-08-27 07:44:49 · 5351 阅读 · 0 评论