[erlang-questions] SMP Scheduler Implementation

Colin Z <>
Wed Feb 13 17:22:26 CET 2008


Are there any resources out there that explain how the SMP scheduling system
works?

In the simplest case, I'm curious about how the runtime manages two
schedulers running on two cores/CPUs.

Imagine we have three processes running in two schedulers such that process
A and B are in Scheduler1 and process C is in Scheduler2 and each scheduler
is running on a separate core. What happens if B and C send messages to A
simultaneously? Is traditional synchronization of A's mailbox being done
under the hood, or is cross-scheduler message passing simply not allowed?

Another similar case would be when A is in a receive block processing the
contents of its mailbox when C sends it a new message at the same time.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080213/dd69bbf8/attachment.html>


More information about the erlang-questions mailing list