chapter 11
kernel mechanisms (核心机制)
本章描述了 linux 核心需要提供的一些一般的任务和机制,让核心的其余部分可
以有效地工作。
11.1 bottom half handling
通常在核心中会有这样的时候:你不希望执行工作。一个好例子是在中断处理
的过程中。当引发了中断,处理器停止它正在执行的工作,操作系统把中断传递到
适当的设备驱动程序。设备驱动程序不应该花费太多时间来处理中断,因为在这段
时间,系统中的其他东西都不能运行。通常一些工作可以在稍后的时候进行。
linux 发明了 boffom half 处理程序,这样设备驱动程序和 linux 核心的其它部
分可以把可以稍后作的工作排队。图 11.1 显示了同 bottom half 处理相关的核
心数据结构。有多达 32 个不同的 bottom half 处理程序: bh_base 是一个指针
的向量表,指向核心的每一个 bottom half 处理例程, bh_active 和 bh_mask
按照安装和激活了哪些处理程序设置它们的位。如果 bh_mask 的位 n 设置,则
bh_base 中的第 n 个元素会包含一个 bottom half 例程的地址。如果 bh_active
的第 n 位设置,那么一旦调度程序认为合理,就会调用第 n 位的 bottom
half 处理程序。这些索引是静态定义的: timer bottom half 处理器优先级最高
(索引 0 ), console bottom half 处理程序优先级次之( index 1 )等等。
通常 bottom half 处理例程会有和它关联的任务列表。例如这个 immediate
buttom half handler 通过包含需要立即执行的任务的 immediate 任务队列(
tq_immediate )来工作。
参见 include/linux/interrupt.h
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器