linux kernel
文章平均质量分 79
suncess1985
这个作者很懒,什么都没留下…
展开
-
linux内核线程创建销毁机制
这个话题乍一听貌似比较大,其实线程创建本身就是一件很平常的事情。下面将要介绍的是,新版linux中创建内核线程的机制做了一些变化(其实本质没变,最终还是调用do_fork()来实现),和控制线程的时候需要注意的地方。 本文引用的几个源码文件:@ kernel/kernel/kthread.c@ kernel/include/linux/kthread.h@ kernel/i转载 2012-03-12 08:43:27 · 369 阅读 · 0 评论 -
linux软中断的实现
中断服务程序往往都是在CPU关中断的条件下执行的,以避免中断嵌套而使控制复杂化。但是CPU关中断的时间不能太长,否则容易丢失中断信号。为此, Linux将中断服务程序一分为二,各称作“Top Half”和“Bottom Half”。前者通常对时间要求较为严格,必须在中断请求发生后立即或至少在一定的时间限制内完成。因此为了保证这种处理能原子地完成,Top Half通常是在CPU关中断的条件下执行的。转载 2012-03-12 09:10:14 · 289 阅读 · 0 评论 -
linux中断下半部
linux中断下半部 6.1下半部下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。对于在上半部和下半部之间划分工作,尽管不存在某种严格的规则,但还是有一些提示可供借鉴:(1)如果一个任务对时间非常敏感,将其放在中断处理程序中执行。(2)如果一个任务和硬件相关,将其放在中断处理程序中执行。(3)如果一个任务要保证不被其它中断打断,将其放在中断处理程序中转载 2012-03-12 08:40:23 · 255 阅读 · 0 评论 -
ksoftirqd内核线程
每个处理器都有一组辅助处理器软中断(和tasklet)的内核线程。当内核中出现大量软中断的时候,这些内核进程就会辅助处理它们。 引入ksoftirq内核线程的原因: 对于软中断,内核会选择在几个特殊时机进行处理。而在中断处理程序返回时处理是最常见的。软中断被触发的频率有时可能很高,更不利的是,处理函数有时还会字形重复触发,那么就会导致用户空间进程无法获得足够的处理时间,转载 2012-03-12 09:08:23 · 12166 阅读 · 0 评论 -
linux 中断机制的处理过程
一、中断的概念中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。在实地址模式中,CPU把内存中从0开始的1KB空间作为一个中断向量表。表中的每一项占4个字节。但是在保护模式中转载 2012-03-12 08:55:01 · 444 阅读 · 0 评论 -
关于kthreadd
因为所涉及的话题在代码的实现上是体系架构相关的,所以本贴基于ARM架构。这里所谓的内核线程,实际上是由kernel_thread函数创建的一个进程,有自己独立的task_struct结构并可被调度器调度,这种进程的特殊之处在于它只在内核态运行。在Linux source code中, init/main.c中的rest_init()中就开始调用kernel_thread来构造内核线程了,比转载 2012-03-12 08:45:36 · 922 阅读 · 0 评论