【发布时间】:2016-01-19 06:18:48
【问题描述】:
我了解到每个进程在内存中都有自己的区域/块,由堆栈、堆、数据和文本(代码)组成(请参阅this)。
现在我正在阅读有关上下文切换的内容。我读到在上下文切换期间,CPU 寄存器被压入堆栈,然后完整的堆栈将被保存到进程控制块中。基本上是这样的吗?
如果每个进程都有自己的堆栈,为什么我需要保存堆栈?
【问题讨论】:
-
添加架构。是 x86 吗?
-
每个 CPL 都有自己的堆栈。阅读有关 TSS(任务状态段)的信息。
-
是 x86,单核。也许你可以解释一下上下文切换。我读的文件清楚地说:寄存器被压入堆栈->堆栈保存在PCB中。我错过了什么?
-
能否链接到该文档以便更好地向您解释?
-
对不起。我不被允许。这是我正在学习的大学的财产
标签: linux-kernel x86 operating-system kernel context-switch