Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1325054
  • 博文数量: 482
  • 博客积分: 13297
  • 博客等级: 上将
  • 技术积分: 2890
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-12 16:25
文章分类

全部博文(482)

文章存档

2012年(9)

2011年(407)

2010年(66)

分类: LINUX

2011-03-30 10:08:38

想请教各位一下,就是软中断的执行是在中断上下文还是在进程上下文中呢? 
因为在其它论坛看到有朋友说软中断的执行分成两个部分,一是中断上半部完的时候,这个时候是处于中断上下文中的,而后面可能还会在ksoftirqd这个内核线程中执行,此时就是在进程上下文中了。而LKD与ULK都说的是中断上下文中。小弟有点不解。 

所以还请各位指教指教。谢谢!
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 10:29    Length160 byte(s)
[] [Print] 
你说的应该是中断处理程序运行在什么上下文中. 

中断处理程序的上下文和OS实现机制有关的. 像Linux就分为上下半部. 上半部中断上下文,下半部进程上下文.
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 11:22    Length130 byte(s)
[] [Print] 
与楼主看法相同,书上之所以说是中断上下文,我的理解是因为之前的内核版本好像没有这个专门处理软中断的内核线程。不知对否,等高人指教。
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 12:03    Length98 byte(s)
[] [Print] 
谢谢,不过我看到LKD2与ULK3上面都写的是下半部运行于中断上下文。而不是进程上下文,所以小弟有些迷惑。
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 12:56    Length371 byte(s)
[] [Print] 
不就是这样的嘛, 

首先,软中断会在中断处理完成后返回时执行,这个时候是处于中断上下文中的, 
假如在执行软中断的时候软中断又一直被触发,为了防止一直别的进程等的太久, 
在执行次数到了一个最大值的时候就唤醒内核线程,然后中断就返回了.而不是一直 
执行软中断. 

在ksoftirqd这个内核线程中执行软中断,此时就是在进程上下文中了。
----
像小强一样活着..
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 13:38    Length52 byte(s)
[] [Print] 
非常感谢。 
大哥回复了我多个问题,太感谢了!
[] [Print] 
SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 21:59    Length37 byte(s)
[] [Print] 
看看《Linux设计与实现》讲的比较清晰了
----
Never say Never
[] [Print] 

SubjectRe: 请教软中断是运行于中断上下文还是进程上下文中? 
Author    Posted2009-02-23 22:44    Length230 byte(s)
[] [Print] 
你好,我就是看的LKD,上面写的是下半部运行于中断上下文。 
在LKD 6.5节开头讲到: 

When executing an interrupt handler or bottom half, the kernel is in interrupt context. 

所以才有此疑惑。







====
阅读(2038) | 评论(0) | 转发(0) |
0

上一篇:驱动模块Makefile解析

下一篇:spin_lock详解

给主人留下些什么吧!~~