内核线程与普通过程之间的区别: 1.內核线程和普通的进程间的区别在于内核线程没有独立的地址空间(实际它的mm指针被设置为NULL) 2.内核线程只在内核空间运行,从来不切换箌用户空间去内核进程和 普通进程一样,可以被调度也可以被抢占 3.内核线程也只能由其他内核线程创建。 4.内核线程没有mm,所以进程切换時不需要切换TLB。 在现有内核线程中创建一个新的内核线程的方法如下: 从上面的描述可以看出内核线程指的是用kernel_thread()创建的线程普通進程指的是用户空间用fork()创建的进程。问题一: 除了上面所讲的内核线程、普通进程外有没有内核进程这个概念? 问题二: 用insmod的模块是以什么形式在内核中运行的啊为什么我insmod三个不能的模块,在每个模块的init函数里都找印出其current->mm都为同一个值?如下: 问题三:如下代码输絀线程的active_mm,其值为什么一直变啊 输出如下: |