Member-only story
Building Better Concurrency, Finite State Processes, and Modeling Processes
Let’s build more robust concurrency systems

Hello, I’m Asel. Today, I’m going to show you how to model a concurrent program using FSP by going through an example scenario.
What’s FSP?
Finite state processes (FSP) is an abstract language that’s used to develop concurrent systems of processes.
We use modeling to gain confidence in the adequacy and validity of a proposed design. As with most complex design tasks, concurrency is best understood by employing multiple levels of abstraction.
First, the functional requirements of the system must be well understood in terms of its desired behavior. Next, the possible roles for concurrency should be explored. This is best done using the abstraction of threads without committing to a particular implementation.
To the extent possible, the final selection of mechanisms for realizing the concurrency should remain open to allow for the fine-tuning of performance and the flexibility to distribute components differently for various product configurations.