linux 内核堆栈是否位于每个进程上下文中的相同虚拟地址?
在回答之前,请注意我已经指定了KERNEL堆栈而不是用户空间堆栈。
答案 0 :(得分:-1)
如果您只有一个核心,那么您只需要一个内核堆栈。如果您拥有多个核心,则可能有两个或更多核心执行内核代码,因此如果两个核心使用相同的堆栈,则会出现问题。当然内核必须将所有堆栈映射到所有虚拟地址空间,因为不同的堆栈是每个cpu而不是每个进程,并且一个进程可能运行两个cpu(不是同一时间),并且他们需要在每个进程找到虚拟地址空间他的自己的堆栈。