[Erlang24] Controlled Scheduling of Concurrent Elixir Programs
Вставка
- Опубліковано 7 лют 2025
- Controlled Scheduling of Concurrent Elixir Programs (Video, Erlang 2024)
Luis Eduardo Bueso de Barrio, Lars-Åke Fredlund, Clara Benac Earle, Ángel Herranz, and Julio Mariño
(Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain)
Abstract: We describe the design and implementation of Scheduler, a new
library for Elixir which provides
a user-level scheduler. The goal is to improve the control over scheduling decisions,
i.e., which process runs at which time, in order to obtain executions that are more random,
but which are also repeatable and modifiable,
and which moreover provide a detailed explanation of the scheduling decisions
taken. This work is inspired by the Pulse user-level scheduler for Erlang programs,
as well as other related tools.
Our library is agnostic regarding what other testing/execution/formal
verification tool uses the scheduler, and instruments
Elixir code running under the scheduler through
use of the Elixir macro facility. Moreover, the library
provides a number of algorithms
to explore the state space
of the concurrent programs under study, including
random search, depth-first search (potentially capable of exploring
the whole state space of the program-under-study), and a novel
search algorithm which selects schedules randomly.
As an example the Scheduler library is applied to the task of checking
whether a number of snapshot algorithms are correct.
Article: doi.org/10.114...
ORCID: orcid.org/0000..., orcid.org/0000..., orcid.org/0000..., orcid.org/0000..., orcid.org/0000...
Video Tags: Testing, Model Checking, Program Scheduling, Elixir, icfpws24erlangmain-p62-p, doi:10.1145/3677995.3678195, orcid:0000-0003-4040-2111, orcid:0000-0002-8296-4609, orcid:0000-0002-8629-5289, orcid:0000-0002-6433-5681, orcid:0000-0002-2665-7612
Presentation at the Erlang 2024 conference, September 2, 2024, icfp24.sigplan...
Sponsored by ACM SIGPLAN, www.sigplan.org/