社区
Linux_Kernel
帖子详情
在LINUX中“bottom half ”是什么意思??
thinker008
2004-09-19 07:11:24
在LINUX中“bottom half ”是什么意思??
...全文
1416
8
打赏
收藏
在LINUX中“bottom half ”是什么意思??
在LINUX中“bottom half ”是什么意思??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wfwater
2004-10-10
打赏
举报
回复
学习
lynux
2004-09-27
打赏
举报
回复
又了解了一些知识,希望能深入。
谢了。
vctony
2004-09-27
打赏
举报
回复
我有资料但也不全面,我的理解就是先在任务队列中排队,等资源到达的时候再去调度.
vctony
2004-09-27
打赏
举报
回复
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
核心的一些 bottom half 处理程序和设备有关,但是其它的是更一般的:
TIMER 这个处理程序在每一次系统定时时钟中断被标记成为激活,用来驱动核心的时钟队列机制
CONSOLE 这个处理程序用来处理控制台消息
TQUEUE 这个处理程序用来处理 TTY 消息
NET 这个处理程序用来处理通用的网络处理
IMMEDIATE 通用的处理程序,一些设备驱动程序用来排列稍后进行的工作
设备驱动程序或者核心的其它部分,需要调度稍后进行的工作的时候,它就在适当的系统队列中增加这个工作,例如时钟队列,然后就发送信号到核心,一些 bottom half 处理需要进行。它通过设置 bh_active 中的合适的位来做到这点。如果驱动程序在 immediate 队列排列了一些东西并希望 immediate bottom half 处理程序会运行并处理它的时候就设置第 8 位。每一次系统调用的最后,把控制权返回调用程序之前都检查 bh_active 的位掩码。如果有任意位被设置,相应的激活的 bottom half 处理例程就被调用。首先检查位 0 ,然后 1 直到位 31 。调用每一个 bottom half 处理例程调用的时候就清除 bh_active 中相应的位。 Bh_active 是易变的:它只在调用调度程序之间有意义,通过设置它,当没有需要作的工作的时候可以不调用相应的 bottom half 处理程序。
Kernel/softirq.c do_bottom_half()
lysliberty
2004-09-21
打赏
举报
回复
说白了,就是中断的延迟处理.
winux0
2004-09-20
打赏
举报
回复
这个bottom half在文中已经解释的很清楚了,不一定需要个翻译过来的中文名字嘛:)
网络底层有些操作也是这样,由于某些原因,中断并没有立刻响应,而是先记录下来,等到可以处理这些中断的时候就一块处理了
jerrykeating
2004-09-20
打赏
举报
回复
在中断,异常和系统调用里看
Linux中断服务一般都是在关闭中断的情况下执行的,以避免嵌套而是控制复杂化
Linux将一些中断处理分成两部分,第一部分是在关中断的条件下执行的,具有"原子"性,而且是中断发生以后一般要立即执行的,第二部分,就是bottom half了,是在开中断的条件下执行,这部分是可以延迟一段时间再做的,而且有可能将多个中断的bottom half合并起来一起做.
bottom half使得整个系统灵活性提高了,因为有的中断服务持续时间很长而使CPU不能响应其他的中断而使中断丢失.
qingse
2004-09-20
打赏
举报
回复
在哪里看到的?
浅析
Linux
内核
中
的
Bott
om
Half
机制_
linux
内核_
在
Linux
内核
中
,
Bott
om
Half
机制是一种用于处理
中
断服务的重要技术,它与Top
Half
一起构成了
中
断处理的双层架构。本文将深入探讨
Bott
om
Half
机制的概念、作用以及在
Linux
内核
中
的实现方式。 首先,我们要理解
中
断的...
浅析
Linux
内核
中
的
Bott
om
Half
机制.pdf
Linux
内核
中
的
Bott
om
Half
机制是处理
中
断服务程序的一种方法,主要解决了
中
断服务过程
中
避免嵌套和提高CPU响应性的问题。本文详细介绍了
Bott
om
Half
机制的概念、发展以及不同版本
Linux
内核
中
实现的不同方式。
中
断...
Linux
内核
中
的
Bott
om
Half
机制分析与应用.pdf
Linux
内核
中
的
Bott
om
Half
机制是一种用于处理
中
断服务程序的策略,旨在解决
中
断处理过程
中
的实时性和并发性问题。在多任务和实时操作系统如
Linux
中
,
中
断是系统正常运行的关键部分,它们允许硬件事件(如键盘输入、...
LINUX
系统分析与高级编程技术 17
1. **
Bott
om
Half
处理**:在
Linux
内核
中
,
Bott
om
Half
是一种延迟处理机制,常用于
中
断处理。当硬件
中
断发生时,处理器暂停当前工作并调用
中
断处理程序。由于
中
断处理必须快速,一些耗时的任务会被推迟到稍后执行,这...
Linux
内核实时网络
中
断时间的降低
在
Linux
内核
中
,网络
中
断分为Top
Half
和
Bott
om
Half
两部分。Top
Half
负责从网络设备复制数据包到DMA(直接存储器访问)并解析数据包结构,而
Bott
om
Half
则将数据包传递给TCP层进行进一步处理。然而,
Bott
om
Half
的...
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章