每个进程是否存在内核堆栈?

时间:2011-05-21 17:12:11

标签: linux stack kernel

每个用户空间进程是否存在内核堆栈和用户空间堆栈?如果两个堆栈都存在,那么每个用户空间进程应该有2个堆栈指针吗?

1 个答案:

答案 0 :(得分:15)

在Linux中,每个任务(用户空间或内核线程)都有8kb或4kb的内核堆栈,具体取决于内核配置。确实存在单独的堆栈指针,但是在任何给定时间CPU中只有一个存在;如果用户空间代码正在运行,则用于异常或中断的内核堆栈指针由任务状态段指定,如果内核代码正在运行,则用户堆栈指针将保存在内核堆栈上的上下文结构中。 / p>