关闭。这个问题是off-topic .它目前不接受答案。
想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。
8年前关闭。
Improve this question
在实践中,许多操作系统被设计为每个线程有一个内核堆栈,或者每个 CPU 至少有一个内核堆栈。但是对于每次进程陷入困境时内核都被锁定的操作系统,似乎没有必要为每个 CPU 分离内核堆栈。由于内核(带有自己的堆栈)只允许单个 CPU 访问,因此 CPU 不应同时处于内核模式。 CPU 总是被阻塞,直到前一个 CPU 离开并清理内核堆栈,即使在嵌套陷阱的情况下也是如此。那么在这种情况下,在这样的操作系统中需要多个内核堆栈吗?谢谢。
最佳答案
你是对的;在这种情况下,只要您具有可靠的多核锁定功能,多个内核堆栈就没有用处。
我们通常有多个内核堆栈(即每个线程至少有一个内核堆栈)用于以下目的:
关于operating-system - 为什么我们需要为每个 CPU 单独的内核堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953175/