Mastering Concurrent Computing Through Sequential Thinking: A Half-century Evolution

12/14/2018
by   Sergio Rajsbaum, et al.
0

Concurrency, the art of doing many things at the same time is slowly becoming a science. It is very difficult to master, yet it arises all over modern computing systems, both when the communication medium is shared memory and when it is by message passing. Concurrent programming is hard because it requires to cope with many possible, unpredictable behaviors of communicating processes interacting with each other. Right from the start in the 1960s, the main way of dealing with concurrency has been by reduction to sequential reasoning. We trace this history, and illustrate it through several examples, from early ideas based on mutual exclusion, passing through consensus and concurrent objects, until today ledgers and blockchains. We conclude with a discussion on the limits that this approach encounters, related to fault-tolerance, performance, and inherently concurrent problems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/09/2023

From Reversible Computation to Checkpoint-Based Rollback Recovery for Message-Passing Concurrent Programs

The reliability of concurrent and distributed systems often depends on s...
research
05/14/2021

Impossibility of Strongly-Linearizable Message-Passing Objects via Simulation by Single-Writer Registers

A key way to construct complex distributed systems is through modular co...
research
02/11/2020

Back to Futures

We briefly introduce the semi-axiomatic sequent calculus for linear logi...
research
10/06/2022

Computing Race Variants in Message-Passing Concurrent Programming with Selective Receives

Message-passing concurrency is a popular computation model that underlie...
research
05/06/2021

The Canonical Amoebot Model: Algorithms and Concurrency Control

The amoebot model abstracts active programmable matter as a collection o...
research
11/17/2021

Local Mutual Exclusion for Dynamic, Anonymous, Bounded Memory Message Passing Systems

Mutual exclusion is a classical problem in distributed computing that pr...
research
07/30/2021

Minimal Translations from Synchronous Communication to Synchronizing Locks (Extended Version)

In order to understand the relative expressive power of larger concurren...

Please sign up or login with your details

Forgot password? Click here to reset