【问题标题】:Register set required for Threads线程所需的寄存器集
【发布时间】:2016-11-24 07:02:16
【问题描述】:

我的问题是,如果一个线程需要自己的寄存器集,那么在 CPU 中存在的寄存器集有限的情况下,可以同时创建多少个线程?

【问题讨论】:

  • 很多,因为当操作系统切换线程时,它会将前一个线程的寄存器隐藏在其他地方......
  • 与用户和内核模式堆栈所需的地址空间相比,线程上下文存储非常小,大约为 1 兆字节。一个 32 位进程往往会在超过 2000 个线程时用完它。在 64 进程中还有更多,通常受页面文件大小限制。适合通常的“如果您需要知道,那么您做错了”诊断。

标签: multithreading operating-system


【解决方案1】:

处理器具有一组由所有线程/进程共享的通用寄存器。

大多数处理器都有保存和加载进程上下文指令,可以将寄存器保存(或加载)到/从内存块中。将进程上下文加载到寄存器中的行为是切换进程/线程的行为。

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多