2

在多核系统中,有多个调度器来调度 Erlang 进程。一个调度器映射到一个 CPU。我的疑问是:Erlang 虚拟机也是运行在某个内核线程上的进程。那么它映射到哪个 CPU 呢?或者它根据可用性共享所有 CPU。(OS根据可用性提供CPU时间)?

4

1 回答 1

7

Erlang 虚拟机作为单个操作系统进程运行。在该进程中,它运行多个线程,每个调度程序一个(可能还有用于异步 I/O 等的附加线程)。默认情况下,每个 CPU 内核都有一个调度程序线程。

Erlang 进程(“绿色线程”)由调度线程执行,调度线程在它们之间进行负载平衡,因此单个操作系统中可能有 4 个调度线程(在四核机器上)执行十万个 Erlang 进程过程。通常,操作系统会将调度程序线程映射到物理内核,但另请参阅Erlang 进程如何映射到内核线程?.

于 2012-05-26T16:27:37.013 回答