Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1073299
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T20:58:29+00:00 2026-05-16T20:58:29+00:00

I’ve begun studying Erlang and find the BEAM runtime environment fascinating. It’s commonly stated

  • 0

I’ve begun studying Erlang and find the BEAM runtime environment fascinating. It’s commonly stated that in Erlang, processes belong to the language rather than the OS (meaning the runtime, meaning BEAM in this case). These are the lightweight, “green processes” that Erlang is getting famous for. It’s further stated (on page 5 of this paper) that BEAM uses one (1) OS thread per CPU core for scheduling and another OS thread for i/o. So I wonder: From what thread do the CPU cycles needed to actually execute the Erlang code come from?

Further, if I’m running on a dual core machine I would expect — based on what I’ve read so far — to see three (3) threads running under the BEAM process: two schedulers (one for each core) and one i/o thread. But I see 10. Sometimes 11. Sometimes it starts at 13 and, like high-quality amplifiers, goes to 11.

I’m confused. Any insight will be appreciated.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T20:58:29+00:00Added an answer on May 16, 2026 at 8:58 pm

    Following @user425720’s advice, I asked my question on the erlang-questions LISTSERV. It’s also available as a Google Group. Kresten Krab Thorup of Trifork answered me almost at once. My thanks to go out to Kreston. Here is his answer. (Parentheticals and emphasis are mine.)

    Here is AFAIK, the basic scenario:

    Erlang code will be run in as many
    “green threads” as there are
    processes; the process limit is
    controlled by the +P (command line) flag.

    The green threads are mapped on to S
    threads, where S is the number of
    cores/CPUs. The fact that these
    threads are also called schedulers

    can seem somewhat
    confusing, but from the VMs point of
    view they are. From the developer’s
    point of view, they are the threads
    that run your erlang code
    . The
    number S can be controlled with
    the +S option to the erl command line.

    In addition hereto, there are a number
    of so-called “Async Threads”. That’s
    a thread pool which is used by I/O
    processes called linked in drivers, to
    react to select / poll etc. The
    number of asynch threads is dynamic,
    but limited by the +A flag.

    So, the 11 threads you see on a
    dual-core may be 2 schedulers, and 9
    async threads. For instance.

    Read more about the flags here.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've just begun to write my own memory manager, but to do that, I
so i've begun google's python class, and have not had that much difficulty with
I've just recently begun to use markdown and have noticed that any markdown within
I have begun work on a personal project that may end up having some
I begin studying Unit testing with (NUnit). I know that this type of testing
I've just begun Objective-C and am looking to find a way to create an
In learning C, I've just begun studying pointers to structures and have some questions.
I've just begun diving into data warehousing and I have one question that I
So recently I've begun work on a plugin for wordpress that integrates with facebook,
I have recently begun using coderush. One thing that annoys me is that the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.