【发布时间】:2012-06-01 18:54:07
【问题描述】:
在多核系统中,有多个调度器来调度 Erlang 进程。一个调度器映射到一个 CPU。我的疑问是:Erlang 虚拟机也是运行在某个内核线程上的进程。那么它映射到哪个 CPU 呢?或者它根据可用性共享所有 CPU。 (OS根据可用性提供CPU时间)?
【问题讨论】:
标签: parallel-processing erlang
在多核系统中,有多个调度器来调度 Erlang 进程。一个调度器映射到一个 CPU。我的疑问是:Erlang 虚拟机也是运行在某个内核线程上的进程。那么它映射到哪个 CPU 呢?或者它根据可用性共享所有 CPU。 (OS根据可用性提供CPU时间)?
【问题讨论】:
标签: parallel-processing erlang
Erlang 虚拟机作为单个操作系统进程运行。在该进程中,它运行多个线程,每个调度程序一个(可能还有用于异步 I/O 等的附加线程)。默认情况下,每个 CPU 内核都有一个调度程序线程。
Erlang 进程(“绿色线程”)由调度线程执行,调度线程在它们之间进行负载平衡,因此可能有十万个 Erlang 进程被 4 个调度线程(在四核机器上)执行单一操作系统进程。通常,操作系统会将调度程序线程映射到物理内核,但另请参阅How, if at all, do Erlang Processes map to Kernel Threads?。
【讨论】: