gpt4 book ai didi

linux-kernel - 进程堆栈和 CPU 堆栈之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 23:23:58 26 4
gpt4 key购买 nike

我了解到每个进程在由堆栈、堆、数据和文本(代码)组成的内存中都有自己的区域/块(参见 this)。

现在我正在阅读有关上下文切换的内容。我读到在上下文切换期间,CPU 寄存器被推送到堆栈上,然后整个堆栈将保存到进程控制块中。这基本上是它的工作原理吗?

如果每个进程都有自己的堆栈,为什么我需要保存堆栈?

最佳答案

完整的堆栈不会保存在上下文切换中。进程上下文块仅包含我所知道的每个系统上的寄存器值。

堆栈只是一块内存。没有什么特别之处。使它成为堆栈的唯一原因是堆栈指针寄存器引用它。一个进程可以有多个堆栈。事实上,他们通常会这样做。进程通常有一个用于每个处理器模式的堆栈。在多线程中,每个线程有一个堆栈。

关于linux-kernel - 进程堆栈和 CPU 堆栈之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com