受け入れられた回答に記載されている内容に入力を追加したいと思います。
Erlang スケジューラは、Erlang ランタイム システムの重要な部分であり、OS スレッド上の軽量プロセスの概念の独自の抽象化と実装を提供します。
各スケジューラは、単一の OS スレッド内で実行されます。通常、ハードウェア上の CPU (コア) と同じ数のスケジューラーがあります (構成可能ですが、スケジューラーの数がハードウェア コアの数を超えると、当然あまり価値がありません)。スケジューラが OS スレッド間をジャンプしないようにシステムが構成されている場合もあります。
現在、Erlang プロセスが作成されているとき、ライフ サイクルとリソース消費、およびそのメモリ フットプリントなどを管理するのは、完全に ERTS とスケジューラの責任です。
コア実装の詳細の 1 つは、スケジューラが実行キューからそのプロセスを取得するときに、各プロセスに 2000 削減の時間予算があることです。システムの各進捗 (I/O も含む) には、削減予算があることが保証されています。これが、実際に ERTS をプリエンプティブ マルチタスク機能を備えたシステムにしている理由です。
Jesper Louis Andersen によるこのトピックに関する素晴らしいブログ投稿をお勧めしますhttp://jlouisramblings.blogspot.com/2013/01/how-erlang-does-scheduling.html
簡単に言うと、Erlang プロセスは OS スレッドではなく、直接マップされません。Erlang スケジューラは OS スレッド上で実行されるものであり、プログラマーの目に見えない詳細を隠す、よりきめ細かい Erlang プロセスのスマートな実装を提供します。