gpt4 book ai didi

multithreading - 计算机如何仅使用几个寄存器?

转载 作者:行者123 更新时间:2023-12-03 21:49:07 24 4
gpt4 key购买 nike

我对汇编知之甚少,并且有 4 或 8 个左右的通用寄存器。计算机上的所有程序如何使用那么多寄存器工作,尤其是多线程和所有程序?

最佳答案

多线程本身不会影响使用的寄存器数量。当一个线程被换出时,它通常会将其寄存器保存到内存中,而下一个要运行的线程会将这些寄存器从前一次保存中加载。

一个示例是具有线程控制块结构 (TCB) 的系统。该结构将包含(当线程未运行时)保存的指令指针、堆栈指针、通用寄存器、浮点寄存器、线程统计信息等。简而言之,将线程完全恢复到它被换出另一个线程运行时所处的状态所需的一切。

并不是所有在计算机中发生的事情都是在寄存器中完成的。现代编译器可以优化代码,以便使用最多的数据项保存在寄存器中,但绝大多数数据保存在内存中,仅在需要时才放入寄存器。

我读过的关于这个主题的最好的书是 Tanenbaum's "Structured Computer Organization"它按层检查计算机,从数字逻辑层到操作系统层,每一层都建立在前一层之上。

alt text

Aside: my dream is to one day write a book just like this that covers everything, from the quark level up to Emacs :-)

关于multithreading - 计算机如何仅使用几个寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410778/

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