-
-
[求助]各个线程的内核栈是共享的还是分开的?
-
发表于:
2011-2-25 12:32
6055
-
驱动模块属于系统模块,在每个进程的高2GB空间内。
每次某个进程进行到相应的驱动调用,就切换了堆栈,进入到该进程的内核栈。
这样驱动中涉及的局部变量都存到了该内核栈上。
假设此时进行了线程切换,切换了线程,那么另一个线程的内核栈与此内核栈是共享的么?
我感觉应该不是。。。都使用一个物理内存,线程切换时页表必然切换了,内核栈地址的映射部分应该也是改变了吧?
我现在有点混乱,内核的空间映射和用户态的空间映射是一张页表维护的吧?内核模块应该是被固定加载在一块内存的,而该内存被同时映射到各个进程中。。
请教。。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!