Linux内核设计与实现——7 中断与中断处理(4)
来源:互联网 发布:唐朝乐队 知乎 编辑:程序博客网 时间:2024/05/16 19:55
4.上半部与下半部
1)为什么要分上下半部
速度与功能的博弈。上文已经提到中断处理程序是打断了别人的运行,所以要尽可能快地运行完毕。但是又想尽量完成强大的功能。这是两个互相矛盾的目标。解决办法就是把中断处理程序分成以下两部分
2)
上半部:有严格的时间限制,做一些必须要马上进行的工作,例如对中断的应答和硬件复位
下半部:允许稍后完成,做一些不太紧急的工作,如数据的加工
这样,中断处理程序处理上半部,下半部再稍后空闲的时候再来执行,就能在速度与功能上达到一个平衡
3)举例:网卡的中断处理
网卡有数据到达,发一个中断给内核
内核调用中断处理程序处理以下工作:通知硬件、拷贝数据到内存。这些工作都是紧急的,以为网卡的缓存通常比较小,如果不及时拷出,缓存满后将造成丢包。而且必须让网卡复位,立即准备接收新数据。
而下半部的工作:对内存中数据进行加工,并发送给相应的进程。这是不太紧急的工作,可以稍后进行。
- Linux内核设计与实现——7 中断与中断处理(4)
- Linux内核设计与实现——7 中断与中断处理(1)
- Linux内核设计与实现——7 中断与中断处理(2)
- Linux内核设计与实现——7 中断与中断处理(3)
- Linux内核设计与实现——7 中断与中断处理(5)——注册中断处理程序
- Linux内核设计与实现——7 中断与中断处理(6)——中断上下文
- Linux内核设计与实现——7 中断与中断处理(8)——中断控制
- Linux内核设计与实现——7 中断与中断处理(7)——中断处理机制的实现&/proc/interrupts
- 每日月的8之linux内核设计与实现——中断与中断处理
- Linux内核设计与实现(8)---中断和中断处理
- Linux内核设计与实现(8)---中断和中断处理
- 《Linux内核设计与实现》——中断和中断处理
- 《Linux内核设计与实现》学习笔记——中断、中断处理程序
- linux内核设计与实现---中断和中断处理(7)
- Linux内核的设计与实现 读书笔记(7)中断处理
- linux内核设计与实现(第七章)----中断处理
- 《Linux内核设计与实现》读书笔记(七)- 中断处理
- 《Linux内核设计与实现》读书笔记(七)- 中断处理
- Linux内核设计与实现——7 中断与中断处理(2)
- AG阅读总结10.1.2——表空间诊断
- CF的内存管理。
- HTML5新特性(1)<video> 标签
- Linux内核设计与实现——7 中断与中断处理(3)
- Linux内核设计与实现——7 中断与中断处理(4)
- my ability is poor!
- 趣味算法实习:踩气球第二周-《一道很简单的题目》解题报告&AC代码
- OEM : NMO not setuid-root (Unix-only)
- UML类图关系大全
- Epoll工作模式详解----http://www.vimer.cn
- 数据库结构的管理--持续更新
- 黑马程序员-第一天 NET 入门初级.NET开发前奏
- Xcode 真机测试时出现shell Script invocation Error解决方案