内核线程是直接由内核本身启动的进程。内核线程实际上是将内核函数委托给独立的进程,与系统中其他进程“并行”执行(实际上,也并行于内核自身的执行)。内核线程经常称之为(内核) 守护进程。它们用于执行下列任务。
- 周期性地将修改的内存页与页来源块设备同步(例如,使用mmap的文件映射)。
- 如果内存页很少使用,则写入交换区。
- 管理延时动作(deferred action)。
- 实现文件系统的事务日志。
基本上,有两种类型的内核线程。 - 类型1:线程启动后一直等待,直至内核请求线程执行某一特定操作。
- 类型2:线程启动后按周期性间隔运行,检测特定资源的使用,在用量超出或低于预置的限制值时采取行动。内核使用这类线程用于连续监测任务
内核线程与普通进程之间的区别在于内核线程没有独立的地址空间(实际上指向地址空间的MM指针被设置为NULL)。