linux - linux进程的内核堆栈

标签 linux kernel

是共享所有进程的内核堆栈还是每个进程都有一个单独的内核堆栈?如果每个进程都是单独的,那么这个堆栈指针存储在哪里?在 task_struct 中?

最佳答案

只有一个公共(public)内核内存。其中每个进程都有自己的 task_struct + 内核堆栈(默认为 8K)。

在上下文切换中,旧堆栈指针保存在某处,实际堆栈指针指向将要运行的新进程的堆栈顶部(或底部,具体取决于硬件架构)。

关于linux - linux进程的内核堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886807/

相关文章:

知道套接字目标进程的 Linux 内核钩子(Hook)

android - Linux 中的 aac-eld 解码

php - curl 无法下载 Composer 安装程序,提示 8888 端口

operating-system - 虚拟内存真的一直有用吗?

windows - 内核模式下的线程本地存储?

c - 使用 C 宏在代码中很好地组合两个选项

linux - 远程开发 - 在 Windows 上编辑并在 Linux 上构建

linux - ubuntu 16.10 中卸载 gtk2.0 后无 GUI

linux - 在 Bash 中将一个变量分配给另一个变量?

linux - 为什么clflush需要+m常量