2012-05-26 41 views
2

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

回答

7

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

Erlang进程(“绿色线程”)由调度程序线程执行,它们在它们之间进行负载平衡,因此可能会有4个调度程序线程(在四核机器上)执行的10万个Erlang进程一个单一的操作系统进程。通常,操作系统执行调度程序线程到物理核心的映射,但也可参见How, if at all, do Erlang Processes map to Kernel Threads?

相关问题