linux tasklet 3
http://hi.baidu.com/styl_007/blog/item/82b833f475036ce67609d7b6.html
中断处理的tasklet(小任务)机制-不过如此
2009-08-10 18:30
中断服务程序一般都是在中断请求关闭的条件下执行的
,
以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,
CPU
就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断请求信号时,
Linux
内核只是简单地标志数据到来了,然后让处理器恢复到它以前运行的状态,其余的处理稍后再进行(如把数据移入一个缓冲区,接受数据的进程就可以在缓冲区找到数据)。因此,内核把中断处理分为两部分:上半部(
tophalf
)和下半部(
bottomhalf
),上半部(就是中断服务程序)内核立即执行,而下半部(就是一些内核函数)留着稍后处理,
首先,一个快速的“上半部”来处理硬件发出的请求,它必须在一个新的中断产生之前终止。通常,除了在设备和一些内存缓冲区(如果你的设备用到了
DMA
,就不止这些)之间移动或传送数据,确定硬件是否处于健全的状态之外,这一部分做的工作很少。
下半部运行时是允许中断请求的,而上半部运行时是关中断的,这是二者之间的主要区别。
但是,内核到底什时候执行下半部,以何种方式组织下半部?这就是我们要讨论的下半部实现机制,这种机制在内核的演变过程中不断得到改进,在以前的内核中,这个机制叫做
bottomhalf(
简称
bh)
,在
2.4
以后的版本中有了新的发展和改进,改进的目标使下半部可以在多处理机上并行执行,并有助于驱动程序的开发者进行驱动程序的开发。下面主要介绍常用的小任务
(Tasklet)
机制及
2.6
内核中的工作队列机制。
小任务机制
这里的小任务是指对要推迟执行的函数进行组织的一种机制
。其数据结构为
tasklet_struct
,每个结构代表一个独立的小任务,其定义如下:
structtasklet_struct {
structtasklet_struct *next; /*
指向链表中的下一个结构
*/
unsignedlong state; /*
小任务的状态
*/
atomi
相关文档:
打开 /etc/sysconfig/i18n
输入
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
好了 ......
目录和文件操作
查看当前目录相对于根目录的位置
pwd
查看当前目录内容
ls
以长格式查看当前目录内容。对应每个文件的条目将包括连接数目、所有者、大小、最后修改时间、权限等内容
ls -l
改变当前目录。目的目录名可用相对路径表示,也可以用绝对路径表示。
cd [目的目录名]
转移到上一级目录
c ......
linux启动流程:
系统预处理程序->GRUB (此阶段可以理解为bootloader阶段)
->kernel (此阶段为kernel)
->initrd->init启动->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(读配置文件)
1.->字符模式->tty->bash
2.->图形模式->进入X Window-> ......
http://hi.baidu.com/j_fo/blog/item/a43fa60fa6e2f4eaab6457d5.html
Linux2.6内核epoll介绍
2008-11-05 16:35
http://blog.csdn.net/rstevens/archive/2007/10/30/1858067.aspx
http://hi.baidu.com/jmlover/blog/item/24c28b131e6b48d7f7039ee6.html
http://hi.baidu.com/jmlover/blog/item/e64df724f12926348744f9 ......