visit
The BEAM is the standard Erlang implementation in use today. It was specially designed just to run Erlang. But what is the BEAM other than a virtual machine for running Erlang? Enter Robert Virding, your guide for the evening as he takes you on a quick tour of the BEAM visiting the major sights to see what it looks like internally and how it functions. There will be no need for a towel on this short tour.
Robert explains how, for Erlang to run on the BEAM, the BEAM has to support all of the specific properties of the Erlang system, including:
Schedulers The BEAM uses something called schedulers. What is a scheduler? It’s a semi-autonomous BEAM virtual machine, so it’s got pretty much everything you need in it to run Erlang. But they’re running in the same system so they need to be able to communicate with each other. Each one has its own run-queue and runs as separately as possible to reduce the risk of locks or synchronisation.
Processes There’s a lot of benefits to the BEAM’s separate process heaps, such as garbage collection efficiency. There’s also a lot of tuning options.
Memory management There are lots of different memory areas for handling different memory types within the BEAM VM. it’s nothing unusual in a system this complex. This memory system supports a fast system. A more naive memory framework would work but it wouldn’t be as fast.
Robert also presents an overview of the BEAM’s message passing, multi-core, and a few other things throughout his talk.
Originally published at .