gpt4 book ai didi

process - 在单个 CPU 上运行多个进程

转载 作者:行者123 更新时间:2023-12-04 02:07:12 31 4
gpt4 key购买 nike

我想知道一个 CPU 如何我假设它有一个 cpu 堆栈和一个注册表集(每个寄存器只有一个实例)运行多个进程并发?

它是否在每次更改当前运行的进程时更改堆栈和寄存器?例如,进程 X 在 EAX 中的值为 0x03,但进程 Y 在该寄存器中的值为 0x02。那么当CPU从执行X进程的指令切换到执行Y进程的指令时,CPU如何处理EAX寄存器值的切换呢? (因为每个进程都使用它期望的 EAX - 它之前存储在那里的那个)

我找不到关于此的信息,但我会接受链接到具有相关信息的来源的答案。

抱歉,如果问题不清楚,我已尽力澄清,所以请询问是否还有任何不清楚的地方。

注意:我不是指线程,因为据我所知,它们使用相同的寄存器并且编译器构建正确的代码,以便它们都能很好地协同工作。 (如果我错了请纠正我!)

最佳答案

单处理器中的并发只是中断一个进程一段时间,让另一个进程执行。当然,每个进程都有不同的寄存器,包括指向其当前使用的堆栈位置的一个指针 - 此信息称为上下文

每当一个进程进入挂起模式时,它的上下文就会保存在内存/堆栈中。然后处理器恢复(或创建)新进程的上下文。当第一个进程要再次执行时,它的上下文被恢复。

上下文切换由软件(操作系统)或硬件完成。

关于process - 在单个 CPU 上运行多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701157/

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