BEAM (Erlang VM) はどのような仮想マシンですか? 質問する

BEAM (Erlang VM) はどのような仮想マシンですか? 質問する

私の理解では、仮想マシンは「システム仮想マシン」と「プロセス仮想マシン」の 2 つのカテゴリに分類されます。BEAM がどこに位置するのかは、私にはよくわかりません。私が知らない別の種類の仮想マシンがあるのでしょうか?

ベストアンサー1

Erlang VM は 1 つの OS プロセスとして実行されます。デフォルトでは、マシンを最大限に活用するためにコアごとに 1 つの OS スレッドが実行されます。スレッドの数と、スレッドが実行されるコアは、VM の起動時に設定できます。

Erlangプロセスが実装されている全体的にErlang VM によって実行され、OS プロセスや OS スレッドとの接続はありません。したがって、100 万を超えるプロセスを持つ Erlang システムを実行している場合でも、コアごとに 1 つの OS プロセスと 1 つのスレッドしかありません。したがって、この意味では Erlang VM は「プロセス仮想マシン」ですが、Erlang システム自体は OS のように動作し、Erlang プロセスは OS プロセスと非常によく似た特性 (たとえば分離) を持っています。実際には、ベアメタル上で実行され、それ自体が OS である BEAM ベースの Erlang VM があります。Xen 上の Erlang

ちなみに、何百万ものErlangプロセスを実行するシステムを構築することは完全に可能であり、実際にいくつかの製品ではそれが実現されています。たとえば、ワッツアップ

基本的な Erlang 環境を設計したとき、私たちは間違いなく OS について深く考えていました。

おすすめ記事